From d2716b3f6c3676ed7caae9343fb4066ebdc7e254 Mon Sep 17 00:00:00 2001 From: Vincent Larcin Date: Wed, 9 Feb 2022 09:21:33 +0000 Subject: [PATCH] [FIX] resource: update default calendar timezone on first admin login When the admin user logs in for the first time, their timezone can be updated based on the cookies of their browser. In such case, the timezone of the default working calendar should be updated too. Related: https://github.com/odoo/odoo/pull/83262/ Task 2759592 closes odoo/odoo#87061 X-original-commit: 3c56be1732d219ed69efe5f18bd7931959b7c333 Signed-off-by: Yannick Tivisse (yti) --- addons/resource/models/res_users.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/addons/resource/models/res_users.py b/addons/resource/models/res_users.py index 12290b916ec..282ead9147d 100644 --- a/addons/resource/models/res_users.py +++ b/addons/resource/models/res_users.py @@ -12,3 +12,13 @@ class ResUsers(models.Model): resource_calendar_id = fields.Many2one( 'resource.calendar', 'Default Working Hours', related='resource_ids.calendar_id', readonly=False) + + def write(self, vals): + rslt = super().write(vals) + + # If the timezone of the admin user gets set on their first login, also update the timezone of the default working calendar + if (vals.get('tz') and len(self) == 1 and not self.env.user.login_date + and self.env.user == self.env.ref('base.user_admin') and self == self.env.user): + self.resource_calendar_id.tz = vals['tz'] + + return rslt