diff --git a/mail_usability/mail.py b/mail_usability/mail.py index ecbadc1..2d86749 100644 --- a/mail_usability/mail.py +++ b/mail_usability/mail.py @@ -41,3 +41,41 @@ class ResPartner(models.Model): message, force_send=force_send, send_after_commit=send_after_commit, user_signature=user_signature) + + +class TemplatePreview(models.TransientModel): + _inherit = "email_template.preview" + + res_id = fields.Integer(compute='_compute_res_id') + object_id = fields.Reference(selection='_reference_models') + + @api.model + def default_get(self, fields): + result = super(TemplatePreview, self).default_get(fields) + if result.get('model_id'): + model = self.env['ir.model'].browse(result['model_id']) + result['object_id'] = model.model + return result + + def _reference_models(self): + result = self.default_get(['model_id']) + if result.get('model_id'): + model = self.env['ir.model'].browse(result['model_id']) + return [(model.model, model.name)] + else: + models = self.env['ir.model'].search([('state', '!=', 'manual')]) + return [(model.model, model.name) + for model in models + if not model.model.startswith('ir.')] + + @api.depends('object_id') + def _compute_res_id(self): + for record in self: + if self.object_id: + record.res_id = self.object_id.id + + def send(self): + template = self.env['mail.template'].browse( + self._context['template_id']) + template.send_mail( + self.res_id, force_send=True, raise_exception=True) diff --git a/mail_usability/mail_view.xml b/mail_usability/mail_view.xml index 4194446..6bce9e3 100644 --- a/mail_usability/mail_view.xml +++ b/mail_usability/mail_view.xml @@ -19,4 +19,23 @@ + + email_template.preview + + + + True + + + + + + +