From 26940f8de4e8c2b8fb71d22fd53f2c537028ac1a Mon Sep 17 00:00:00 2001 From: Mahendra barad Date: Thu, 2 Mar 2017 12:11:49 +0530 Subject: [PATCH] [IMP] mail: remove duplicated logs when scheduling activities and improve template Currently when scheduling activities, duplicate logs are created. Indeed a message is posted when scheduling an activity, editing it and marking it as done. This leads to a lot of noise being created on records. This commit remove logs when scheduling and updating an activity. A sole message is posted when the activity is marked as done. Scheduled activity display in chatter is also improved to better differentiate the user creating the activity from the user who is assigned to the activity. --- addons/mail/models/mail_activity.py | 18 ++++-------------- addons/mail/static/src/js/activity.js | 4 ++++ addons/mail/static/src/xml/activity.xml | 13 ++++++++++--- addons/mail/views/mail_templates.xml | 14 -------------- 4 files changed, 18 insertions(+), 31 deletions(-) diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index b39416b41ac..39fe471bcc4 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -105,27 +105,17 @@ class MailActivity(models.Model): @api.model def create(self, values): activity = super(MailActivity, self).create(values) - activity.post_assignation_message() + self.env[activity.res_model].browse(activity.res_id).message_subscribe(partner_ids=[activity.user_id.partner_id.id]) return activity + @api.multi def write(self, values): res = super(MailActivity, self).write(values) if values.get('user_id'): - self.post_assignation_message() + for activity in self: + self.env[activity.res_model].browse(activity.res_id).message_subscribe(partner_ids=[activity.user_id.partner_id.id]) return res - def post_assignation_message(self): - for activity in self: - record = self.env[activity.res_model].browse(activity.res_id) - record.with_context( - mail_post_autofollow=True - ).message_post_with_view( - 'mail.message_activity_assigned', - values={'activity': activity}, - partner_ids=[activity.user_id.partner_id.id], - subtype_id=self.env.ref('mail.mt_note').id, - ) - @api.multi def action_done(self): message = self.env['mail.message'] diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js index dd1b46c8d4f..9461f7322c5 100644 --- a/addons/mail/static/src/js/activity.js +++ b/addons/mail/static/src/js/activity.js @@ -7,6 +7,7 @@ var Model = require("web.Model"); var Widget = require('web.Widget'); var ChatManager = require('mail.chat_manager'); var QWeb = core.qweb; +var time = require('web.time'); var _t = core._t; @@ -113,6 +114,9 @@ var Activity = form_common.AbstractField.extend({ return this.Activity .call("read", [this.value]) .then(function (results) { + _.each(results, function(result){ + result['time_ago'] = moment(time.auto_str_to_date(result.create_date)).fromNow(); + }); this.activities = set_delay_label(results); self.$el.html(QWeb.render('mail.activity_items', { activities: this.activities, diff --git a/addons/mail/static/src/xml/activity.xml b/addons/mail/static/src/xml/activity.xml index 0f699b6c2d1..92f15abcc9a 100644 --- a/addons/mail/static/src/xml/activity.xml +++ b/addons/mail/static/src/xml/activity.xml @@ -16,16 +16,23 @@ - planned by + - + + () + + planned by + + for + + -
- +
diff --git a/addons/mail/views/mail_templates.xml b/addons/mail/views/mail_templates.xml index 3deae42b5f5..e9554e5155c 100644 --- a/addons/mail/views/mail_templates.xml +++ b/addons/mail/views/mail_templates.xml @@ -64,19 +64,5 @@
- -