If the option 'Reload from attachment' is checked for a report, it will be generated from the existing attachments. However, for snailmail, we have to force the re-rendering to apply specific css rules to match the layout of a A4 letter. Task-ID: 2008896 closes odoo/odoo#34053 Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
26 lines
926 B
Python
26 lines
926 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import models, fields, api, _
|
|
|
|
|
|
class IrActionsReport(models.Model):
|
|
_inherit = 'ir.actions.report'
|
|
|
|
@api.multi
|
|
def retrieve_attachment(self, record):
|
|
# Override this method in order to force to re-render the pdf in case of
|
|
# using snailmail
|
|
if self.env.context.get('snailmail_layout'):
|
|
return False
|
|
return super(IrActionsReport, self).retrieve_attachment(record)
|
|
|
|
@api.model
|
|
def get_paperformat(self):
|
|
# force the right format (euro/A4) when sending letters, only if we are not using the l10n_DE layout
|
|
res = super(IrActionsReport, self).get_paperformat()
|
|
if self.env.context.get('snailmail_layout') and res != self.env.ref('l10n_de.paperformat_euro_din', False):
|
|
paperformat_id = self.env.ref('base.paperformat_euro')
|
|
return paperformat_id
|
|
else:
|
|
return res
|