From b90466786db42764ce70649dad8f994d123cd32a Mon Sep 17 00:00:00 2001 From: mathis Date: Fri, 13 Jun 2025 11:13:08 -0400 Subject: [PATCH] Fixed FSM work orders printing with UTC times --- bemade_fsm/models/task.py | 21 +++++++++++++++++++ .../worksheet_custom_report_templates.xml | 18 +++++++++------- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/bemade_fsm/models/task.py b/bemade_fsm/models/task.py index 1ff9052..750082d 100644 --- a/bemade_fsm/models/task.py +++ b/bemade_fsm/models/task.py @@ -3,10 +3,31 @@ from odoo.addons.project.models.project_task import CLOSED_STATES import re +import pytz + class Task(models.Model): _inherit = ["project.task", "durpro.tag.inheritance.mixin"] _name = "project.task" + planned_date_begin_est = fields.Datetime(compute="_compute_est_dates", string="Planned Start (EST)") + date_deadline_est = fields.Datetime(compute="_compute_est_dates", string="Planned End (EST)") + + def _get_est_datetime(self, dt): + if not dt: + return False + user_tz = pytz.timezone('America/Toronto') + if not dt.tzinfo: + dt = fields.Datetime.from_string(str(dt)) + dt = fields.Datetime.context_timestamp(self, dt) + dt_est = dt.astimezone(user_tz) + # Return naive datetime in EST (strip tzinfo) + return dt_est.replace(tzinfo=None) + + def _compute_est_dates(self): + for rec in self: + rec.planned_date_begin_est = rec._get_est_datetime(rec.planned_date_begin) + rec.date_deadline_est = rec._get_est_datetime(rec.date_deadline) + work_order_contacts = fields.Many2many( comodel_name="res.partner", relation="task_work_order_contact_rel", diff --git a/bemade_fsm/reports/worksheet_custom_report_templates.xml b/bemade_fsm/reports/worksheet_custom_report_templates.xml index 3624c23..890bfd8 100644 --- a/bemade_fsm/reports/worksheet_custom_report_templates.xml +++ b/bemade_fsm/reports/worksheet_custom_report_templates.xml @@ -361,13 +361,17 @@ t-if="doc.planned_date_begin or doc.date_deadline" >
Planned start:
-
-
-
-
Planned end:
-
-
-
+
+
+ +
+
+
Planned end:
+
+
+ +
+