From f9fc55b9feeef925d242a9bee6e50ff0909f526c Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Wed, 8 Apr 2020 11:00:59 +0000 Subject: [PATCH] [FIX] resource: Improve calendar duplicate Purpose ======= When duplicating a calendar, duplicate their global time off too. closes odoo/odoo#49255 Taskid: 2230549 X-original-commit: b1417a8f094331246120ce5f0a5d25db6c6eb8a7 Signed-off-by: Yannick Tivisse (yti) --- addons/resource/models/resource.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/resource/models/resource.py b/addons/resource/models/resource.py index b6d5d55f7a2..daf16b47e16 100644 --- a/addons/resource/models/resource.py +++ b/addons/resource/models/resource.py @@ -184,7 +184,7 @@ class ResourceCalendar(models.Model): 'resource.calendar.leaves', 'calendar_id', 'Time Off') global_leave_ids = fields.One2many( 'resource.calendar.leaves', 'calendar_id', 'Global Time Off', - domain=[('resource_id', '=', False)] + domain=[('resource_id', '=', False)], copy=True, ) hours_per_day = fields.Float("Average Hour per Day", default=HOURS_PER_DAY, help="Average hours per day a resource is supposed to work with this calendar.") @@ -195,6 +195,15 @@ class ResourceCalendar(models.Model): two_weeks_calendar = fields.Boolean(string="Calendar in 2 weeks mode") two_weeks_explanation = fields.Char('Explanation', compute="_compute_two_weeks_explanation") + @api.returns('self', lambda value: value.id) + def copy(self, default=None): + self.ensure_one() + if default is None: + default = {} + if not default.get('name'): + default.update(name=_('%s (copy)') % (self.name)) + return super(ResourceCalendar, self).copy(default) + @api.depends('two_weeks_calendar') def _compute_two_weeks_explanation(self): today = fields.Date.today()