53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
class ResCompany(models.Model):
|
|
_inherit = 'res.company'
|
|
|
|
paperformat_id = fields.Many2one('report.paperformat', 'Paper format')
|
|
|
|
@api.model_cr
|
|
def init(self):
|
|
|
|
# set a default paperformat based on rml one.
|
|
|
|
for company in self.search([('paperformat_id', '=', False)]):
|
|
paperformat_euro = self.env.ref('report.paperformat_euro', False)
|
|
paperformat_us = self.env.ref('report.paperformat_us', False)
|
|
paperformat_id = {
|
|
'a4': paperformat_euro and paperformat_euro.id or False,
|
|
'us_letter': paperformat_us and paperformat_us.id or False,
|
|
}.get(company.rml_paper_format) or paperformat_euro
|
|
|
|
if paperformat_id:
|
|
company.write({'paperformat_id': paperformat_id})
|
|
|
|
sup = super(ResCompany, self)
|
|
if hasattr(sup, 'init'):
|
|
sup.init()
|
|
|
|
@api.model
|
|
def _prepare_report_view_action(self, template):
|
|
template_id = self.env.ref(template)
|
|
return {
|
|
'type': 'ir.actions.act_window',
|
|
'res_model': 'ir.ui.view',
|
|
'view_type': 'form',
|
|
'view_mode': 'form',
|
|
'res_id': template_id.id,
|
|
}
|
|
|
|
@api.multi
|
|
def edit_external_header(self):
|
|
return self._prepare_report_view_action('report.external_layout_header')
|
|
|
|
@api.multi
|
|
def edit_external_footer(self):
|
|
return self._prepare_report_view_action('report.external_layout_footer')
|
|
|
|
@api.multi
|
|
def edit_internal_header(self):
|
|
return self._prepare_report_view_action('report.internal_layout')
|