diff --git a/addons/report/data/report_paperformat.xml b/addons/report/data/report_paperformat.xml index 6b37c07d3b0..275d65edd13 100644 --- a/addons/report/data/report_paperformat.xml +++ b/addons/report/data/report_paperformat.xml @@ -32,9 +32,5 @@ 35 90 - - - - - \ No newline at end of file + diff --git a/addons/report/models/report_paperformat.py b/addons/report/models/report_paperformat.py index 6b84f3d3363..41a5e0a9950 100644 --- a/addons/report/models/report_paperformat.py +++ b/addons/report/models/report_paperformat.py @@ -19,6 +19,9 @@ # ############################################################################## +from functools import partial + +from openerp import SUPERUSER_ID from openerp.osv import osv, fields @@ -114,6 +117,24 @@ class res_company(osv.Model): _columns = {'paperformat_id': fields.many2one('report.paperformat', 'Paper format')} + def init(self, cr): + # set a default paperformat based on rml one. + ref = partial(self.pool['ir.model.data'].xmlid_to_res_id, cr, SUPERUSER_ID) + + ids = self.search(cr, SUPERUSER_ID, [('paperformat_id', '=', False)]) + for company in self.browse(cr, SUPERUSER_ID, ids): + paperformat_id = { + 'a4': ref('report.paperformat_euro'), + 'us_letter': ref('report.paperformat_us'), + }.get(company.rml_paper_format) or ref('report.paperformat_euro') + + if paperformat_id: + company.write({'paperformat_id': paperformat_id}) + + sup = super(res_company, self) + if hasattr(sup, 'init'): + sup.init(cr) + class ir_actions_report(osv.Model): _inherit = 'ir.actions.report.xml'