diff --git a/addons/mass_mailing/wizard/__init__.py b/addons/mass_mailing/wizard/__init__.py
index b6410f3543f..7a195f4f66f 100644
--- a/addons/mass_mailing/wizard/__init__.py
+++ b/addons/mass_mailing/wizard/__init__.py
@@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
+import create_template
import mail_compose_message
+
diff --git a/addons/mass_mailing/wizard/create_template.py b/addons/mass_mailing/wizard/create_template.py
new file mode 100644
index 00000000000..420102c2c9b
--- /dev/null
+++ b/addons/mass_mailing/wizard/create_template.py
@@ -0,0 +1,63 @@
+# -*- coding: utf-8 -*-
+
+from openerp.osv import osv, fields
+
+
+class EmailTemplateWizard(osv.TransientModel):
+ """A wizard allowing to create an email.template from a mass mailing. This wizard
+ allows to simplify and direct the user in the creation of its template without
+ having to tune or hack the email.template model. """
+ _name = 'mailing.email.template.wizard'
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(EmailTemplateWizard, self).default_get(cr, uid, fields, context=context)
+ if res.get('mass_mailing_id') and not 'name' in res:
+ mailing_ng = self.pool['mail.mass_mailing'].name_get(cr, uid, [res.get('mass_mailing_id')], context=context)
+ res['name'] = mailing_ng[0][1]
+ return res
+
+ def _get_model_list(self, cr, uid, context=None):
+ return self.pool['mail.mass_mailing']._get_mailing_model(cr, uid, context=context)
+
+ # indirections for inheritance
+ _model_list = lambda self, *args, **kwargs: self._get_model_list(*args, **kwargs)
+
+ _columns = {
+ 'name': fields.char('Name', required=True),
+ 'body': fields.html('Body'),
+ 'template_id': fields.many2one('email.template', 'Basis Template'),
+ 'mass_mailing_id': fields.many2one('mail.mass_mailing', 'Mass Mailing', required=True),
+ 'attachment_ids': fields.many2many(
+ 'ir.attachment', 'email_template_wizard_attachment_rel', 'email_template_id',
+ 'attachment_id', 'Attachments'),
+ }
+
+ def on_change_template_id(self, cr, uid, ids, template_id, context=None):
+ if template_id:
+ template = self.pool['email.template'].browse(cr, uid, template_id, context=context)
+ return {'value': {'body': template.body_html, 'attachment_ids': [(4, att.id) for att in template.attachment_ids]}}
+ return {}
+
+ def create_template(self, cr, uid, ids, context=None):
+ EmailTemplate = self.pool['email.template']
+ for wizard in self.browse(cr, uid, ids, context=context):
+ model_ids = self.pool['ir.model'].search(cr, uid, [('model', '=', wizard.mass_mailing_id.mailing_model)], context=context)
+ values = {
+ 'name': wizard.name,
+ 'model_id': model_ids[0],
+ 'body_html': wizard.body,
+ 'use_in_mass_mailing': True,
+ 'use_default_to': True,
+ 'attachment_ids': [(4, attach.id) for attach in wizard.attachment_ids],
+ }
+ tpl_id = EmailTemplate.create(cr, uid, values, context=context)
+ self.pool['mail.mass_mailing'].write(cr, uid, [wizard.mass_mailing_id.id], {'template_id': tpl_id}, context=context)
+ return {
+ 'type': 'ir.actions.act_window',
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'mail.mass_mailing',
+ 'res_id': wizard.mass_mailing_id.id,
+ 'target': 'current',
+ 'context': context,
+ }
diff --git a/addons/mass_mailing/wizard/create_template_view.xml b/addons/mass_mailing/wizard/create_template_view.xml
new file mode 100644
index 00000000000..e240017e572
--- /dev/null
+++ b/addons/mass_mailing/wizard/create_template_view.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+ mailing.email.template.wizard.form
+ mailing.email.template.wizard
+
+
+
+
+
+
+ Mass Mailing Template
+ mailing.email.template.wizard
+ form
+ form
+ new
+
+
+
+