Files
odoo_source/addons/resource/models/res_users.py
T
Vincent Larcin d2716b3f6c [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>
2022-03-25 12:40:00 +01:00

25 lines
882 B
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class ResUsers(models.Model):
_inherit = 'res.users'
resource_ids = fields.One2many(
'resource.resource', 'user_id', 'Resources')
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