diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index 47b724aac98..02507b46928 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -6,6 +6,7 @@ import pytz from odoo import api, exceptions, fields, models, _ from odoo.osv import expression +from odoo.tools import pycompat class MailActivityType(models.Model): @@ -34,6 +35,10 @@ class MailActivityType(models.Model): 'Planned in', default=0, help='Number of days before executing the action. It allows to plan the action deadline.') icon = fields.Char('Icon', help="Font awesome icon e.g. fa-tasks") + decoration_type = fields.Selection([ + ('warning', 'Alert'), + ('danger', 'Error')], string="Decoration Type", + help="Change the background color of the related activities of this type.") res_model_id = fields.Many2one( 'ir.model', 'Model', index=True, domain=['&', ('is_mail_thread', '=', True), ('transient', '=', False)], @@ -85,6 +90,7 @@ class MailActivity(models.Model): 'mail.activity.type', 'Activity', domain="['|', ('res_model_id', '=', False), ('res_model_id', '=', res_model_id)]", ondelete='restrict') activity_category = fields.Selection(related='activity_type_id.category') + activity_decoration = fields.Selection(related='activity_type_id.decoration_type') icon = fields.Char('Icon', related='activity_type_id.icon') summary = fields.Char('Summary') note = fields.Html('Note') diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js index 828e29e195d..9c86104603f 100644 --- a/addons/mail/static/src/js/activity.js +++ b/addons/mail/static/src/js/activity.js @@ -201,8 +201,12 @@ var Activity = AbstractActivityField.extend({ */ _render: function () { _.each(this._activities, function (activity) { - if (activity.note) { + var note = mailUtils.parseAndTransform(activity.note || '', mailUtils.inline); + var is_blank = (/^\s*$/).test(note); + if (!is_blank) { activity.note = mailUtils.parseAndTransform(activity.note, mailUtils.addLink); + } else { + activity.note = ''; } }); var activities = setDelayLabel(this._activities); diff --git a/addons/mail/static/src/scss/mail_activity.scss b/addons/mail/static/src/scss/mail_activity.scss index f835275e873..d4d9a3ffecb 100644 --- a/addons/mail/static/src/scss/mail_activity.scss +++ b/addons/mail/static/src/scss/mail_activity.scss @@ -89,6 +89,10 @@ .o_thread_message_note { margin: 2px 0 5px; + padding: 0px; + } + .o_thread_message_warning { + margin: 2px 0 5px; } .o_thread_message_tools { diff --git a/addons/mail/static/src/xml/activity.xml b/addons/mail/static/src/xml/activity.xml index 5ed86b37614..1e9892b4d1e 100644 --- a/addons/mail/static/src/xml/activity.xml +++ b/addons/mail/static/src/xml/activity.xml @@ -51,7 +51,7 @@ -
+
diff --git a/addons/mail/views/mail_activity_views.xml b/addons/mail/views/mail_activity_views.xml index 56908319829..343de996f81 100644 --- a/addons/mail/views/mail_activity_views.xml +++ b/addons/mail/views/mail_activity_views.xml @@ -21,6 +21,7 @@ +