diff --git a/addons/project/models/project_task.py b/addons/project/models/project_task.py index be0f7c788c2..b18d683cba1 100644 --- a/addons/project/models/project_task.py +++ b/addons/project/models/project_task.py @@ -858,11 +858,17 @@ class Task(models.Model): @api.model_create_multi def create(self, vals_list): + new_context = dict(self.env.context) + default_personal_stage = new_context.pop('default_personal_stage_type_ids', False) + self = self.with_context(new_context) + is_portal_user = self.env.user.has_group('base.group_portal') if is_portal_user: self.check_access_rights('create') default_stage = dict() for vals in vals_list: + if default_personal_stage and 'personal_stage_type_id' not in vals: + vals['personal_stage_type_id'] = default_personal_stage[0] if not vals.get('name') and vals.get('display_name'): vals['name'] = vals['display_name'] if is_portal_user: diff --git a/addons/project/static/tests/tours/personal_stage_tour.js b/addons/project/static/tests/tours/personal_stage_tour.js index 842acb19528..25cdb4ecb6b 100644 --- a/addons/project/static/tests/tours/personal_stage_tour.js +++ b/addons/project/static/tests/tours/personal_stage_tour.js @@ -63,4 +63,18 @@ registry.category("web_tour.tours").add('personal_stage_tour', { }, { content: "Check that column was updated", trigger: '.o_kanban_header:contains("Todo")', +}, { + content: "Create a personal task from the quick create form", + trigger: '.o-kanban-button-new', +}, { + content: "Create a new personal task", + trigger: 'input.o_input', + run: 'text New Test Task', +}, { + content: "Confirm create", + trigger: '.o_kanban_add', +}, { + content: "Check that task exists", + trigger: '.o_kanban_record_title:contains("New Test Task")', + run: function () {}, }]});