From 356e04a06d8e105a2cb6fc5f3e5689e52d63f599 Mon Sep 17 00:00:00 2001 From: Jinal Patel Date: Tue, 22 Jan 2019 10:46:08 +0000 Subject: [PATCH] [IMP] mail: add default values coming from activity types when scheduling activities Purpose of the commit is that in some cases people would like to add a default user and a default description on their activity types. Those default values will be propagated to created activities. This commit adds fields to set the default description and default user on activity type and propagate them through the various scheduling methods as default values when the user did not give specific one. Other usability improvements * rename "Category" into "Action to Perform"; * change 'Other' value to 'None'; That way it is clearer that standard activities perform no action. Related to task 1929742 closes odoo/odoo#30511 Signed-off-by: Thibault Delavallee (tde) --- addons/mail/models/mail_activity.py | 13 +++++++++---- addons/mail/views/mail_activity_views.xml | 4 ++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index 5e414d8dbd0..a989ac4c983 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -69,10 +69,12 @@ class MailActivityType(models.Model): domain="['|', ('res_model_id', '=', False), ('res_model_id', '=', res_model_id)]", string='Preceding Activities') category = fields.Selection([ - ('default', 'Standard'), ('upload_file', 'Upload Document') - ], default='default', string='Category', - help='Categories may trigger specific behavior like opening calendar view or automatically mark as done when a document is uploaded') + ('default', 'None'), ('upload_file', 'Upload Document') + ], default='default', string='Action to Perform', + help='Actions may trigger specific behavior like opening calendar view or automatically mark as done when a document is uploaded') mail_template_ids = fields.Many2many('mail.template', string='Email templates') + default_user_id = fields.Many2one("res.users", string="Default User") + default_description = fields.Html(string="Default Description", translate=True) #Fields for display purpose only initial_res_model_id = fields.Many2one('ir.model', 'Initial model', compute="_compute_initial_res_model_id", store=False, @@ -216,6 +218,8 @@ class MailActivity(models.Model): if self.activity_type_id.delay_from == 'previous_activity' and 'activity_previous_deadline' in self.env.context: base = fields.Date.from_string(self.env.context.get('activity_previous_deadline')) self.date_deadline = base + relativedelta(**{self.activity_type_id.delay_unit: self.activity_type_id.delay_count}) + self.user_id = self.activity_type_id.default_user_id or self.env.user + self.note = self.activity_type_id.default_description @api.onchange('recommended_activity_type_id') def _onchange_recommended_activity_type_id(self): @@ -706,10 +710,11 @@ class MailActivityMixin(models.AbstractModel): 'activity_type_id': activity_type.id, 'summary': summary or activity_type.summary, 'automated': True, - 'note': note, + 'note': note or activity_type.default_description, 'date_deadline': date_deadline, 'res_model_id': model_id, 'res_id': record.id, + 'user_id': act_values.get('user_id') or activity_type.default_user_id.id or self.env.uid } create_vals.update(act_values) activities |= self.env['mail.activity'].create(create_vals) diff --git a/addons/mail/views/mail_activity_views.xml b/addons/mail/views/mail_activity_views.xml index 32b5e6edf68..e5fcf98dc4b 100644 --- a/addons/mail/views/mail_activity_views.xml +++ b/addons/mail/views/mail_activity_views.xml @@ -32,6 +32,7 @@ + @@ -43,6 +44,9 @@ attrs="{'invisible': [('res_model_id', '=', False)]}" context="{'default_model_id': res_model_id}"/> + + +