diff --git a/api/tacticalrmm/ee/reporting/custom_filters.py b/api/tacticalrmm/ee/reporting/custom_filters.py new file mode 100644 index 00000000..2e17c81f --- /dev/null +++ b/api/tacticalrmm/ee/reporting/custom_filters.py @@ -0,0 +1,5 @@ +from zoneinfo import ZoneInfo + + +def as_tz(date_obj, tz, format="%b %d, %I:%M %p"): + return date_obj.astimezone(ZoneInfo(tz)).strftime(format) diff --git a/api/tacticalrmm/ee/reporting/utils.py b/api/tacticalrmm/ee/reporting/utils.py index dd4a5957..db4efdf1 100644 --- a/api/tacticalrmm/ee/reporting/utils.py +++ b/api/tacticalrmm/ee/reporting/utils.py @@ -21,6 +21,7 @@ from weasyprint.text.fonts import FontConfiguration from tacticalrmm.utils import get_db_value from .constants import REPORTING_MODELS +from .custom_filters import as_tz from .markdown.config import Markdown from .models import ReportAsset, ReportDataQuery, ReportHTMLTemplate, ReportTemplate @@ -66,6 +67,7 @@ env = Environment( env.globals["datetime"] = datetime env.globals["ZoneInfo"] = ZoneInfo env.globals["re"] = re +env.filters["as_tz"] = as_tz def generate_pdf(*, html: str, css: str = "") -> bytes: