[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) <xbo@odoo.com>
This commit is contained in:
Yashkumar Vaishnav
2023-04-06 18:17:54 +02:00
parent 7266a546bb
commit e64a458fcc
4 changed files with 11 additions and 1 deletions
@@ -70,6 +70,7 @@
<field name="res_model">project.task</field>
<field name="sequence" eval="108"/>
<field name="default" eval="False"/>
<field name="hidden" eval="True"/>
</record>
<!-- Update-related subtypes for messaging / Chatter -->
<record id="mt_update_create" model="mail.message.subtype">
@@ -107,9 +108,10 @@
<field name="name">Task Rating</field>
<field name="sequence">27</field>
<field name="res_model">project.project</field>
<field name="default" eval="True"/>
<field name="default" eval="False"/>
<field name="parent_id" ref="mt_task_rating"/>
<field name="relation_field">project_id</field>
<field name="hidden" eval="True"/>
</record>
<record id="mt_project_task_dependency_change" model="mail.message.subtype">
<field name="name">Task Dependency Changes</field>
+2
View File
@@ -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')
+2
View File
@@ -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')
@@ -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']