From 4bdfa3b6caefc6621d7043738708a766b4f80f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Maes?= Date: Thu, 3 Sep 2015 13:52:57 +0200 Subject: [PATCH] [IMP] mail : invite follower wizard have 2 appearances The wizard is the same object, but to add channel as follower, some fields was not required. Via the 'mail_invite_follower_channel_only' context key, the unrelevant fields are hidden. --- addons/mail/static/src/js/mail_followers.js | 13 ++++++++++--- addons/mail/static/src/xml/mail_followers.xml | 3 +++ addons/mail/wizard/invite.py | 4 +++- addons/mail/wizard/invite_view.xml | 10 ++++++---- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js index 630e033de0f..3e83831b478 100644 --- a/addons/mail/static/src/js/mail_followers.js +++ b/addons/mail/static/src/js/mail_followers.js @@ -94,7 +94,14 @@ var Followers = form_common.AbstractField.extend({ }); // event: click on 'invite' button, that opens the invite wizard - this.$el.on('click', '.o_add_follower', self.on_invite_follower); + this.$el.on('click', '.o_add_follower', function(e){ + e.preventDefault(); + self.on_invite_follower(false); + }); + this.$el.on('click', '.o_add_follower_channel', function(e){ + e.preventDefault(); + self.on_invite_follower(true); + }); // event: click on 'edit_subtype(pencil)' button to edit subscription this.$el.on('click', '.o_edit_subtype', self.on_edit_subtype); @@ -126,9 +133,8 @@ var Followers = form_common.AbstractField.extend({ return self.fetch_subtypes(user_pid); }, - on_invite_follower: function (event) { + on_invite_follower: function (channel_only) { var self = this; - event.preventDefault(); var action = { type: 'ir.actions.act_window', res_model: 'mail.wizard.invite', @@ -140,6 +146,7 @@ var Followers = form_common.AbstractField.extend({ context: { 'default_res_model': this.view.dataset.model, 'default_res_id': this.view.datarecord.id, + 'mail_invite_follower_channel_only': channel_only, }, }; this.do_action(action, { diff --git a/addons/mail/static/src/xml/mail_followers.xml b/addons/mail/static/src/xml/mail_followers.xml index 059f67797bf..6370715695a 100644 --- a/addons/mail/static/src/xml/mail_followers.xml +++ b/addons/mail/static/src/xml/mail_followers.xml @@ -54,6 +54,9 @@
  • Add followers
  • +
  • + Add Channels +
  • diff --git a/addons/mail/wizard/invite.py b/addons/mail/wizard/invite.py index 8ad772a04cc..36736cb355d 100644 --- a/addons/mail/wizard/invite.py +++ b/addons/mail/wizard/invite.py @@ -5,7 +5,7 @@ from openerp import tools class Invite(models.TransientModel): - """ Wizard to invite partners and make them followers. """ + """ Wizard to invite partners (or channels) and make them followers. """ _name = 'mail.wizard.invite' _description = 'Invite wizard' @@ -15,6 +15,8 @@ class Invite(models.TransientModel): user_name = self.env.user.name_get()[0][1] model = result.get('res_model') res_id = result.get('res_id') + if self._context.get('mail_invite_follower_channel_only'): + result['send_mail'] = False if 'message' in fields and model and res_id: model_name = self.env['ir.model'].search([('model', '=', self.pool[model]._name)]).name_get()[0][1] document_name = self.env[model].browse(res_id).name_get()[0][1] diff --git a/addons/mail/wizard/invite_view.xml b/addons/mail/wizard/invite_view.xml index 0e1767b2d71..34d8c545b2b 100644 --- a/addons/mail/wizard/invite_view.xml +++ b/addons/mail/wizard/invite_view.xml @@ -13,16 +13,18 @@ + context="{'force_email':True, 'show_email':True}" + invisible="context.get('mail_invite_follower_channel_only')"/> - + placeholder="Add channels to notify..." + invisible="not context.get('mail_invite_follower_channel_only')"/> +