From 121d3c2222f3f2ef872d13557331fd140dd14b10 Mon Sep 17 00:00:00 2001 From: Christophe Chauvet Date: Thu, 17 Dec 2009 22:37:00 +0100 Subject: [PATCH] [FIX] change size for multi company default from 32 to 256 [IMP] Prepare _company_default_get to support rules on object's field lp bug: https://launchpad.net/bugs/497685 fixed bzr revid: christophe.chauvet@syleam.fr-20091217213700-k1i6fdgojhn0uccs --- bin/addons/base/res/res_company.py | 11 ++++++++--- bin/addons/base/res/res_company_view.xml | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/bin/addons/base/res/res_company.py b/bin/addons/base/res/res_company.py index acd1e85a184..70af44da6a4 100644 --- a/bin/addons/base/res/res_company.py +++ b/bin/addons/base/res/res_company.py @@ -36,7 +36,7 @@ class multi_company_default(osv.osv): _columns = { 'sequence': fields.integer('Sequence'), - 'name': fields.char('Name', size=32, required=True, help='Name it to easily find a record'), + 'name': fields.char('Name', size=256, required=True, help='Name it to easily find a record'), 'company_id': fields.many2one('res.company', 'Main Company', required=True, help='Company where the user is connected'), 'company_dest_id': fields.many2one('res.company', 'Default Company', required=True, @@ -45,6 +45,7 @@ class multi_company_default(osv.osv): help='Object affect by this rules'), 'expression': fields.char('Expression', size=32, required=True, help='Expression, must be True to match'), + 'field_id': fields.many2one('ir.model.fields', 'Field', help='Select field property'), } _defaults = { @@ -88,14 +89,18 @@ class res_company(osv.osv): } - def _company_default_get(self, cr, uid, object=False, context=None): + def _company_default_get(self, cr, uid, object=False, field=False, context=None): """ Check if the object for this company have a default value """ if not context: context = {} proxy = self.pool.get('multi_company.default') - ids = proxy.search(cr, uid, [('object_id.model', '=', object)]) + args = [ + ('object_id.model', '=', object), + ('field_id.name','=',field), + ] + ids = proxy.search(cr, uid, args) for rule in proxy.browse(cr, uid, ids, context): user = self.pool.get('res.users').browse(cr, uid, uid) if eval(rule.expression, {'context': context, 'user': user}): diff --git a/bin/addons/base/res/res_company_view.xml b/bin/addons/base/res/res_company_view.xml index cfaab5abd38..34e58b75b6c 100644 --- a/bin/addons/base/res/res_company_view.xml +++ b/bin/addons/base/res/res_company_view.xml @@ -11,6 +11,7 @@ + @@ -30,10 +31,12 @@ - + + +