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>
25 lines
882 B
Python
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
|