# Copyright 2019 Akretion France (http://www.akretion.com) # @author Sébastien BEAU # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from openerp import api, fields, models 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: ir_models = self.env['ir.model'].search([('state', '!=', 'manual')]) return [(ir_model.model, ir_model.name) for ir_model in ir_models if not ir_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)