From 203af43784a9177dc8eff3e9a20a9dfd1f7c006c Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Tue, 3 Oct 2023 14:24:06 +0200 Subject: [PATCH] [IMP] base,base_automation,mail,sms: server action UX - Slight reword of the 'type/state' field labels for server actions - Re-ordering of 'type/state' values - Form view changes - Allow hiding model in display_name of ir.model.fields base on context key (avoid technical details when they are not needed) Task-3450200 Part-of: odoo/odoo#138804 --- addons/mail/models/ir_actions_server.py | 10 ++++++---- addons/sms/models/ir_actions_server.py | 2 +- odoo/addons/base/models/ir_actions.py | 22 ++++++++++----------- odoo/addons/base/models/ir_model.py | 3 +++ odoo/addons/base/views/ir_actions_views.xml | 17 +++++++++------- 5 files changed, 31 insertions(+), 23 deletions(-) diff --git a/addons/mail/models/ir_actions_server.py b/addons/mail/models/ir_actions_server.py index a60a7fe0803..6d262c1d149 100644 --- a/addons/mail/models/ir_actions_server.py +++ b/addons/mail/models/ir_actions_server.py @@ -14,10 +14,12 @@ class ServerActions(models.Model): _inherit = ['ir.actions.server'] state = fields.Selection( - selection_add=[('mail_post', 'Send Email'), - ('followers', 'Add Followers'), - ('remove_followers', 'Remove Followers'), - ('next_activity', 'Create Next Activity'), + selection_add=[ + ('next_activity', 'Create Activity'), + ('mail_post', 'Send Email'), + ('followers', 'Add Followers'), + ('remove_followers', 'Remove Followers'), + ('object_create',), ], ondelete={'mail_post': 'cascade', 'followers': 'cascade', diff --git a/addons/sms/models/ir_actions_server.py b/addons/sms/models/ir_actions_server.py index c2a4a8e1162..85df13b880e 100644 --- a/addons/sms/models/ir_actions_server.py +++ b/addons/sms/models/ir_actions_server.py @@ -11,7 +11,7 @@ class ServerActions(models.Model): _inherit = ['ir.actions.server'] state = fields.Selection(selection_add=[ - ('sms', 'Send SMS Text Message'), + ('sms', 'Send SMS'), ('followers',), ], ondelete={'sms': 'cascade'}) # SMS sms_template_id = fields.Many2one( diff --git a/odoo/addons/base/models/ir_actions.py b/odoo/addons/base/models/ir_actions.py index 09348b4aa1d..79caeb6fdc9 100644 --- a/odoo/addons/base/models/ir_actions.py +++ b/odoo/addons/base/models/ir_actions.py @@ -465,20 +465,20 @@ class IrActionsServer(models.Model): ('ir_cron', 'Scheduled Action')], string='Usage', default='ir_actions_server', required=True) state = fields.Selection([ - ('code', 'Execute Python Code'), - ('object_create', 'Create a new Record'), - ('object_write', 'Update the Record'), - ('multi', 'Execute several actions')], string='Type', - default='code', required=True, copy=True, + ('object_write', 'Update Record'), + ('object_create', 'Create Record'), + ('code', 'Execute Code'), + ('multi', 'Execute existing actions')], string='Type', + default='object_write', required=True, copy=True, help="Type of server action. The following values are available:\n" - "- 'Execute Python Code': a block of python code that will be executed\n" - "- 'Create a new Record': create a new record with new values\n" "- 'Update a Record': update the values of a record\n" - "- 'Execute several actions': define an action that triggers several other server actions\n" + "- 'Create Activity': create an activity (Discuss)\n" "- 'Send Email': post a message, a note or send an email (Discuss)\n" - "- 'Add Followers': add followers to a record (Discuss)\n" - "- 'Create Next Activity': create an activity (Discuss)\n" - "- 'Send SMS Text Message': send SMS, log them on documents (SMS)") + "- 'Send SMS': send SMS, log them on documents (SMS)" + "- 'Add/Remove Followers': add or remove followers to a record (Discuss)\n" + "- 'Create Record': create a new record with new values\n" + "- 'Execute Code': a block of Python code that will be executed\n" + "- 'Execute existing actions': define an action that triggers several other server actions\n") # Generic sequence = fields.Integer(default=5, help="When dealing with multiple actions, the execution order is " diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index 97befdf3df5..0a0671ab9ce 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -1072,6 +1072,9 @@ class IrModelFields(models.Model): def _compute_display_name(self): IrModel = self.env["ir.model"] for field in self: + if self.env.context.get('hide_model'): + field.display_name = field.field_description + continue model_string = IrModel._get(field.model).name field.display_name = f'{field.field_description} ({model_string})' diff --git a/odoo/addons/base/views/ir_actions_views.xml b/odoo/addons/base/views/ir_actions_views.xml index 313135d01b5..18a8d523b7d 100644 --- a/odoo/addons/base/views/ir_actions_views.xml +++ b/odoo/addons/base/views/ir_actions_views.xml @@ -329,6 +329,10 @@

+
+
@@ -338,9 +342,8 @@ - domain="['|', ('model_id', '=', crud_model_id), ('model_id', '=', model_id)]"/> @@ -384,11 +387,11 @@ -

- If several child actions return an action, only the last one will be executed. - This may happen when having server actions executing code that returns an action, or server actions returning a client action. -

- + +

+ If several child actions return an action, only the last one will be executed. + This may happen when having server actions executing code that returns an action, or server actions returning a client action. +