From e64a458fccba2a788b57fbe81f320e7350d35d36 Mon Sep 17 00:00:00 2001 From: Yashkumar Vaishnav Date: Tue, 4 Apr 2023 04:39:48 +0000 Subject: [PATCH] [FIX] project: fix customer rating issue in project Before this commit, even if customer rating is disabled from setting user can get subscription of task rating. This commit ensures that only when the customer rating field is enabled, the user can get a subscription to task rating. task-323170 closes odoo/odoo#117577 Signed-off-by: Xavier Bol (xbo) --- addons/project/data/mail_message_subtype_data.xml | 4 +++- addons/project/models/project_project.py | 2 ++ addons/project/models/project_task.py | 2 ++ addons/project/models/res_config_settings.py | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/addons/project/data/mail_message_subtype_data.xml b/addons/project/data/mail_message_subtype_data.xml index 82042b64723..9ba57898e96 100644 --- a/addons/project/data/mail_message_subtype_data.xml +++ b/addons/project/data/mail_message_subtype_data.xml @@ -70,6 +70,7 @@ project.task + @@ -107,9 +108,10 @@ Task Rating 27 project.project - + project_id + Task Dependency Changes diff --git a/addons/project/models/project_project.py b/addons/project/models/project_project.py index 4d33a15f566..55f5e28d628 100644 --- a/addons/project/models/project_project.py +++ b/addons/project/models/project_project.py @@ -538,6 +538,8 @@ class Project(models.Model): def _mail_get_message_subtypes(self): res = super()._mail_get_message_subtypes() + if not self.rating_active: + res -= self.env.ref('project.mt_project_task_rating') if len(self) == 1: dependency_subtype = self.env.ref('project.mt_project_task_dependency_change') waiting_subtype = self.env.ref('project.mt_project_task_waiting') diff --git a/addons/project/models/project_task.py b/addons/project/models/project_task.py index ac5c0c41132..b0e547fdd93 100644 --- a/addons/project/models/project_task.py +++ b/addons/project/models/project_task.py @@ -1246,6 +1246,8 @@ class Task(models.Model): def _mail_get_message_subtypes(self): res = super()._mail_get_message_subtypes() + if not self.project_id.rating_active: + res -= self.env.ref('project.mt_task_rating') if len(self) == 1: dependency_subtype = self.env.ref('project.mt_task_dependency_change') waiting_subtype = self.env.ref('project.mt_task_waiting') diff --git a/addons/project/models/res_config_settings.py b/addons/project/models/res_config_settings.py index 7255f196fe9..0104a1fc762 100644 --- a/addons/project/models/res_config_settings.py +++ b/addons/project/models/res_config_settings.py @@ -65,6 +65,10 @@ class ResConfigSettings(models.TransientModel): if project_stage_change_mail_type.hidden == self['group_project_stages']: project_stage_change_mail_type.hidden = not self['group_project_stages'] # Hide task rating tempalate when customer rating is disbled + task_rating_subtype_id = self.env.ref('project.mt_project_task_rating') + task_rating_subtype_id.hidden = not self['group_project_rating'] + self.env.ref('project.mt_task_rating').hidden = not self['group_project_rating'] + task_rating_subtype_id.default = self['group_project_rating'] rating_project_request_email_template = self.env.ref('project.rating_project_request_email_template') if rating_project_request_email_template.active != self['group_project_rating']: rating_project_request_email_template.active = self['group_project_rating']