[IMP] Add the boolean support in the fields.property
[FIX] Use the right default value for the ir.properties bzr revid: stephane@openerp.com-20100609112538-euqvf3lorrl3lcyo
This commit is contained in:
parent
72b861187e
commit
470677d9d4
|
@ -60,9 +60,11 @@ class ir_property(osv.osv):
|
|||
'value_binary' : fields.binary('Value'),
|
||||
'value_reference': fields.reference('Value', selection=_models_get2, size=128),
|
||||
'value_datetime' : fields.datetime('Value'),
|
||||
'value_boolean': fields.boolean('Value'),
|
||||
|
||||
'type' : fields.selection([('char', 'Char'),
|
||||
('float', 'Float'),
|
||||
('boolean', 'Boolean'),
|
||||
('integer', 'Integer'),
|
||||
('integer_big', 'Integer Big'),
|
||||
('text', 'Text'),
|
||||
|
@ -88,6 +90,7 @@ class ir_property(osv.osv):
|
|||
type2field = {
|
||||
'char': 'value_text',
|
||||
'float': 'value_float',
|
||||
'boolean' : 'value_integer',
|
||||
'integer': 'value_integer',
|
||||
'integer_big': 'value_integer',
|
||||
'text': 'value_text',
|
||||
|
@ -137,6 +140,8 @@ class ir_property(osv.osv):
|
|||
return record.value_text
|
||||
elif record.type == 'float':
|
||||
return record.value_float
|
||||
elif record.type == 'boolean':
|
||||
return bool(record.value_integer)
|
||||
elif record.type in ('integer', 'integer_big'):
|
||||
return record.value_integer
|
||||
elif record.type == 'binary':
|
||||
|
@ -146,6 +151,8 @@ class ir_property(osv.osv):
|
|||
elif record.type == 'datetime':
|
||||
return record.value_datetime
|
||||
elif record.type == 'date':
|
||||
if not record.value_datetime:
|
||||
return False
|
||||
return time.strftime('%Y-%m-%d', time.strptime(record.value_datetime, '%Y-%m-%d %H:%M:%S'))
|
||||
|
||||
return False
|
||||
|
@ -158,6 +165,12 @@ class ir_property(osv.osv):
|
|||
return self.get_by_id(cr, uid, nid, context=context)
|
||||
return False
|
||||
|
||||
def _get_domain_default(self, cr, uid, prop_name, model, context=None):
|
||||
domain = self._get_domain(cr, uid, prop_name, model, context=context)
|
||||
if domain is None:
|
||||
return None
|
||||
return ['&', ('res_id', '=', False)] + domain
|
||||
|
||||
def _get_domain(self, cr, uid, prop_name, model, context=None):
|
||||
cr.execute('select id from ir_model_fields where name=%s and model=%s', (prop_name, model))
|
||||
res = cr.fetchone()
|
||||
|
@ -169,7 +182,7 @@ class ir_property(osv.osv):
|
|||
context=context)
|
||||
|
||||
domain = ['&', ('fields_id', '=', res[0]),
|
||||
'|', ('company_id', '=', cid), ('company_id', '=', False)]
|
||||
'|', ('company_id', '=', cid), ('company_id', '=', False)]
|
||||
return domain
|
||||
|
||||
ir_property()
|
||||
|
|
|
@ -875,11 +875,11 @@ class property(function):
|
|||
|
||||
def _get_default(self, obj, cr, uid, prop_name, context=None):
|
||||
prop = obj.pool.get('ir.property')
|
||||
domain = prop._get_domain(cr, uid, prop_name, obj._name, context)
|
||||
domain = prop._get_domain_default(cr, uid, prop_name, obj._name, context)
|
||||
ids = prop.search(cr, uid, domain, order='company_id', context=context)
|
||||
if not ids:
|
||||
return False
|
||||
return prop.get_by_id(cr, uid, ids, context=context)
|
||||
return prop.get_by_id(cr, uid, ids, context=context)
|
||||
|
||||
def _get_by_id(self, obj, cr, uid, prop_name, ids, context=None):
|
||||
prop = obj.pool.get('ir.property')
|
||||
|
|
Loading…
Reference in New Issue