diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 30bdc2eedac..222a0bebbb4 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -421,6 +421,7 @@ class account_invoice(osv.osv): 'mark_invoice_as_sent': True, }) return { + 'name': _('Compose Email'), 'type': 'ir.actions.act_window', 'view_type': 'form', 'view_mode': 'form', diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 6c74ead0140..56990f0e8f9 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -944,6 +944,7 @@ class crm_lead(base_stage, format_address, osv.osv): 'default_composition_mode': 'comment', }) return { + 'name': _('Compose Email'), 'type': 'ir.actions.act_window', 'view_type': 'form', 'view_mode': 'form', diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml index e335bd1b2ff..8ee352f25c0 100644 --- a/addons/crm/crm_lead_data.xml +++ b/addons/crm/crm_lead_data.xml @@ -228,7 +228,7 @@ Lead/Opportunity Mass Mail - ${object.partner_id and object.partner_id.id} + ${object.partner_id != False and object.partner_id.id} ${not object.partner_id and object.email_from} diff --git a/addons/email_template/email_template_view.xml b/addons/email_template/email_template_view.xml index 8c63a06ebe0..5429341e154 100644 --- a/addons/email_template/email_template_view.xml +++ b/addons/email_template/email_template_view.xml @@ -9,7 +9,7 @@
@@ -25,30 +25,44 @@ context="{'template_id':active_id}"/>
- + - - - - - - - + + + + + + + + - - - - - - - - - - + +

Dynamic placeholder generator

+ + + + +
+

Body

+ +
- + @@ -56,9 +70,6 @@ - - -
diff --git a/addons/email_template/wizard/email_template_preview.py b/addons/email_template/wizard/email_template_preview.py index 1cfcf048691..c6518122d02 100644 --- a/addons/email_template/wizard/email_template_preview.py +++ b/addons/email_template/wizard/email_template_preview.py @@ -69,15 +69,19 @@ class email_template_preview(osv.osv_memory): } def on_change_res_id(self, cr, uid, ids, res_id, context=None): - if not res_id: return {} - vals = {} + if context is None: + context = {'value': {}} + if not res_id or not context.get('template_id'): + return {'value': {}} + email_template = self.pool.get('email.template') - template_id = context and context.get('template_id') + template_id = context.get('template_id') template = email_template.browse(cr, uid, template_id, context=context) - vals['name'] = template.name + + # generate and get template values mail_values = email_template.generate_email(cr, uid, template_id, res_id, context=context) - for k in ('email_from','email_to','email_cc','reply_to','subject','body_html'): - vals[k] = mail_values[k] + vals = dict((field, mail_values.get(field, False)) for field in ('email_from', 'email_to', 'email_cc', 'reply_to', 'subject', 'body_html', 'partner_to')) + vals['name'] = template.name return {'value': vals} # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/email_template/wizard/email_template_preview_view.xml b/addons/email_template/wizard/email_template_preview_view.xml index 2d7abcb4eef..0a74f7d813e 100644 --- a/addons/email_template/wizard/email_template_preview_view.xml +++ b/addons/email_template/wizard/email_template_preview_view.xml @@ -7,22 +7,22 @@ email_template.preview
-
-

Preview of

- -

Using sample document - -

-
+ +

Preview of

+ Using sample document - - - - - - - + + + + + + + diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index 2215d0705f1..f3b03d16a2f 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -39,26 +39,8 @@ def _reopen(self, res_id, model): class mail_compose_message(osv.TransientModel): _inherit = 'mail.compose.message' - def _get_templates(self, cr, uid, context=None): - if context is None: - context = {} - model = False - email_template_obj = self.pool.get('email.template') - message_id = context.get('default_parent_id', context.get('message_id', context.get('active_id'))) - - if context.get('default_composition_mode') == 'reply' and message_id: - message_data = self.pool.get('mail.message').browse(cr, uid, message_id, context=context) - if message_data: - model = message_data.model - else: - model = context.get('default_model', context.get('active_model')) - - record_ids = email_template_obj.search(cr, uid, [('model', '=', model)], context=context) - return email_template_obj.name_get(cr, uid, record_ids, context) + [(False, '')] - _columns = { - # incredible hack of the day: size=-1 means we want an int db column instead of an str one - 'template_id': fields.selection(_get_templates, 'Template', size=-1), + 'template_id': fields.many2one('email.template', 'Use template', select=True), 'partner_to': fields.char('To (Partner IDs)', help="Comma-separated list of recipient partners ids (placeholders may be used here)"), 'email_to': fields.char('To (Emails)', @@ -114,10 +96,13 @@ class mail_compose_message(osv.TransientModel): 'subject': record.subject or False, 'body_html': record.body or False, 'model_id': model_id or False, - 'attachment_ids': [(6, 0, [att.id for att in record.attachment_ids])] + 'attachment_ids': [(6, 0, [att.id for att in record.attachment_ids])], } template_id = email_template.create(cr, uid, values, context=context) - record.write(record.onchange_template_id(template_id, record.composition_mode, record.model, record.res_id)['value']) + # generate the saved template + template_values = record.onchange_template_id(template_id, record.composition_mode, record.model, record.res_id)['value'] + template_values['template_id'] = template_id + record.write(template_values) return _reopen(self, record.id, record.model) #------------------------------------------------------ diff --git a/addons/email_template/wizard/mail_compose_message_view.xml b/addons/email_template/wizard/mail_compose_message_view.xml index 1b2be68a4a2..46ed49e6627 100644 --- a/addons/email_template/wizard/mail_compose_message_view.xml +++ b/addons/email_template/wizard/mail_compose_message_view.xml @@ -24,10 +24,11 @@ - +
Use template - + +