[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) <tde@openerp.com>
This commit is contained in:
committed by
Thibault Delavallée
parent
563eec5ece
commit
356e04a06d
@@ -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)
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
</div>
|
||||
<field name="delay_from"/>
|
||||
</div>
|
||||
<field name="default_user_id" widget="selection"/>
|
||||
</group>
|
||||
<group name="activity_planning">
|
||||
<field name="force_next"/>
|
||||
@@ -43,6 +44,9 @@
|
||||
attrs="{'invisible': [('res_model_id', '=', False)]}"
|
||||
context="{'default_model_id': res_model_id}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="default_description"/>
|
||||
</group>
|
||||
</group>
|
||||
<p class="alert alert-info" role="alert" attrs="{'invisible': [('res_model_change', '=', False)]}">Modifying the model can have an impact on existing activities using this activity type, be careful.</p>
|
||||
</sheet>
|
||||
|
||||
Reference in New Issue
Block a user