diff --git a/addons/project/models/project.py b/addons/project/models/project.py index 666cf93d14b..6380648ae0c 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -1663,6 +1663,18 @@ class Task(models.Model): if field not in self.SELF_WRITABLE_FIELDS: raise AccessError(_('You have not write access of %s field.') % field) + def _load_records_create(self, vals_list): + projects_with_recurrence = self.env['project.project'].search([('allow_recurring_tasks', '=', True)]) + for vals in vals_list: + if vals.get('recurring_task'): + if vals.get('project_id') in projects_with_recurrence.ids and not vals.get('recurrence_id'): + default_val = self.default_get(self._get_recurrence_fields()) + vals.update(**default_val) + else: + for field_name in self._get_recurrence_fields() + ['recurring_task']: + vals.pop(field_name, None) + return super()._load_records_create(vals_list) + @api.model_create_multi def create(self, vals_list): is_portal_user = self.env.user.has_group('base.group_portal')