From 9c33507a456a76238414bb61235e5d2d0e8f0d87 Mon Sep 17 00:00:00 2001 From: pranaysaidurga Date: Wed, 6 May 2026 18:17:04 +0530 Subject: [PATCH] multi company changes --- .../models/project_task.py | 2 +- .../models/user_timeline_entry.py | 2 ++ addons_extensions/user_timelines/__manifest__.py | 1 + .../user_timelines/models/user_timeline_entry.py | 5 +++++ .../user_timelines/security/user_timeline_security.xml | 9 +++++++++ .../user_timelines/views/user_timeline_views.xml | 10 ++++++++++ 6 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 addons_extensions/user_timelines/security/user_timeline_security.xml 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 f3564789d..b175e5ca5 100644 --- a/addons_extensions/project_task_timesheet_extended/models/project_task.py +++ b/addons_extensions/project_task_timesheet_extended/models/project_task.py @@ -33,7 +33,7 @@ class projectTask(models.Model): ('normal', 'Normal'), ], compute='_compute_deadline_status') - model_id = fields.Many2one('project.module.source') + model_id = fields.Many2one('project.module.source', string="Module") @api.depends('date_deadline') def _compute_deadline_status(self): diff --git a/addons_extensions/project_task_timesheet_extended/models/user_timeline_entry.py b/addons_extensions/project_task_timesheet_extended/models/user_timeline_entry.py index f03aab4ff..a445709a5 100644 --- a/addons_extensions/project_task_timesheet_extended/models/user_timeline_entry.py +++ b/addons_extensions/project_task_timesheet_extended/models/user_timeline_entry.py @@ -11,6 +11,7 @@ class UserTimelineEntry(models.Model): CONCAT('timeline-', timeline.id::varchar) AS source_key, CONCAT(COALESCE(task.sequence_name, task.name), ' - ', stage.name) AS name, employee.id AS employee_id, + COALESCE(project.company_id, task.company_id, employee.company_id) AS company_id, timeline.assigned_to AS user_id, task.project_id AS project_id, task.id AS task_id, @@ -53,6 +54,7 @@ class UserTimelineEntry(models.Model): CONCAT('task-', task.id::varchar, '-', rel.user_id::varchar) AS source_key, COALESCE(task.sequence_name, task.name) AS name, employee.id AS employee_id, + COALESCE(project.company_id, task.company_id, employee.company_id) AS company_id, rel.user_id AS user_id, task.project_id AS project_id, task.id AS task_id, diff --git a/addons_extensions/user_timelines/__manifest__.py b/addons_extensions/user_timelines/__manifest__.py index 52d0c4b3b..2101a983b 100644 --- a/addons_extensions/user_timelines/__manifest__.py +++ b/addons_extensions/user_timelines/__manifest__.py @@ -14,6 +14,7 @@ "web", ], "data": [ + "security/user_timeline_security.xml", "security/ir.model.access.csv", "views/user_timeline_views.xml", "views/hr_employee_views.xml", diff --git a/addons_extensions/user_timelines/models/user_timeline_entry.py b/addons_extensions/user_timelines/models/user_timeline_entry.py index add71d0a7..89518c56f 100644 --- a/addons_extensions/user_timelines/models/user_timeline_entry.py +++ b/addons_extensions/user_timelines/models/user_timeline_entry.py @@ -25,6 +25,7 @@ class UserTimelineEntry(models.Model): _rec_name = "name" name = fields.Char(readonly=True) + company_id = fields.Many2one("res.company", readonly=True) employee_id = fields.Many2one("hr.employee", readonly=True) user_id = fields.Many2one("res.users", readonly=True) project_id = fields.Many2one("project.project", readonly=True) @@ -66,6 +67,7 @@ class UserTimelineEntry(models.Model): CONCAT('task-', task.id::varchar, '-', rel.user_id::varchar) AS source_key, COALESCE(task.sequence_name, task.name) AS name, employee.id AS employee_id, + COALESCE(project.company_id, task.company_id, employee.company_id) AS company_id, rel.user_id AS user_id, task.project_id AS project_id, task.id AS task_id, @@ -110,6 +112,7 @@ class UserTimelineEntry(models.Model): CONCAT('leave-', leave.id::varchar) AS source_key, CONCAT('Leave - ', leave_type.name) AS name, leave.employee_id AS employee_id, + leave.company_id AS company_id, employee.user_id AS user_id, NULL::integer AS project_id, NULL::integer AS task_id, @@ -146,6 +149,7 @@ class UserTimelineEntry(models.Model): CONCAT('public-holiday-', holiday.id::varchar, '-', employee.id::varchar) AS source_key, CONCAT('Public Holiday - ', COALESCE(holiday.name, 'Company Holiday')) AS name, employee.id AS employee_id, + COALESCE(holiday.company_id, employee.company_id) AS company_id, employee.user_id AS user_id, NULL::integer AS project_id, NULL::integer AS task_id, @@ -199,6 +203,7 @@ class UserTimelineEntry(models.Model): entry_order.source_key ) AS id, entry_order.name, + entry_order.company_id, entry_order.employee_id, entry_order.user_id, entry_order.project_id, diff --git a/addons_extensions/user_timelines/security/user_timeline_security.xml b/addons_extensions/user_timelines/security/user_timeline_security.xml new file mode 100644 index 000000000..9bd62fe66 --- /dev/null +++ b/addons_extensions/user_timelines/security/user_timeline_security.xml @@ -0,0 +1,9 @@ + + + + User Timeline Entry Multi Company + + + ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] + + diff --git a/addons_extensions/user_timelines/views/user_timeline_views.xml b/addons_extensions/user_timelines/views/user_timeline_views.xml index 5c67b39c4..cc5449885 100644 --- a/addons_extensions/user_timelines/views/user_timeline_views.xml +++ b/addons_extensions/user_timelines/views/user_timeline_views.xml @@ -7,6 +7,7 @@ + @@ -27,6 +28,7 @@ + @@ -42,6 +44,7 @@ + @@ -67,6 +70,7 @@ create="false" quick_create="false"> + @@ -107,6 +111,10 @@ Employee - +
+ Company - + +
Project - @@ -147,6 +155,7 @@
+ @@ -164,6 +173,7 @@ user.timeline.entry gantt,calendar,list + ['|', ('company_id', '=', False), ('company_id', 'in', allowed_company_ids)] {'search_default_group_employee': 1,'search_default_public_holidays_remove': 1, 'default_is_public_holiday': 0}