[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
This commit is contained in:
Christophe Chauvet
2009-12-17 22:37:00 +01:00
parent abac5229c3
commit 121d3c2222
2 changed files with 12 additions and 4 deletions
+8 -3
View File
@@ -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}):
+4 -1
View File
@@ -11,6 +11,7 @@
<tree string="Multi Company">
<field name="company_id" groups="base.group_multi_company"/>
<field name="object_id"/>
<field name="field_id"/>
<field name="expression" />
<field name="sequence"/>
<field name="company_dest_id"/>
@@ -30,10 +31,12 @@
<separator string="Matching" colspan="6"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="object_id"/>
<field name="company_dest_id"/>
<field name="field_id" domain="[('model_id','=',object_id)]"/>
<separator string="Condition" colspan="6"/>
<field name="expression" colspan="4"/>
<field name="sequence"/>
<separator string="Returning" colspan="6"/>
<field name="company_dest_id"/>
</group>
</form>
</field>