Improvements for creating objects
bzr revid: fp@tinyerp.com-240c41f315d5c5614d3259529b922e05be57908b
This commit is contained in:
parent
776ab5c235
commit
f7a43ea577
|
@ -728,6 +728,8 @@
|
||||||
<field name="state" readonly="1"/>
|
<field name="state" readonly="1"/>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
|
<separator string="Status" colspan="4"/>
|
||||||
|
<field name="state"/>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -46,13 +46,37 @@ class ir_model(osv.osv):
|
||||||
'model': fields.char('Object name', size=64, required=True),
|
'model': fields.char('Object name', size=64, required=True),
|
||||||
'info': fields.text('Information'),
|
'info': fields.text('Information'),
|
||||||
'field_id': fields.one2many('ir.model.fields', 'model_id', 'Fields', required=True),
|
'field_id': fields.one2many('ir.model.fields', 'model_id', 'Fields', required=True),
|
||||||
|
'state': fields.selection([('manual','Custom Field'),('base','Base Field')],'Manualy Created'),
|
||||||
}
|
}
|
||||||
_defaults = {
|
_defaults = {
|
||||||
'name': lambda *a: 'No Name',
|
'name': lambda *a: 'No Name',
|
||||||
|
'model': lambda *a: 'x_',
|
||||||
|
'state': lambda self,cr,uid,ctx={}: (ctx and ctx.get('manual',False)) and 'manual' or 'base',
|
||||||
}
|
}
|
||||||
ir_model()
|
def unlink(self, cr, user, ids, context=None):
|
||||||
|
for model in self.browse(cr, user, ids, context):
|
||||||
|
if model.state <> 'manual':
|
||||||
|
raise except_orm('Error', "You can not remove the model '%s' !" %(field.name,))
|
||||||
|
return super(ir_model, self).unlink(cr, user, ids, context)
|
||||||
|
|
||||||
print 'MODEL'
|
def create(self, cr, user, vals, context=None):
|
||||||
|
if context and context.get('manual',False):
|
||||||
|
vals['state']='manual'
|
||||||
|
res = super(ir_model,self).create(cr, user, vals, context)
|
||||||
|
if vals.get('state','base')=='manual':
|
||||||
|
if not vals['name'].startswith('x_'):
|
||||||
|
raise except_orm('Error', "Custom models must have an object name that starts with 'x_' !")
|
||||||
|
# self.pool.get(vals['model']).__init__(self.pool, cr)
|
||||||
|
# self.pool.get(vals['model'])._auto_init(cr)
|
||||||
|
return res
|
||||||
|
|
||||||
|
# def instanciate(self, cr, user, models):
|
||||||
|
# class inst_obj(osv.osv):
|
||||||
|
# def __init__():
|
||||||
|
# pass
|
||||||
|
# for model in models:
|
||||||
|
# self.pool.add(model, inst_moed)
|
||||||
|
ir_model()
|
||||||
|
|
||||||
class ir_model_fields(osv.osv):
|
class ir_model_fields(osv.osv):
|
||||||
_name = 'ir.model.fields'
|
_name = 'ir.model.fields'
|
||||||
|
|
Loading…
Reference in New Issue