[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) <yti@odoo.com>
This commit is contained in:
Vincent Larcin
2022-03-25 12:40:00 +01:00
committed by Yannick Tivisse
parent a6031a9905
commit d2716b3f6c
+10
View File
@@ -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