From 9fb86d6facbf99346dddcf41096b7045663b49a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 11 Jul 2017 16:58:53 +0200 Subject: [PATCH] [FIX] mail: do not put context as feedback when marking an activity as done --- addons/mail/models/mail_activity.py | 7 ++++++- addons/mail/static/src/js/activity.js | 2 +- addons/mail/static/tests/chatter_tests.js | 10 +++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index f9e868e5fe6..d816604b698 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -168,7 +168,12 @@ class MailActivity(models.Model): return super(MailActivity, self).unlink() @api.multi - def action_done(self, feedback=False): + def action_done(self): + """ Wrapper without feedback because web button add context as + parameter, therefore setting context to feedback """ + return self.action_feedback() + + def action_feedback(self, feedback=False): message = self.env['mail.message'] if feedback: self.write(dict(feedback=feedback)) diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js index d8ee101b66c..85e05cf5646 100644 --- a/addons/mail/static/src/js/activity.js +++ b/addons/mail/static/src/js/activity.js @@ -55,7 +55,7 @@ var AbstractActivityField = AbstractField.extend({ _markActivityDone: function (id, feedback) { return this._rpc({ model: 'mail.activity', - method: 'action_done', + method: 'action_feedback', args: [[id]], kwargs: {feedback: feedback}, }); diff --git a/addons/mail/static/tests/chatter_tests.js b/addons/mail/static/tests/chatter_tests.js index f55e247a5b6..2bb5742e378 100644 --- a/addons/mail/static/tests/chatter_tests.js +++ b/addons/mail/static/tests/chatter_tests.js @@ -277,7 +277,7 @@ QUnit.test('kanban activity widget with an activity', function (assert) { '', mockRPC: function (route, args) { rpcCount++; - if (route === '/web/dataset/call_kw/mail.activity/action_done') { + if (route === '/web/dataset/call_kw/mail.activity/action_feedback') { var current_ids = this.data.partner.records[0].activity_ids; var done_ids = args.args[0]; this.data.partner.records[0].activity_ids = _.difference(current_ids, done_ids); @@ -521,8 +521,8 @@ QUnit.test('form activity widget: schedule next activity', function (assert) { '', res_id: 2, mockRPC: function (route, args) { - if (route === '/web/dataset/call_kw/mail.activity/action_done') { - assert.ok(_.isEqual(args.args[0], [1]), "should call 'action_done' for id 1"); + if (route === '/web/dataset/call_kw/mail.activity/action_feedback') { + assert.ok(_.isEqual(args.args[0], [1]), "should call 'action_feedback' for id 1"); assert.strictEqual(args.kwargs.feedback, 'everything is ok', "the feedback should be sent correctly"); return $.when(); @@ -607,8 +607,8 @@ QUnit.test('form activity widget: mark as done and remove', function (assert) { mockRPC: function (route, args) { if (route === '/web/dataset/call_kw/mail.activity/unlink') { assert.ok(_.isEqual(args.args[0], [1]), "should call 'unlink' for id 1"); - } else if (route === '/web/dataset/call_kw/mail.activity/action_done') { - assert.ok(_.isEqual(args.args[0], [2]), "should call 'action_done' for id 2"); + } else if (route === '/web/dataset/call_kw/mail.activity/action_feedback') { + assert.ok(_.isEqual(args.args[0], [2]), "should call 'action_feedback' for id 2"); assert.strictEqual(args.kwargs.feedback, 'everything is ok', "the feedback should be sent correctly"); // should generate a message and unlink the activity