From 900705ca5b8ade7fbecda634b019d3b546743c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 27 Mar 2014 16:46:06 +0100 Subject: [PATCH] [IMP] mass_mailing: added a new menu entry to create a new mailing list that calls a new wizard, allowing to select contacts/customers/leads and create a new mailing list. Also updated default values in action 'create mailing list' for contact, customer and leads. Also removed minimal form view on list, using only one view, with technical fields put in group_no_one. bzr revid: tde@openerp.com-20140327154606-7zrzi1ri1hfaxtay --- addons/mass_mailing/__openerp__.py | 1 + addons/mass_mailing/models/mass_mailing.py | 19 ++--- addons/mass_mailing/views/mass_mailing.xml | 81 +++++++------------ addons/mass_mailing/views/res_partner.xml | 8 +- addons/mass_mailing/wizard/__init__.py | 2 +- addons/mass_mailing/wizard/create_list.py | 25 ++++++ .../mass_mailing/wizard/create_list_view.xml | 33 ++++++++ .../mass_mailing_crm/models/mass_mailing.py | 2 +- addons/mass_mailing_crm/views/crm_lead.xml | 7 +- 9 files changed, 109 insertions(+), 69 deletions(-) create mode 100644 addons/mass_mailing/wizard/create_list.py create mode 100644 addons/mass_mailing/wizard/create_list_view.xml diff --git a/addons/mass_mailing/__openerp__.py b/addons/mass_mailing/__openerp__.py index b637f2b17e0..161af2187a4 100644 --- a/addons/mass_mailing/__openerp__.py +++ b/addons/mass_mailing/__openerp__.py @@ -43,6 +43,7 @@ professional emails and reuse templates in a few clicks. 'data/mass_mailing_data.xml', 'wizard/mail_compose_message_view.xml', 'wizard/create_template_view.xml', + 'wizard/create_list_view.xml', 'views/mass_mailing.xml', 'views/res_config.xml', 'views/res_partner.xml', diff --git a/addons/mass_mailing/models/mass_mailing.py b/addons/mass_mailing/models/mass_mailing.py index 89d190f51cd..5281e962426 100644 --- a/addons/mass_mailing/models/mass_mailing.py +++ b/addons/mass_mailing/models/mass_mailing.py @@ -81,7 +81,8 @@ class MassMailingList(osv.Model): """Override default_get to handle active_domain coming from the list view. """ res = super(MassMailingList, self).default_get(cr, uid, fields, context=context) if 'domain' in fields: - res['model'] = context.get('active_model', 'res.partner') + if not 'model' in res and context.get('active_model'): + res['model'] = context['active_model'] if 'active_domain' in context: res['domain'] = '%s' % context['active_domain'] elif 'active_ids' in context: @@ -572,12 +573,6 @@ class MassMailing(osv.Model): values['body_html'] = False return {'value': values} - def _get_model_to_list_action_id(self, cr, uid, model, context=None): - if model == 'res.partner': - return self.pool['ir.model.data'].xmlid_to_res_id(cr, uid, 'mass_mailing.action_partner_to_mailing_list') - else: - return self.pool['ir.model.data'].xmlid_to_res_id(cr, uid, 'mass_mailing.action_contact_to_mailing_list') - def action_duplicate(self, cr, uid, ids, context=None): copy_id = None for mailing in self.browse(cr, uid, ids, context=context): @@ -598,10 +593,16 @@ class MassMailing(osv.Model): } return False + def _get_model_to_list_action_id(self, cr, uid, model, context=None): + if model == 'res.partner': + return self.pool['ir.model.data'].xmlid_to_res_id(cr, uid, 'mass_mailing.action_partner_to_mailing_list') + else: + return self.pool['ir.model.data'].xmlid_to_res_id(cr, uid, 'mass_mailing.action_contact_to_mailing_list') + def action_new_list(self, cr, uid, ids, context=None): wizard = self.browse(cr, uid, ids[0], context=context) - action_id = self.pool['ir.model.data'].xmlid_to_res_id(cr, uid, 'mass_mailing.action_partner_to_mailing_list') - ctx = dict(context, view_manager_highlight=[action_id], default_mass_mailing_id=ids[0]) + action_id = self._get_model_to_list_action_id(cr, uid, wizard.mailing_model, context=context) + ctx = dict(context, view_manager_highlight=[action_id], default_mass_mailing_id=ids[0], default_model=wizard.mailing_model) return { 'name': _('Choose Recipients'), 'type': 'ir.actions.act_window', diff --git a/addons/mass_mailing/views/mass_mailing.xml b/addons/mass_mailing/views/mass_mailing.xml index 93fab015468..4f20c455ad7 100644 --- a/addons/mass_mailing/views/mass_mailing.xml +++ b/addons/mass_mailing/views/mass_mailing.xml @@ -68,11 +68,11 @@ {'search_default_not_opt_out': 1} - - + + context="{ +'default_mass_mailing_id': context.get('default_mass_mailing_id'), +'default_model': context.get('default_model', 'mail.mass_mailing.contact'), +'default_name': context.get('default_name', False)}"/> @@ -108,10 +111,9 @@ - - mail.mass_mailing.list.form.minimal + + mail.mass_mailing.list.form mail.mass_mailing.list - 20
@@ -125,48 +127,15 @@