From 6e03d2bd264b05930ff80ab6dfb08448ecde24d4 Mon Sep 17 00:00:00 2001 From: Kartik Chavda Date: Tue, 29 Nov 2022 05:32:51 +0000 Subject: [PATCH] [IMP] {sale_}project{_mrp}: improve some generic UX of project app. Purpose: - Improve some generic UX of project app. Specification: - make milestone field option hide in task tree view. - set default 'Tasks' to label_tasks field on creation when label_tasks field is empty. - order stat buttons of project update right side panel according to user usage. - hide project field for list, calendar, graph and activity view of act_project_project_2_project_task_all action. - archive task ratings template when ratings is disabled and unarchive that template when its not. task-3083855 closes odoo/odoo#107467 Related: odoo/enterprise#34778 Signed-off-by: Xavier Bol (xbo) --- addons/project/data/mail_template_data.xml | 1 + addons/project/models/project_project.py | 7 ++++++- addons/project/models/res_config_settings.py | 4 ++++ addons/project/views/project_task_views.xml | 6 +++--- addons/project_mrp/models/project_project.py | 2 +- addons/sale_project/models/project.py | 4 ++-- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/addons/project/data/mail_template_data.xml b/addons/project/data/mail_template_data.xml index 77c5921e09e..33bcff77858 100644 --- a/addons/project/data/mail_template_data.xml +++ b/addons/project/data/mail_template_data.xml @@ -29,6 +29,7 @@ Project: Task Rating Request + {{ object.project_id.company_id.name }}: Satisfaction Survey {{ (object._rating_get_operator().email_formatted if object._rating_get_operator() else user.email_formatted) }} {{ object._rating_get_partner().id }} diff --git a/addons/project/models/project_project.py b/addons/project/models/project_project.py index 969dd2ff2e8..a4d89ab3fc7 100644 --- a/addons/project/models/project_project.py +++ b/addons/project/models/project_project.py @@ -405,6 +405,11 @@ class Project(models.Model): def create(self, vals_list): # Prevent double project creation self = self.with_context(mail_create_nosubscribe=True) + if any('label_tasks' in vals and not vals['label_tasks'] for vals in vals_list): + task_label = _("Tasks") + for vals in vals_list: + if 'label_tasks' in vals and not vals['label_tasks']: + vals['label_tasks'] = task_label projects = super().create(vals_list) return projects @@ -731,7 +736,7 @@ class Project(models.Model): 'active_id': self.id, }), 'show': True, - 'sequence': 3, + 'sequence': 1, }] if self.rating_count != 0 and self.user_has_groups('project.group_project_rating'): if self.rating_avg >= rating_data.RATING_AVG_TOP: diff --git a/addons/project/models/res_config_settings.py b/addons/project/models/res_config_settings.py index c5daad1fb47..aabb7aae890 100644 --- a/addons/project/models/res_config_settings.py +++ b/addons/project/models/res_config_settings.py @@ -66,5 +66,9 @@ class ResConfigSettings(models.TransientModel): project_stage_change_mail_type = self.env.ref('project.mt_project_stage_change') 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 + 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'] super().set_values() diff --git a/addons/project/views/project_task_views.xml b/addons/project/views/project_task_views.xml index f26d1ec5f49..196e8c1c735 100644 --- a/addons/project/views/project_task_views.xml +++ b/addons/project/views/project_task_views.xml @@ -689,7 +689,7 @@ js_class="project_calendar" scales="month,year"> - + @@ -722,7 +722,7 @@ project.task - + @@ -745,7 +745,7 @@ - + Private diff --git a/addons/project_mrp/models/project_project.py b/addons/project_mrp/models/project_project.py index 62827c7b9cc..d6eee8a1a64 100644 --- a/addons/project_mrp/models/project_project.py +++ b/addons/project_mrp/models/project_project.py @@ -95,6 +95,6 @@ class Project(models.Model): 'action_type': 'object', 'action': 'action_view_mrp_bom', 'show': self.bom_count > 0, - 'sequence': 45, + 'sequence': 35, }]) return buttons diff --git a/addons/sale_project/models/project.py b/addons/sale_project/models/project.py index bf09a908a60..66d6be36df9 100755 --- a/addons/sale_project/models/project.py +++ b/addons/sale_project/models/project.py @@ -513,7 +513,7 @@ class Project(models.Model): 'action_type': 'object', 'action': 'action_view_sos', 'show': self.sale_order_count > 0, - 'sequence': 1, + 'sequence': 27, }) if self.user_has_groups('account.group_account_readonly'): buttons.append({ @@ -533,7 +533,7 @@ class Project(models.Model): 'action_type': 'object', 'action': 'action_open_project_vendor_bills', 'show': self.vendor_bill_count > 0, - 'sequence': 48, + 'sequence': 38, }) return buttons