From 1ba1a378503524185b3b0c56145b7b5aa5e9d19f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 24 Dec 2012 12:57:03 +0100 Subject: [PATCH 1/4] [IMP] mail.group: add the group email gateway in the client action description. bzr revid: tde@openerp.com-20121224115703-zl4y62qgmyk3x7z7 --- addons/mail/mail_group.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index e171c9cc14c..37c05a1a2ea 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -96,6 +96,12 @@ class mail_group(osv.Model): 'alias_domain': False, # always hide alias during creation } + def _generate_header_description(self, cr, uid, description, group, context=None): + if group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain: + return '%s
Group email gateway: %s@%s' % (description, group.alias_id.alias_name, group.alias_id.alias_domain) + else: + return '%s' % description + def _subscribe_users(self, cr, uid, ids, context=None): for mail_group in self.browse(cr, uid, ids, context=context): partner_ids = [] @@ -126,6 +132,7 @@ class mail_group(osv.Model): # Create group and alias mail_group_id = super(mail_group, self).create(cr, uid, vals, context=context) mail_alias.write(cr, uid, [vals['alias_id']], {"alias_force_thread_id": mail_group_id}, context) + group = self.browse(cr, uid, mail_group_id, context=context) # Create client action for this group and link the menu to it ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'action_mail_group_feeds') @@ -137,11 +144,11 @@ class mail_group(osv.Model): 'context': {'default_model': 'mail.group', 'default_res_id': mail_group_id, 'search_default_message_unread': True}, 'res_model': 'mail.message', 'thread_level': 1, - 'header_description': vals.get('description'), + 'header_description': self._generate_header_description(cr, uid, vals.get('description'), group, context=context) } cobj = self.pool.get('ir.actions.client') newref = cobj.copy(cr, SUPERUSER_ID, ref[1], default={'params': str(params), 'name': vals['name']}, context=context) - mobj.write(cr, SUPERUSER_ID, menu_id, { 'action': 'ir.actions.client,' + str(newref), 'mail_group_id': mail_group_id}, context=context) + mobj.write(cr, SUPERUSER_ID, menu_id, {'action': 'ir.actions.client,' + str(newref), 'mail_group_id': mail_group_id}, context=context) if vals.get('group_ids'): self._subscribe_users(cr, uid, [mail_group_id], context=context) @@ -169,13 +176,13 @@ class mail_group(osv.Model): cobj = self.pool.get('ir.actions.client') for action in [group.menu_id.action for group in self.browse(cr, uid, ids, context=context)]: new_params = action.params - new_params['header_description'] = vals.get('description') + new_params['header_description'] = self._generate_header_description(cr, uid, vals.get('description'), group, context=context) cobj.write(cr, SUPERUSER_ID, [action.id], {'params': str(new_params)}, context=context) # if name is changed: update menu if vals.get('name'): mobj = self.pool.get('ir.ui.menu') - mobj.write(cr, SUPERUSER_ID, - [group.menu_id.id for group in self.browse(cr, uid, ids, context=context)], + mobj.write(cr, SUPERUSER_ID, + [group.menu_id.id for group in self.browse(cr, uid, ids, context=context)], {'name': vals.get('name')}, context=context) return result From 68872e11751222d9dcf10f2fabc2f9ca3ae1f6d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 24 Dec 2012 13:32:15 +0100 Subject: [PATCH 2/4] [IMP] mail.group decription: take into account void descriptions. bzr revid: tde@openerp.com-20121224123215-ll9ejzuqrpik3ks5 --- addons/mail/mail_group.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index 37c05a1a2ea..53568a16036 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -97,10 +97,14 @@ class mail_group(osv.Model): } def _generate_header_description(self, cr, uid, description, group, context=None): + header = '' + if description: + header = '%s' % description if group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain: - return '%s
Group email gateway: %s@%s' % (description, group.alias_id.alias_name, group.alias_id.alias_domain) - else: - return '%s' % description + if header: + header = '%s
' % header + return '%sGroup email gateway: %s@%s' % (header, group.alias_id.alias_name, group.alias_id.alias_domain) + return header def _subscribe_users(self, cr, uid, ids, context=None): for mail_group in self.browse(cr, uid, ids, context=context): From 82fbb9411aa07b90d972f377dc6e5cf8a44c5026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 24 Dec 2012 14:19:22 +0100 Subject: [PATCH 3/4] [IMP] mail.group: updated client action description when writing on description, name, or the alias. bzr revid: tde@openerp.com-20121224131922-v3rzft5mma8ppy1f --- addons/mail/mail_group.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index 53568a16036..4423d67aa26 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -175,8 +175,8 @@ class mail_group(osv.Model): result = super(mail_group, self).write(cr, uid, ids, vals, context=context) if vals.get('group_ids'): self._subscribe_users(cr, uid, ids, context=context) - # if description is changed: update client action - if vals.get('description'): + # if description, name or alias is changed: update client action + if vals.get('description') or vals.get('name') or vals.get('alias_id') or vals.get('alias_name'): cobj = self.pool.get('ir.actions.client') for action in [group.menu_id.action for group in self.browse(cr, uid, ids, context=context)]: new_params = action.params From 142ef3856b38ff8d0a6ae9143fb006ad49e96dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 24 Dec 2012 14:48:14 +0100 Subject: [PATCH 4/4] [CLEAN] mail_group: cleaned added code, no need to pass an explicit description parameter as we have a browse object on an actualized record. bzr revid: tde@openerp.com-20121224134814-g3mxb979x0ioaqbc --- addons/mail/mail_group.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index 4423d67aa26..24aed942b1b 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -96,10 +96,10 @@ class mail_group(osv.Model): 'alias_domain': False, # always hide alias during creation } - def _generate_header_description(self, cr, uid, description, group, context=None): + def _generate_header_description(self, cr, uid, group, context=None): header = '' - if description: - header = '%s' % description + if group.description: + header = '%s' % group.description if group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain: if header: header = '%s
' % header @@ -148,7 +148,7 @@ class mail_group(osv.Model): 'context': {'default_model': 'mail.group', 'default_res_id': mail_group_id, 'search_default_message_unread': True}, 'res_model': 'mail.message', 'thread_level': 1, - 'header_description': self._generate_header_description(cr, uid, vals.get('description'), group, context=context) + 'header_description': self._generate_header_description(cr, uid, group, context=context) } cobj = self.pool.get('ir.actions.client') newref = cobj.copy(cr, SUPERUSER_ID, ref[1], default={'params': str(params), 'name': vals['name']}, context=context) @@ -180,7 +180,7 @@ class mail_group(osv.Model): cobj = self.pool.get('ir.actions.client') for action in [group.menu_id.action for group in self.browse(cr, uid, ids, context=context)]: new_params = action.params - new_params['header_description'] = self._generate_header_description(cr, uid, vals.get('description'), group, context=context) + new_params['header_description'] = self._generate_header_description(cr, uid, group, context=context) cobj.write(cr, SUPERUSER_ID, [action.id], {'params': str(new_params)}, context=context) # if name is changed: update menu if vals.get('name'):