[IMP]mail:set a default value for field Activity Type when scheduling activity

purpose : Improve the efficiency of encoding a next activity by pre-filling the next activity type.

Set a value by default in the field Activity Type following this rules :
1) To do
2) first in sequence for this model
3) first in sequence with no model set

task-2177020
Closes #50550

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Pierre Collinet (pic)
2020-05-22 07:07:25 +00:00
parent 10dd4a18fb
commit 9a8fdda8ab
+15 -1
View File
@@ -119,6 +119,19 @@ class MailActivity(models.Model):
res['res_model_id'] = self.env['ir.model']._get(res['res_model']).id
return res
@api.model
def _default_activity_type_id(self):
ActivityType = self.env["mail.activity.type"]
activity_type_todo = self.env.ref('mail.mail_activity_data_todo', raise_if_not_found=False)
current_model_id = self.default_get(['res_model_id', 'res_model'])['res_model_id']
if activity_type_todo and activity_type_todo.active and (activity_type_todo.res_model_id.id == current_model_id or not activity_type_todo.res_model_id):
return activity_type_todo
activity_type_model = ActivityType.search([('res_model_id', '=', current_model_id)], limit=1)
if activity_type_model:
return activity_type_model
activity_type_generic = ActivityType.search([('res_model_id','=', False)], limit=1)
return activity_type_generic
# owner
res_model_id = fields.Many2one(
'ir.model', 'Document Model',
@@ -133,7 +146,8 @@ class MailActivity(models.Model):
# activity
activity_type_id = fields.Many2one(
'mail.activity.type', string='Activity Type',
domain="['|', ('res_model_id', '=', False), ('res_model_id', '=', res_model_id)]", ondelete='restrict')
domain="['|', ('res_model_id', '=', False), ('res_model_id', '=', res_model_id)]", ondelete='restrict',
default=_default_activity_type_id)
activity_category = fields.Selection(related='activity_type_id.category', readonly=True)
activity_decoration = fields.Selection(related='activity_type_id.decoration_type', readonly=True)
icon = fields.Char('Icon', related='activity_type_id.icon', readonly=True)