[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_binary' : fields.binary('Value'),
|
||||||
'value_reference': fields.reference('Value', selection=_models_get2, size=128),
|
'value_reference': fields.reference('Value', selection=_models_get2, size=128),
|
||||||
'value_datetime' : fields.datetime('Value'),
|
'value_datetime' : fields.datetime('Value'),
|
||||||
|
'value_boolean': fields.boolean('Value'),
|
||||||
|
|
||||||
'type' : fields.selection([('char', 'Char'),
|
'type' : fields.selection([('char', 'Char'),
|
||||||
('float', 'Float'),
|
('float', 'Float'),
|
||||||
|
('boolean', 'Boolean'),
|
||||||
('integer', 'Integer'),
|
('integer', 'Integer'),
|
||||||
('integer_big', 'Integer Big'),
|
('integer_big', 'Integer Big'),
|
||||||
('text', 'Text'),
|
('text', 'Text'),
|
||||||
|
@ -88,6 +90,7 @@ class ir_property(osv.osv):
|
||||||
type2field = {
|
type2field = {
|
||||||
'char': 'value_text',
|
'char': 'value_text',
|
||||||
'float': 'value_float',
|
'float': 'value_float',
|
||||||
|
'boolean' : 'value_integer',
|
||||||
'integer': 'value_integer',
|
'integer': 'value_integer',
|
||||||
'integer_big': 'value_integer',
|
'integer_big': 'value_integer',
|
||||||
'text': 'value_text',
|
'text': 'value_text',
|
||||||
|
@ -137,6 +140,8 @@ class ir_property(osv.osv):
|
||||||
return record.value_text
|
return record.value_text
|
||||||
elif record.type == 'float':
|
elif record.type == 'float':
|
||||||
return record.value_float
|
return record.value_float
|
||||||
|
elif record.type == 'boolean':
|
||||||
|
return bool(record.value_integer)
|
||||||
elif record.type in ('integer', 'integer_big'):
|
elif record.type in ('integer', 'integer_big'):
|
||||||
return record.value_integer
|
return record.value_integer
|
||||||
elif record.type == 'binary':
|
elif record.type == 'binary':
|
||||||
|
@ -146,6 +151,8 @@ class ir_property(osv.osv):
|
||||||
elif record.type == 'datetime':
|
elif record.type == 'datetime':
|
||||||
return record.value_datetime
|
return record.value_datetime
|
||||||
elif record.type == 'date':
|
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 time.strftime('%Y-%m-%d', time.strptime(record.value_datetime, '%Y-%m-%d %H:%M:%S'))
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
@ -158,6 +165,12 @@ class ir_property(osv.osv):
|
||||||
return self.get_by_id(cr, uid, nid, context=context)
|
return self.get_by_id(cr, uid, nid, context=context)
|
||||||
return False
|
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):
|
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))
|
cr.execute('select id from ir_model_fields where name=%s and model=%s', (prop_name, model))
|
||||||
res = cr.fetchone()
|
res = cr.fetchone()
|
||||||
|
@ -169,7 +182,7 @@ class ir_property(osv.osv):
|
||||||
context=context)
|
context=context)
|
||||||
|
|
||||||
domain = ['&', ('fields_id', '=', res[0]),
|
domain = ['&', ('fields_id', '=', res[0]),
|
||||||
'|', ('company_id', '=', cid), ('company_id', '=', False)]
|
'|', ('company_id', '=', cid), ('company_id', '=', False)]
|
||||||
return domain
|
return domain
|
||||||
|
|
||||||
ir_property()
|
ir_property()
|
||||||
|
|
|
@ -875,11 +875,11 @@ class property(function):
|
||||||
|
|
||||||
def _get_default(self, obj, cr, uid, prop_name, context=None):
|
def _get_default(self, obj, cr, uid, prop_name, context=None):
|
||||||
prop = obj.pool.get('ir.property')
|
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)
|
ids = prop.search(cr, uid, domain, order='company_id', context=context)
|
||||||
if not ids:
|
if not ids:
|
||||||
return False
|
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):
|
def _get_by_id(self, obj, cr, uid, prop_name, ids, context=None):
|
||||||
prop = obj.pool.get('ir.property')
|
prop = obj.pool.get('ir.property')
|
||||||
|
|
Loading…
Reference in New Issue