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'