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 @@