From bff38ae3663c69599f805004f7ffdfcd2aed95cf Mon Sep 17 00:00:00 2001 From: Paul Stroobant Date: Wed, 10 Apr 2024 16:30:49 +0200 Subject: [PATCH] [FIX] hr_timesheet: remove display_name compute dependencies Steps to reproduce issue: 1. In settings, activate Timesheets 2. Go to _Project > Tasks > All Tasks_ 3. Create a new task 4. Give the task a title 5. Choose an Assignee 6. The title disappeared Explanation: The title field, `display_name`, is a computed field that gets its value from `name`. This compute has dependencies coming from other computed values. Those dependencies lead to other dependencies up to `project_id`. Because of it, changing `project_id` will trigger `_compute_display_name`. Suggested fix: Backporting odoo/odoo@8178ad79bbda92a77d2d6a9e91159b626aca97c7, the cause of the issue is the same. opw-3823040 closes odoo/odoo#161276 X-original-commit: 89b1ff812ecd4186f2196341d72fe7e6380404dd Signed-off-by: Xavier Bol (xbo) Signed-off-by: Stroobant Paul (stpa) --- addons/hr_timesheet/models/project_task.py | 1 - addons/hr_timesheet/tests/test_project_task_quick_create.py | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/hr_timesheet/models/project_task.py b/addons/hr_timesheet/models/project_task.py index 89443e4f0d7..596fa6dd74b 100644 --- a/addons/hr_timesheet/models/project_task.py +++ b/addons/hr_timesheet/models/project_task.py @@ -199,7 +199,6 @@ class Task(models.Model): # Is override in sale_timesheet return self.timesheet_ids - @api.depends('allow_timesheets', 'allocated_hours', 'encode_uom_in_days', 'remaining_hours') @api.depends_context('hr_timesheet_display_remaining_hours') def _compute_display_name(self): super()._compute_display_name() diff --git a/addons/hr_timesheet/tests/test_project_task_quick_create.py b/addons/hr_timesheet/tests/test_project_task_quick_create.py index 644ef723740..2aa4d8a1a13 100644 --- a/addons/hr_timesheet/tests/test_project_task_quick_create.py +++ b/addons/hr_timesheet/tests/test_project_task_quick_create.py @@ -37,3 +37,9 @@ class TestProjectTaskQuickCreate(TestCommonTimesheet): task = task_form.save() results = (task.name, len(task.tag_ids), len(task.user_ids), task.priority, task.allocated_hours) self.assertEqual(results, (expression, 0, 0, '0', 0)) + + def test_create_task_and_add_project(self): + task_form = Form(self.env['project.task'].with_context({'tracking_disable': True}), view="project.quick_create_task_form") + task_form.display_name = 'hello' + task_form.project_id = self.project_customer + self.assertEqual(task_form.display_name, 'hello')