diff --git a/bin/addons/base/__openerp__.py b/bin/addons/base/__openerp__.py
index 0f0200f2c9e..e595436d63f 100644
--- a/bin/addons/base/__openerp__.py
+++ b/bin/addons/base/__openerp__.py
@@ -36,7 +36,6 @@
'base_menu.xml',
'res/res_security.xml',
'res/res_config.xml',
- 'maintenance/maintenance_security.xml',
'data/res.country.state.csv'
],
'update_xml': [
diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml
index 7dc8ff57888..2e135dfc001 100644
--- a/bin/addons/base/base_update.xml
+++ b/bin/addons/base/base_update.xml
@@ -85,12 +85,15 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -288,22 +291,22 @@
-
- Choose between the simplified interface and the extended one. We suggest you use the simplified interface. It has less options and fields but is easier to understand. You will be able to switch to the extended interface later.
-
-
- Choose Your Interface
-
-
-
- 12
-
+
+ Choose between the simplified interface and the extended one. We suggest you use the simplified interface. It has less options and fields but is easier to understand. You will be able to switch to the extended interface later.
+
+
+ Choose Your Interface
+
+
+
+ 12
+
-
-
-
-
+
+
+
+
Set
diff --git a/bin/addons/base/i18n/hr.po b/bin/addons/base/i18n/hr.po
index b2585d13aa1..31f5eeef73c 100644
--- a/bin/addons/base/i18n/hr.po
+++ b/bin/addons/base/i18n/hr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-06-10 07:58+0000\n"
+"PO-Revision-Date: 2010-06-13 04:08+0000\n"
"Last-Translator: Goran Kliska \n"
"Language-Team: openerp-translators\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-11 03:41+0000\n"
+"X-Launchpad-Export-Date: 2010-06-14 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: hr\n"
diff --git a/bin/addons/base/i18n/ja.po b/bin/addons/base/i18n/ja.po
index ae156a7db4c..6b76a340d76 100644
--- a/bin/addons/base/i18n/ja.po
+++ b/bin/addons/base/i18n/ja.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-06-10 04:00+0000\n"
+"PO-Revision-Date: 2010-06-13 04:07+0000\n"
"Last-Translator: Harry (Open ERP) \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-11 03:41+0000\n"
+"X-Launchpad-Export-Date: 2010-06-14 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/sv.po b/bin/addons/base/i18n/sv.po
index 583db00b633..a5da7a2358c 100644
--- a/bin/addons/base/i18n/sv.po
+++ b/bin/addons/base/i18n/sv.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-06-10 04:02+0000\n"
+"PO-Revision-Date: 2010-06-13 04:10+0000\n"
"Last-Translator: Anders Wallenquist \n"
"Language-Team: <>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-11 03:41+0000\n"
+"X-Launchpad-Export-Date: 2010-06-14 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/uk.po b/bin/addons/base/i18n/uk.po
index b67c74943f1..dc109f5c354 100644
--- a/bin/addons/base/i18n/uk.po
+++ b/bin/addons/base/i18n/uk.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-06-10 03:58+0000\n"
+"PO-Revision-Date: 2010-06-13 04:06+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-11 03:42+0000\n"
+"X-Launchpad-Export-Date: 2010-06-14 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/zh_CN.po b/bin/addons/base/i18n/zh_CN.po
index 7a90b088d99..d5c5c1107db 100644
--- a/bin/addons/base/i18n/zh_CN.po
+++ b/bin/addons/base/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-06-10 03:59+0000\n"
+"PO-Revision-Date: 2010-06-13 04:08+0000\n"
"Last-Translator: Eleanor Chen \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-11 03:42+0000\n"
+"X-Launchpad-Export-Date: 2010-06-14 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml
index fe4740eda74..57bf70c8631 100644
--- a/bin/addons/base/ir/ir.xml
+++ b/bin/addons/base/ir/ir.xml
@@ -1244,11 +1244,6 @@
form
diff --git a/bin/addons/base/ir/ir_ui_menu.py b/bin/addons/base/ir/ir_ui_menu.py
index 08592c37508..3a83badd97e 100644
--- a/bin/addons/base/ir/ir_ui_menu.py
+++ b/bin/addons/base/ir/ir_ui_menu.py
@@ -68,15 +68,15 @@ class ir_ui_menu(osv.osv):
self._cache = {}
def search(self, cr, uid, args, offset=0, limit=None, order=None,
- context=None, count=False):
+ context=None, count=False):
super_offset = cond(uid == 1, offset, 0)
super_limit = cond(uid == 1, limit, None)
super_count = cond(uid == 1, count, False)
ids = super(ir_ui_menu, self).search(cr, uid, args, super_offset,
- super_limit, order,
- context=context, count=super_count)
+ super_limit, order, context=context, count=super_count)
+
if uid == 1:
return ids
@@ -104,9 +104,9 @@ class ir_ui_menu(osv.osv):
restrict_to_groups = [g.id for g in menu.groups_id]
if not user_groups.intersection(restrict_to_groups):
continue
- result.append(menu.id)
- self._cache[key] = True
- continue
+ #result.append(menu.id)
+ #self._cache[key] = True
+ #continue
if menu.action:
# we check if the user has access to the action of the menu
diff --git a/bin/addons/base/ir/ir_values.py b/bin/addons/base/ir/ir_values.py
index 97f6f755495..7299b45e29a 100644
--- a/bin/addons/base/ir/ir_values.py
+++ b/bin/addons/base/ir/ir_values.py
@@ -233,7 +233,7 @@ class ir_values(osv.osv):
pos+=1
try:
datas = self.pool.get(model).read(cr, uid, [id], fields, context)
- except except_orm:
+ except except_orm, e:
return False
datas= datas and datas[0] or None
if not datas:
@@ -260,9 +260,6 @@ class ir_values(osv.osv):
res2.remove(r)
if r[1]=='Menuitem' and not res2:
raise osv.except_osv('Error !','You do not have the permission to perform this operation !!!')
- # else:
- # #raise osv.except_osv('Error !','You have not permission to perform operation !!!')
- # res2.remove(r)
return res2
ir_values()
diff --git a/bin/addons/base/maintenance/maintenance_security.xml b/bin/addons/base/maintenance/maintenance_security.xml
index bb477595ddd..04b7d6dc2cf 100644
--- a/bin/addons/base/maintenance/maintenance_security.xml
+++ b/bin/addons/base/maintenance/maintenance_security.xml
@@ -2,13 +2,5 @@
-
- Maintenance Manager
-
-
-
-
-
-
diff --git a/bin/addons/base/module/module_view.xml b/bin/addons/base/module/module_view.xml
index 7fd0359a108..37a519fa2d5 100644
--- a/bin/addons/base/module/module_view.xml
+++ b/bin/addons/base/module/module_view.xml
@@ -29,13 +29,6 @@
-
- Categories of Modules
- ir.module.category
- tree
- [('parent_id','=',False)]
-
-
@@ -52,11 +45,16 @@
-
-
-
+
+
+
+
+
+
+
+
+
-
diff --git a/bin/addons/base/res/res_security.xml b/bin/addons/base/res/res_security.xml
index 9d935ca3248..99584de3103 100644
--- a/bin/addons/base/res/res_security.xml
+++ b/bin/addons/base/res/res_security.xml
@@ -6,10 +6,6 @@
Partner Manager
-
-
diff --git a/bin/addons/base/security/base_security.xml b/bin/addons/base/security/base_security.xml
index ba5ea19a6c8..f2cd91d01c6 100644
--- a/bin/addons/base/security/base_security.xml
+++ b/bin/addons/base/security/base_security.xml
@@ -6,11 +6,11 @@
Users Groups
-->
- Administrator / Configuration
+ Administration / Configuration
- Administrator / Access Rights
+ Administration / Access Rights
@@ -18,7 +18,7 @@
- Multi Companies
+ Useability / Multi Companies
@@ -51,7 +51,6 @@
diff --git a/bin/addons/base/security/ir.model.access.csv b/bin/addons/base/security/ir.model.access.csv
index 48d015c1744..8f98ef81380 100644
--- a/bin/addons/base/security/ir.model.access.csv
+++ b/bin/addons/base/security/ir.model.access.csv
@@ -4,8 +4,8 @@
"access_ir_cron_group_cron","ir_cron group_cron","model_ir_cron","group_system",1,1,1,1
"access_ir_cron_user","ir_cron user","model_ir_cron","group_user",1,0,0,0
"access_ir_default_group_system","ir_default group_system","model_ir_default",,1,1,1,1
-"access_ir_exports_group_system","ir_exports group_system","model_ir_exports",,1,1,1,1
-"access_ir_exports_line_group_system","ir_exports_line group_system","model_ir_exports_line",,1,1,1,1
+"access_ir_exports_group_system","ir_exports group_system","model_ir_exports",base.group_user,1,1,1,1
+"access_ir_exports_line_group_system","ir_exports_line group_system","model_ir_exports_line",base.group_user,1,1,1,1
"access_ir_model_group_erp_manager","ir_model group_erp_manager","model_ir_model","group_erp_manager",1,1,1,1
"access_ir_model_access_group_erp_manager","ir_model_access_group_erp_manager","model_ir_model_access","group_erp_manager",1,1,1,1
"access_ir_model_grid_group_erp_manager","ir_model_access_grid_group_erp_manager","model_ir_model_grid","group_erp_manager",1,1,1,1
@@ -25,7 +25,7 @@
"access_ir_report_custom_fields_group_system","ir_report_custom_fields group_system","model_ir_report_custom_fields",,1,0,0,0
"access_ir_rule_group_user","ir_rule group_user","model_ir_rule",,1,0,0,0
"access_ir_rule_group_erp_manager","ir_rule group_erp_manager","model_ir_rule","group_erp_manager",1,1,1,1
-"access_ir_sequence_group_user","ir_sequence group_user","model_ir_sequence",,1,1,1,1
+"access_ir_sequence_group_user","ir_sequence group_user","model_ir_sequence",,1,0,0,0
"access_ir_sequence_type_group_user","ir_sequence_type group_user","model_ir_sequence_type",,1,0,0,0
"access_ir_translation_all","ir_translation all","model_ir_translation",,1,0,0,0
"access_ir_translation_group_system","ir_translation group_system","model_ir_translation","group_system",1,1,1,1
@@ -43,8 +43,8 @@
"access_wizard_module_lang_export_group_system","wizard_module_lang_export group_system","model_wizard_module_lang_export","group_system",1,1,1,1
"access_res_company_group_erp_manager","res_company group_erp_manager","model_res_company","group_erp_manager",1,1,1,1
"access_res_company_group_user","res_company group_user","model_res_company",,1,0,0,0
-"access_res_config_all","res_config all","model_res_config",,1,0,0,0
-"access_res_config_users_all","res_config_users all","model_res_config_users",,1,0,0,0
+"access_res_config_all","res_config all","model_res_config",group_system,1,1,1,1
+"access_res_config_users_all","res_config_users all","model_res_config_users",group_system,1,1,1,1
"access_res_country_group_all","res_country group_user_all","model_res_country",,1,0,0,0
"access_res_country_state_group_all","res_country_state group_user_all","model_res_country_state",,1,0,0,0
"access_res_country_group_user","res_country group_user","model_res_country","group_partner_manager",1,1,1,1
@@ -71,21 +71,23 @@
"access_res_partner_canal_group_partner_manager","res_partner_canal group_partner_manager","model_res_partner_canal","group_partner_manager",1,1,1,1
"access_res_partner_category_group_user","res_partner_category group_user","model_res_partner_category","group_user",1,0,0,0
"access_res_partner_category_group_partner_manager","res_partner_category group_partner_manager","model_res_partner_category","group_partner_manager",1,1,1,1
-"access_res_partner_event_group_user","res_partner_event group_user","model_res_partner_event","group_user",1,1,1,1
+"access_res_partner_event_group_user","res_partner_event group_user","model_res_partner_event","group_user",1,0,0,0
"access_res_partner_event_group_partner_manager","res_partner_event group_partner_manager","model_res_partner_event","group_partner_manager",1,1,1,1
"access_res_partner_som_group_user","res_partner_som group_user","model_res_partner_som","group_partner_manager",1,1,1,1
"access_res_partner_som_group_partner_manager","res_partner_som group_partner_manager","model_res_partner_som","group_user",1,0,0,0
"access_res_partner_title_group_user","res_partner_title group_user","model_res_partner_title","group_partner_manager",1,1,1,1
-"access_res_partner_title_group_partner_manager","res_partner_title group_partner_manager","model_res_partner_title","group_user",1,0,0,0
-"access_res_request_group_user","res_request group_user","model_res_request",,1,1,1,1
-"access_res_request_history_group_user","res_request_history group_user","model_res_request_history",,1,1,1,1
+"access_res_partner_title_group_partner_manager","res_partner_title group_partner_manager","model_res_partner_title",,1,0,0,0
+"access_res_request_group_user","res_request group_user","model_res_request",base.group_user,1,1,1,1
+"access_res_request_history_group_user","res_request_history group_user","model_res_request_history",base.group_user,1,1,1,1
+"access_res_request_group_user_all","res_request group_user all","model_res_request",,1,0,0,0
+"access_res_request_history_group_user_all","res_request_history group_user all","model_res_request_history",,1,0,0,0
"access_res_request_link_group_system","res_request_link group_system","model_res_request_link","group_system",1,1,1,1
"access_res_request_link_group_user","res_request_link group_user","model_res_request_link",,1,0,0,0
"access_res_users_all","res_users all","model_res_users",,1,0,0,0
"access_res_users_group_erp_manager","res_users group_erp_manager","model_res_users","group_erp_manager",1,1,1,1
"access_ir_actions_all","ir_actions_all","model_ir_actions_actions",,1,0,0,0
"access_ir_actions_group_system","ir_actions_group_system","model_ir_actions_actions","group_system",1,1,1,1
-"access_ir_actions_act_window_all","ir_actions_act_window_all","model_ir_actions_act_window",,1,0,1,0
+"access_ir_actions_act_window_all","ir_actions_act_window_all","model_ir_actions_act_window",,1,0,0,0
"access_ir_actions_act_window_system","ir_actions_act_window_system","model_ir_actions_act_window","group_system",1,1,1,1
"access_ir_actions_act_window_close_all","ir_actions_act_window_close_all","model_ir_actions_act_window_close",,1,0,0,0
"access_ir_actions_act_window_close_group_system","ir_actions_act_window_close_group_system","model_ir_actions_act_window_close","group_system",1,1,1,1
@@ -119,13 +121,16 @@
"access_res_bank_group_system","res_bank_group_system","model_res_bank","group_system",1,1,1,1
"access_res_payterm_group_system","res_payterm_group_system","model_res_payterm","group_system",1,1,1,1
"access_res_roles_group_erpmanager","res_roles_group_erp_manager","model_res_roles","group_erp_manager",1,1,1,1
-"access_res_config_view_group_erpmanager","res_config_view_erp_manager","model_res_config_view","group_erp_manager",1,1,1,1
+"access_res_config_view_group_erpmanager","res_config_view_erp_manager","model_res_config_view","group_system",1,1,1,1
"access_res_roles_all","res_roles_all","model_res_roles",,1,0,0,0
-"access_res_config_view_all","res_config_view_all","model_res_config_view",,1,0,0,0
+"access_res_config_view_all","res_config_view_all","model_res_config_view",group_system,1,0,0,0
"access_res_bank_group_partner_manager","res_bank_group_partner_manager","model_res_bank","group_partner_manager",1,1,1,1
"access_res_bank_user","res_bank user","model_res_bank","group_user",1,0,0,0
-"access_maintenance_group_user","maintenance_contract group_user","model_maintenance_contract","group_maintenance_manager",1,1,1,1
-"access_maintenance_contract_module","maintenance.contract.module","model_maintenance_contract_module","group_maintenance_manager",1,1,1,1
-"access_maintenance_contract_wizard","maintenance.contract.wizard","model_maintenance_contract_wizard","group_maintenance_manager",1,1,1,1
+"access_maintenance_group_user","maintenance_contract group_user","model_maintenance_contract","group_system",1,1,1,1
+"access_maintenance_contract_module","maintenance.contract.module","model_maintenance_contract_module","group_system",1,1,1,1
+"access_maintenance_contract_wizard","maintenance.contract.wizard","model_maintenance_contract_wizard","group_system",1,1,1,1
"access_multi_company_default user","multi_company_default all","model_multi_company_default",,1,0,0,0
"access_multi_company_default manager","multi_company_default Manager","model_multi_company_default","group_erp_manager",1,1,1,1
+"access_ir_filter all","ir_filters all","model_ir_filters",,1,0,0,0
+"access_ir_filter employee","ir_filters employee","model_ir_filters","group_user",1,1,1,1
+"access_res_log all","res_log all","model_res_log",,1,0,1,1
diff --git a/bin/osv/fields.py b/bin/osv/fields.py
index bce5ea8829f..ffb0a87a7db 100644
--- a/bin/osv/fields.py
+++ b/bin/osv/fields.py
@@ -31,6 +31,7 @@
# required
# size
#
+from collections import defaultdict
import string
import netsvc
import sys
@@ -430,10 +431,10 @@ class one2many(_column):
context.update(self._context)
if not values:
values = {}
- res = {}
- for id in ids:
- res[id] = []
- ids2 = obj.pool.get(self._obj).search(cr, user, [(self._fields_id, 'in', ids)], limit=self._limit, context=context)
+
+ res = defaultdict(list)
+
+ ids2 = obj.pool.get(self._obj).search(cr, user, self._domain + [(self._fields_id, 'in', ids)], limit=self._limit, context=context)
for r in obj.pool.get(self._obj)._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'):
res[r[self._fields_id]].append(r['id'])
return res
@@ -779,7 +780,7 @@ class related(function):
relation = obj._name
res = {}.fromkeys(ids, False)
- objlst = obj.browse(cr, uid, ids, context=context)
+ objlst = obj.browse(cr, 1, ids, context=context)
for data in objlst:
if not data:
continue
@@ -806,7 +807,7 @@ class related(function):
if self._type=='many2one':
ids = filter(None, res.values())
if ids:
- ng = dict(obj.pool.get(self._obj).name_get(cr, uid, ids, context=context))
+ ng = dict(obj.pool.get(self._obj).name_get(cr, 1, ids, context=context))
for r in res:
if res[r]:
res[r] = (res[r], ng[res[r]])
@@ -884,7 +885,7 @@ class property(function):
default_value = prop.get_by_id(cr, uid, ids, context=context)
if isinstance(default_value, browse_record):
return default_value.id
- return default_value
+ return default_value or False
def _get_by_id(self, obj, cr, uid, prop_name, ids, context=None):
prop = obj.pool.get('ir.property')
diff --git a/bin/osv/orm.py b/bin/osv/orm.py
index 4e19ecf4574..7aa1a4cbdb6 100644
--- a/bin/osv/orm.py
+++ b/bin/osv/orm.py
@@ -1224,7 +1224,6 @@ class orm_template(object):
attrs = {'views': views}
if node.get('widget') and node.get('widget') == 'selection':
if not check_group(node):
- # the field is just invisible. default value must be in the selection
name = node.get('name')
default = self.default_get(cr, user, [name], context=context).get(name)
if default:
@@ -1244,7 +1243,7 @@ class orm_template(object):
search_context = dict(context)
if column._context and not isinstance(column._context, basestring):
search_context.update(column._context)
- attrs['selection'] = relation._name_search(cr, user, '', dom, context=search_context, limit=None, name_get_uid=1)
+ attrs['selection'] = relation._name_search(cr, 1, '', dom, context=search_context, limit=None, name_get_uid=1)
if (node.get('required') and not int(node.get('required'))) or not column.required:
attrs['selection'].append((False,''))
fields[node.get('name')] = attrs
@@ -2694,6 +2693,32 @@ class orm(orm_template):
self._inherit_fields = res
self._inherits_reload_src()
+ def __getattr__(self, name):
+ """
+ Proxies attribute accesses to the `inherits` parent so we can call methods defined on the inherited parent
+ (though inherits doesn't use Python inheritance).
+ Handles translating between local ids and remote ids.
+ Known issue: doesn't work correctly when using python's own super(), don't involve inherit-based inheritance
+ when you have inherits.
+ """
+ for model, field in self._inherits.iteritems():
+ proxy = self.pool.get(model)
+ if hasattr(proxy, name):
+ attribute = getattr(proxy, name)
+ if not hasattr(attribute, '__call__'):
+ return attribute
+ break
+ else:
+ return super(orm, self).__getattr__(name)
+
+ def _proxy(cr, uid, ids, *args, **kwargs):
+ objects = self.browse(cr, uid, ids, kwargs.get('context', None))
+ lst = [obj[field].id for obj in objects if obj[field]]
+ return getattr(proxy, name)(cr, uid, lst, *args, **kwargs)
+
+ return _proxy
+
+
def fields_get(self, cr, user, fields=None, context=None):
"""
Get the description of list of fields
diff --git a/bin/osv/osv.py b/bin/osv/osv.py
index 6f85cd6d2ca..0086e351d05 100644
--- a/bin/osv/osv.py
+++ b/bin/osv/osv.py
@@ -132,7 +132,7 @@ class osv_pool(netsvc.Service):
raise except_osv('Access Denied', 'Private methods (such as %s) cannot be called remotely.' % (method,))
res = pool.execute_cr(cr, uid, obj, method, *args, **kw)
if res is None:
- self.logger.warning('RPC methods cannot return `None` at the moment!')
+ self.logger.warning('The method %s of the object %s can not return `None` !', method, obj)
cr.commit()
except Exception:
cr.rollback()