diff --git a/bin/addons/base/__init__.py b/bin/addons/base/__init__.py index 8d5f263d4a0..9620bc185de 100644 --- a/bin/addons/base/__init__.py +++ b/bin/addons/base/__init__.py @@ -26,7 +26,11 @@ # ############################################################################## +print '1' import ir +print '2' import module +print '3' import res +print '4' diff --git a/bin/addons/base/base.sql b/bin/addons/base/base.sql index 76e6d29f425..ee6ec6740bd 100644 --- a/bin/addons/base/base.sql +++ b/bin/addons/base/base.sql @@ -56,6 +56,7 @@ CREATE TABLE ir_model_fields ( model_id int references ir_model on delete cascade, name varchar(64) DEFAULT ''::varchar NOT NULL, relation varchar(64), + select_level varchar(4), field_description varchar(256), ttype varchar(64), group_name varchar(64), diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index 0bcebedb146..b4202c4b163 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -721,7 +721,7 @@ - + @@ -766,7 +766,7 @@ - + diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index a8ce229d095..9297d566f02 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -52,6 +52,8 @@ class ir_model(osv.osv): } ir_model() +print 'MODEL' + class ir_model_fields(osv.osv): _name = 'ir.model.fields' _columns = { @@ -66,7 +68,7 @@ class ir_model_fields(osv.osv): 'selection': fields.char('Field Selection',size=128), 'required': fields.boolean('Required'), 'readonly': fields.boolean('Readonly'), - 'select': fields.selection([('0','Not Searchable'),('1','Always Searchable'),('2','Advanced Search')],'Searchable', required=True), + 'select_level': fields.selection([('0','Not Searchable'),('1','Always Searchable'),('2','Advanced Search')],'Searchable', required=True), 'translate': fields.boolean('Translate'), 'size': fields.integer('Size'), 'state': fields.selection([('manual','Custom Field'),('base','Base Field')],'Manualy Created'), @@ -83,15 +85,15 @@ class ir_model_fields(osv.osv): 'selection': lambda *a: "[]", 'domain': lambda *a: "[]", 'name': lambda *a: 'x_', - 'state': lambda self,cr,uid,ctx={}: ctx.get('manual',False) and 'manual' or 'base', + 'state': lambda self,cr,uid,ctx={}: (ctx and ctx.get('manual',False)) and 'manual' or 'base', 'on_delete': lambda *a: 'no', - 'select': lambda *a: '0', + 'select_level': lambda *a: '0', 'size': lambda *a: 64, - 'field_description': lambda *a: '', + 'field_description': lambda *a: 'No', } _order = "id" def unlink(self, cr, user, ids, context=None): - for field in self.browse(cr, uid, ids, context): + for field in self.browse(cr, user, ids, context): if field.state <> 'manual': raise except_orm('Error', "You can not remove the field '%s' !" %(field.name,)) # @@ -203,6 +205,7 @@ class ir_model_access(osv.osv): return res ir_model_access() +print 'MODEL ACCESS' class ir_model_data(osv.osv): _name = 'ir.model.data' _columns = { diff --git a/bin/osv/orm.py b/bin/osv/orm.py index 9e3500838dd..4a9fcb23673 100644 --- a/bin/osv/orm.py +++ b/bin/osv/orm.py @@ -296,14 +296,13 @@ class orm(object): # reference model in order to have a description of its fonctionnality in custom_report cr.execute("INSERT INTO ir_model (model, name, info) VALUES (%s, %s, %s)", (self._name, self._description, self.__doc__)) cr.commit() - for k in self._columns: f = self._columns[k] cr.execute("select id, relate from ir_model_fields where model=%s and name=%s", (self._name,k)) if not cr.rowcount: cr.execute("select id from ir_model where model='%s'" % self._name) model_id = cr.fetchone()[0] - cr.execute("INSERT INTO ir_model_fields (model_id, model, name, field_description, ttype, relate,relation,group_name,view_load,state) VALUES (%d,%s,%s,%s,%s,%s,%s,%s,%s,%s)", (model_id, self._name, k, f.string.replace("'", " "), f._type, (f.relate and 'True') or 'False', f._obj or 'NULL', f.group_name or '', (f.view_load and 'True') or 'False', 'base')) + cr.execute("INSERT INTO ir_model_fields (model_id, model, name, field_description, ttype, relate,relation,group_name,view_load,state,select_level) VALUES (%d,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", (model_id, self._name, k, f.string.replace("'", " "), f._type, (f.relate and 'True') or 'False', f._obj or 'NULL', f.group_name or '', (f.view_load and 'True') or 'False', 'base', str(f.select or 0))) else: id, relate = cr.fetchone() if relate != f.relate: @@ -552,13 +551,12 @@ class orm(object): 'size': field['size'], 'ondelete': field['on_delete'], 'translate': (field['translate']), - 'select': int(field['select']) + 'select': int(field['select_level']) } if field['relation']: attrs['relation'] = field['relation'] self._columns[field['name']] = getattr(fields, field['ttype'])(**attrs) - # if self.__class__.__name__ != 'fake_class': self._inherits_reload() if not self._sequence: self._sequence = self._table+'_id_seq'