From 9d6234cc8eacab9494afc1f851c975866e05925f Mon Sep 17 00:00:00 2001 From: karuna Date: Mon, 13 Jul 2026 16:56:07 +0530 Subject: [PATCH] enhancements of Reuqesttimelines --- .../models/project_task.py | 27 ++++++++++++------- .../models/task_stages.py | 6 +++++ .../view/project.xml | 11 ++++---- .../view/task_stages.xml | 2 ++ 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/addons_extensions/project_task_timesheet_extended/models/project_task.py b/addons_extensions/project_task_timesheet_extended/models/project_task.py index 7a8a939f7..db8703113 100644 --- a/addons_extensions/project_task_timesheet_extended/models/project_task.py +++ b/addons_extensions/project_task_timesheet_extended/models/project_task.py @@ -1067,13 +1067,15 @@ class projectTask(models.Model): } def _get_stage_responsible_user(self, stage): self.ensure_one() - if stage.approval_by == 'assigned_team_lead' and stage.team_id.team_lead: + if stage.team_id and stage.team_id.team_lead: return stage.team_id.team_lead - if stage.approval_by == 'project_manager' and self.project_id.user_id: - return self.project_id.user_id - if stage.approval_by == 'project_lead' and self.project_id.project_lead: - return self.project_id.project_lead - return self.project_id.project_lead or self.project_id.user_id + return self.env['res.users'] + + def _get_stage_assignee_user(self, stage): + self.ensure_one() + if stage.involved_user_ids: + return stage.involved_user_ids[:1] + return self.env['res.users'] def _ensure_task_timeline_rows(self): Timeline = self.env['project.task.time.lines'].sudo() @@ -1081,14 +1083,21 @@ class projectTask(models.Model): stages = task.project_id.type_ids.filtered(lambda s: not s.fold) for stage in stages: line = task.assignees_timelines.filtered(lambda t: t.stage_id == stage)[:1] - if line: - continue responsible_user = task._get_stage_responsible_user(stage) + assignee_user = task._get_stage_assignee_user(stage) + if line: + if not task.timelines_requested: + line.sudo().write({ + 'team_id': stage.team_id.id if stage.team_id else False, + 'responsible_lead': responsible_user.id if responsible_user else False, + 'assigned_to': assignee_user.id if assignee_user else False, + }) + continue Timeline.create({ 'stage_id': stage.id, 'team_id': stage.team_id.id if stage.team_id else False, 'responsible_lead': responsible_user.id if responsible_user else False, - 'assigned_to': responsible_user.id if responsible_user else False, + 'assigned_to': assignee_user.id if assignee_user else False, 'estimated_time': 0.0, 'task_id': task.id, }) diff --git a/addons_extensions/project_task_timesheet_extended/models/task_stages.py b/addons_extensions/project_task_timesheet_extended/models/task_stages.py index 9caef46e3..3792c12ea 100644 --- a/addons_extensions/project_task_timesheet_extended/models/task_stages.py +++ b/addons_extensions/project_task_timesheet_extended/models/task_stages.py @@ -10,6 +10,12 @@ class TaskStages(models.Model): string='Approval Owner', ) involved_user_ids = fields.Many2many('res.users', string='Related Users') + responsible_user_id = fields.Many2one( + 'res.users', + string='Responsible User', + related='team_id.team_lead', + readonly=True, + ) team_related_user_ids = fields.Many2many(related='team_id.all_members_ids', string='Team Users') is_workflow_template = fields.Boolean( string='Workflow Template Stage', diff --git a/addons_extensions/project_task_timesheet_extended/view/project.xml b/addons_extensions/project_task_timesheet_extended/view/project.xml index b117a9bdf..de47e0371 100644 --- a/addons_extensions/project_task_timesheet_extended/view/project.xml +++ b/addons_extensions/project_task_timesheet_extended/view/project.xml @@ -117,11 +117,12 @@ - - - - - + + + + + + diff --git a/addons_extensions/project_task_timesheet_extended/view/task_stages.xml b/addons_extensions/project_task_timesheet_extended/view/task_stages.xml index 7cd169569..c84170a1e 100644 --- a/addons_extensions/project_task_timesheet_extended/view/task_stages.xml +++ b/addons_extensions/project_task_timesheet_extended/view/task_stages.xml @@ -7,6 +7,7 @@ + @@ -22,6 +23,7 @@ +