From a8e6b57fef07faa83bd061223157295fbece9bc6 Mon Sep 17 00:00:00 2001 From: jdoutreloux Date: Mon, 31 May 2021 09:53:11 +0000 Subject: [PATCH] [IMP] resource,web : modifies the timezone_mismatch widget This modifies the widget to allow a title option. Task-2352428 Closes #67021 Related: odoo/upgrade#2223 Signed-off-by: LTU-Odoo --- addons/resource/models/resource.py | 6 ++++++ addons/resource/views/resource_views.xml | 3 ++- addons/web/static/src/legacy/js/fields/special_fields.js | 7 ++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/resource/models/resource.py b/addons/resource/models/resource.py index 0aeb179cf0b..787b224b711 100644 --- a/addons/resource/models/resource.py +++ b/addons/resource/models/resource.py @@ -210,6 +210,7 @@ class ResourceCalendar(models.Model): _tz_get, string='Timezone', required=True, default=lambda self: self._context.get('tz') or self.env.user.tz or 'UTC', help="This field is used in order to define in which timezone the resources will work.") + tz_offset = fields.Char(compute='_compute_tz_offset', string='Timezone offset', invisible=True) two_weeks_calendar = fields.Boolean(string="Calendar in 2 weeks mode") two_weeks_explanation = fields.Char('Explanation', compute="_compute_two_weeks_explanation") @@ -233,6 +234,11 @@ class ResourceCalendar(models.Model): (0, 0, leave._copy_leave_vals()) for leave in calendar.company_id.resource_calendar_id.global_leave_ids] }) + @api.depends('tz') + def _compute_tz_offset(self): + for calendar in self: + calendar.tz_offset = datetime.now(timezone(calendar.tz or 'GMT')).strftime('%z') + @api.returns('self', lambda value: value.id) def copy(self, default=None): self.ensure_one() diff --git a/addons/resource/views/resource_views.xml b/addons/resource/views/resource_views.xml index 37ee603f0b2..e1663012686 100644 --- a/addons/resource/views/resource_views.xml +++ b/addons/resource/views/resource_views.xml @@ -277,7 +277,8 @@ - + + diff --git a/addons/web/static/src/legacy/js/fields/special_fields.js b/addons/web/static/src/legacy/js/fields/special_fields.js index 52ef6d513f7..1e4948c232b 100644 --- a/addons/web/static/src/legacy/js/fields/special_fields.js +++ b/addons/web/static/src/legacy/js/fields/special_fields.js @@ -93,7 +93,12 @@ var FieldTimezoneMismatch = FieldSelection.extend({ if (this.mismatch){ $span.insertAfter(this.$el); - $span.attr('title', _t("Timezone Mismatch : This timezone is different from that of your browser.\nPlease, set the same timezone as your browser's to avoid time discrepancies in your system.")); + if (this.nodeOptions.mismatch_title) { + $span.attr('title', this.nodeOptions.mismatch_title); + } + else { + $span.attr('title', _t("Timezone Mismatch : This timezone is different from that of your browser.\nPlease, set the same timezone as your browser's to avoid time discrepancies in your system.")); + } this.$el = this.$el.add($span); this.$option = this.$('option').filter(function () {