[FIX] report: set a default paperformat for companies, based on rml paperformat
authorChristophe Simonis <chs@openerp.com>
Wed, 23 Apr 2014 13:21:00 +0000 (15:21 +0200)
committerChristophe Simonis <chs@openerp.com>
Wed, 23 Apr 2014 13:21:00 +0000 (15:21 +0200)
bzr revid: chs@openerp.com-20140423132100-t6lmyd8qymoo4wqq

addons/report/data/report_paperformat.xml
addons/report/models/report_paperformat.py

index 6b37c07..275d65e 100644 (file)
@@ -32,9 +32,5 @@
             <field name="header_spacing">35</field>
             <field name="dpi">90</field>
         </record>
-
-        <record id="base.main_company" model="res.company">
-            <field name="paperformat_id" ref="paperformat_euro"></field>
-        </record>
     </data>
-</openerp>
\ No newline at end of file
+</openerp>
index 6b84f3d..41a5e0a 100644 (file)
@@ -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'