You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

75 lines
2.5 KiB

from odoo import api, fields, models,_
from odoo.exceptions import UserError,Warning
class DonationRecurringTemplateLetter(models.Model):
_inherit = "donation.donation"
template_pa_id=fields.Many2one('opendons.template_pa_letter', '(e)mail to send')
html_content=fields.Html('html content',compute='pa_html_content')
html_content_print=fields.Html('html content print')
def action_print_pa(self):
self.ensure_one()
if self.html_content:
html_content_print=self.html_content
html_content_print=html_content_print.replace('{{partner_id.name}}',self.partner_id.name)
html_content_print=html_content_print.replace('{{partner_id.firstname}}',self.partner_id.firstname)
self.html_content_print=self.html_content
return self.env.ref("opendons.report_donation_recurring_letter").report_action(self)
else:
raise Warning('please select a mail to print')
def action_send_pa(self):
self.ensure_one()
if not self.partner_id.email:
raise UserError(
_("Missing email on partner '%s'.") % self.partner_id.display_name
)
self.partner_id.display_name
template = self.env.ref("opendons.donation_recurring_email_template")
compose_form = self.env.ref("mail.email_compose_message_wizard_form")
ctx = dict(
default_model="donation.donation",
default_res_id=self.id,
default_use_template=bool(template),
default_template_id=template.id,
default_composition_mode="comment",
default_body_html='dddd'
)
action = {
"name": _("Compose Email"),
"type": "ir.actions.act_window",
"view_mode": "form",
"res_model": "mail.compose.message",
"view_id": compose_form.id,
"target": "new",
"context": ctx,
}
return action
def pa_html_content(self):
self.html_content=self.template_pa_id.html_content
class opendons_template_pa(models.Model):
_name = 'opendons.template_pa_letter'
_description = 'manage pa html template'
name=fields.Char('name')
description=fields.Text('description')
active=fields.Boolean('active')
html_content=fields.Html('Html content')
def action_update_pa(self):
pa=self.env['donation.donation'].search([('template_pa_id','=',int(self.id))])
for p in pa:
p.html_content=self.html_content