From 9d51409bd80a713813fbdacb5855346d907a596c Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Wed, 9 Jun 2010 16:07:29 +0200 Subject: [PATCH 01/23] [IMP] Change the message for the developer if the rpc method return None bzr revid: stephane@openerp.com-20100609140729-it5qqr3qmyc5zc3p --- bin/osv/osv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/osv/osv.py b/bin/osv/osv.py index 6f85cd6d2ca..5f583b894c9 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` at the moment!', method, obj ) cr.commit() except Exception: cr.rollback() From 03bdb0602697a733154ecfe2394c893ad30b7858 Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Wed, 9 Jun 2010 16:08:02 +0200 Subject: [PATCH 02/23] [FIX] Allow to call the methods defined in the _inherits objects bzr revid: stephane@openerp.com-20100609140802-ln5p45v1437obdkc --- bin/osv/orm.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/bin/osv/orm.py b/bin/osv/orm.py index b166881798b..f84aff175ea 100644 --- a/bin/osv/orm.py +++ b/bin/osv/orm.py @@ -2694,6 +2694,22 @@ class orm(orm_template): self._inherit_fields = res self._inherits_reload_src() + def __getattr__(self, name): + for model, field in self._inherits.iteritems(): + if hasattr(self.pool.get(model), name): + 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]] + proxy = self.pool.get(model) + 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 From 3aca2aea6be0a69e44f2c91121c40eb244b7b047 Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Wed, 9 Jun 2010 17:43:30 +0200 Subject: [PATCH 03/23] [FIX] Add the docstring for the __getattr__ method in the ORM [IMP] If the object has a non-callable attribute, just return it bzr revid: stephane@openerp.com-20100609154330-ulwlthtqfcnexkdt --- bin/osv/orm.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/bin/osv/orm.py b/bin/osv/orm.py index f84aff175ea..2e57e5bec31 100644 --- a/bin/osv/orm.py +++ b/bin/osv/orm.py @@ -2695,8 +2695,19 @@ class orm(orm_template): 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(): - if hasattr(self.pool.get(model), name): + 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) @@ -2704,7 +2715,6 @@ class orm(orm_template): 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]] - proxy = self.pool.get(model) return getattr(proxy, name)(cr, uid, lst, *args, **kwargs) return _proxy From ccf93d546adb50630cb96848b912d282dffca6ea Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 11 Jun 2010 13:29:03 +0200 Subject: [PATCH 04/23] imp bzr revid: fp@tinyerp.com-20100611112903-5c3mobzdazndpdbc --- bin/addons/base/base_update.xml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml index 7dc8ff57888..71c4fdc4be0 100644 --- a/bin/addons/base/base_update.xml +++ b/bin/addons/base/base_update.xml @@ -288,22 +288,22 @@
Choose Your Interface
- - 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 From 09a8b58d82a0653f7a437701127f5f531a9840bb Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 11 Jun 2010 14:55:43 +0200 Subject: [PATCH 05/23] [FIX] menu access rights + access rights improvements bzr revid: fp@tinyerp.com-20100611125543-f1c911v16w2jhd83 --- bin/addons/base/ir/ir_ui_menu.py | 12 ++++++------ bin/addons/base/ir/ir_values.py | 7 ++++++- bin/addons/base/security/ir.model.access.csv | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) 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..918861f54df 100644 --- a/bin/addons/base/ir/ir_values.py +++ b/bin/addons/base/ir/ir_values.py @@ -233,11 +233,13 @@ 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: + print 'false 1',model,fields,e return False datas= datas and datas[0] or None if not datas: #ir_del(cr, uid, x[0]) + print 'false 2' return False else: datas = pickle.loads(str(x[2].encode('utf-8'))) @@ -246,8 +248,10 @@ class ir_values(osv.osv): return (x[0],x[1],datas,meta2) return (x[0],x[1],datas) keys = [] + print 'avant', result res = filter(bool, map(lambda x: _result_get(x, keys), list(result))) res2 = res[:] + print 'avant', res2 for r in res: if type(r[2])==type({}) and 'type' in r[2]: if r[2]['type'] in ('ir.actions.report.xml','ir.actions.act_window','ir.actions.wizard'): @@ -263,6 +267,7 @@ class ir_values(osv.osv): # else: # #raise osv.except_osv('Error !','You have not permission to perform operation !!!') # res2.remove(r) + print 'apres', res2 return res2 ir_values() diff --git a/bin/addons/base/security/ir.model.access.csv b/bin/addons/base/security/ir.model.access.csv index 48d015c1744..4b9f72fafd3 100644 --- a/bin/addons/base/security/ir.model.access.csv +++ b/bin/addons/base/security/ir.model.access.csv @@ -76,7 +76,7 @@ "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_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",,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_request_link_group_system","res_request_link group_system","model_res_request_link","group_system",1,1,1,1 From de9be1b61c9376698d420ff8cdbd838276a3b908 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 11 Jun 2010 15:08:37 +0200 Subject: [PATCH 06/23] [IMP] better views and security rules bzr revid: fp@tinyerp.com-20100611130837-mvx79zw47ge0ykfd --- bin/addons/base/module/module_view.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/bin/addons/base/module/module_view.xml b/bin/addons/base/module/module_view.xml index 7fd0359a108..a7c2825624e 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,10 +45,17 @@ - - - + + + + + + + + + + From 07a3abe4be281016798d62c393551434ef6eca35 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 11 Jun 2010 15:13:16 +0200 Subject: [PATCH 07/23] fix bzr revid: fp@tinyerp.com-20100611131316-dhwya1idw86vuyi7 --- bin/addons/base/module/module_view.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/addons/base/module/module_view.xml b/bin/addons/base/module/module_view.xml index a7c2825624e..37a519fa2d5 100644 --- a/bin/addons/base/module/module_view.xml +++ b/bin/addons/base/module/module_view.xml @@ -56,8 +56,6 @@ - - From d716dd6bb6ed3586cc83747e569c654cfc6d0f08 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 11 Jun 2010 15:42:21 +0200 Subject: [PATCH 08/23] [FIX] remove leftover print-debugging bzr revid: xmo@openerp.com-20100611134221-e8sgojx7qi3ue1yj --- bin/addons/base/ir/ir_values.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/bin/addons/base/ir/ir_values.py b/bin/addons/base/ir/ir_values.py index 918861f54df..d4e42a991d4 100644 --- a/bin/addons/base/ir/ir_values.py +++ b/bin/addons/base/ir/ir_values.py @@ -248,10 +248,8 @@ class ir_values(osv.osv): return (x[0],x[1],datas,meta2) return (x[0],x[1],datas) keys = [] - print 'avant', result res = filter(bool, map(lambda x: _result_get(x, keys), list(result))) res2 = res[:] - print 'avant', res2 for r in res: if type(r[2])==type({}) and 'type' in r[2]: if r[2]['type'] in ('ir.actions.report.xml','ir.actions.act_window','ir.actions.wizard'): @@ -264,10 +262,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) - print 'apres', res2 return res2 ir_values() From 28725f760e1b5b70144a357dd598513d18037e8e Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 11 Jun 2010 15:22:35 +0200 Subject: [PATCH 09/23] [IMP] new access rights bzr revid: fp@tinyerp.com-20100611132235-jo6irp4h1uw0i2lo --- bin/addons/base/security/ir.model.access.csv | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bin/addons/base/security/ir.model.access.csv b/bin/addons/base/security/ir.model.access.csv index 4b9f72fafd3..3819c74ffcf 100644 --- a/bin/addons/base/security/ir.model.access.csv +++ b/bin/addons/base/security/ir.model.access.csv @@ -129,3 +129,6 @@ "access_maintenance_contract_wizard","maintenance.contract.wizard","model_maintenance_contract_wizard","group_maintenance_manager",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,1,1,1 From 8994901475defa1a651a0b0db80b76f994e35bf0 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 11 Jun 2010 16:02:05 +0200 Subject: [PATCH 10/23] fix bzr revid: fp@tinyerp.com-20100611140205-qu4af0u1oquh2xsc --- bin/addons/base/ir/ir_values.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/addons/base/ir/ir_values.py b/bin/addons/base/ir/ir_values.py index d4e42a991d4..7299b45e29a 100644 --- a/bin/addons/base/ir/ir_values.py +++ b/bin/addons/base/ir/ir_values.py @@ -234,12 +234,10 @@ class ir_values(osv.osv): try: datas = self.pool.get(model).read(cr, uid, [id], fields, context) except except_orm, e: - print 'false 1',model,fields,e return False datas= datas and datas[0] or None if not datas: #ir_del(cr, uid, x[0]) - print 'false 2' return False else: datas = pickle.loads(str(x[2].encode('utf-8'))) From c0494be7e91190886189406be7c49c0f4dbda059 Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Fri, 11 Jun 2010 17:52:14 +0200 Subject: [PATCH 11/23] [IMP] Add the domain support for the one2many fields bzr revid: stephane@openerp.com-20100611155214-jijawj3js5o4ebtu --- bin/osv/fields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/osv/fields.py b/bin/osv/fields.py index bce5ea8829f..9d97304aff1 100644 --- a/bin/osv/fields.py +++ b/bin/osv/fields.py @@ -433,7 +433,7 @@ class one2many(_column): 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) + 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 From a315da754b0a2f8840891f2dca8991343d849928 Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Fri, 11 Jun 2010 17:53:17 +0200 Subject: [PATCH 12/23] [REF] Use the collections.defaultdict object instead of an ugly code bzr revid: stephane@openerp.com-20100611155317-jfer5wyiuso533se --- bin/osv/fields.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bin/osv/fields.py b/bin/osv/fields.py index 9d97304aff1..f7b0b29abd3 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,9 +431,9 @@ class one2many(_column): context.update(self._context) if not values: values = {} - res = {} - for id in ids: - res[id] = [] + + 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']) From 3e889e08464fe245c515234753655911874c64f0 Mon Sep 17 00:00:00 2001 From: Launchpad Code Hosting Date: Sat, 12 Jun 2010 04:44:42 +0100 Subject: [PATCH 13/23] Launchpad automatic translations update. bzr revid: codehost@crowberry-20100612034442-6bs1rvjwyuv3tr74 --- bin/addons/base/i18n/hr.po | 4 ++-- bin/addons/base/i18n/ja.po | 4 ++-- bin/addons/base/i18n/sv.po | 4 ++-- bin/addons/base/i18n/uk.po | 4 ++-- bin/addons/base/i18n/zh_CN.po | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bin/addons/base/i18n/hr.po b/bin/addons/base/i18n/hr.po index b2585d13aa1..fc0048d1166 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-11 04:26+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-12 03:44+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..3642f5c554f 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-11 04:29+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-12 03:44+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..50e88e7b2a6 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-11 04:34+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-12 03:44+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..ab9de227359 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-11 04:22+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-12 03:44+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..506ce4b7a75 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-11 04:23+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-12 03:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: base From c6be52886d9308d72282b32e4ff395f12657d1b3 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 12 Jun 2010 18:21:33 +0200 Subject: [PATCH 14/23] access rights bzr revid: fp@tinyerp.com-20100612162133-n94drwaqsuwq16eb --- bin/addons/base/__openerp__.py | 1 - bin/addons/base/ir/ir_values.py | 2 ++ .../base/maintenance/maintenance_security.xml | 8 ------- bin/addons/base/res/res_security.xml | 4 ---- bin/addons/base/security/base_security.xml | 7 +++--- bin/addons/base/security/ir.model.access.csv | 24 ++++++++++--------- 6 files changed, 18 insertions(+), 28 deletions(-) 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/ir/ir_values.py b/bin/addons/base/ir/ir_values.py index 7299b45e29a..38e893a0042 100644 --- a/bin/addons/base/ir/ir_values.py +++ b/bin/addons/base/ir/ir_values.py @@ -232,8 +232,10 @@ class ir_values(osv.osv): else: pos+=1 try: + print model, fields datas = self.pool.get(model).read(cr, uid, [id], fields, context) except except_orm, e: + print 'Except', e return False datas= datas and datas[0] or None if not datas: 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/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 3819c74ffcf..c94923ead66 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 @@ -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",,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_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 @@ -124,11 +126,11 @@ "access_res_config_view_all","res_config_view_all","model_res_config_view",,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,1,1,1 +"access_res_log all","res_log all","model_res_log",,1,0,1,1 From fd1c8a5b83fab596d637c0ddf36b59f7fb09e78d Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 12 Jun 2010 18:49:35 +0200 Subject: [PATCH 16/23] [FIX] null properties bzr revid: fp@tinyerp.com-20100612164935-b1a3hx7ron32kwxk --- bin/osv/fields.py | 2 +- bin/osv/osv.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/osv/fields.py b/bin/osv/fields.py index f7b0b29abd3..fa7f90d003f 100644 --- a/bin/osv/fields.py +++ b/bin/osv/fields.py @@ -885,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/osv.py b/bin/osv/osv.py index 5f583b894c9..7f39d5261aa 100644 --- a/bin/osv/osv.py +++ b/bin/osv/osv.py @@ -131,8 +131,9 @@ class osv_pool(netsvc.Service): if method.startswith('_'): 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) + print 'Got RES', res if res is None: - self.logger.warning('The method %s of the object %s can not return `None` at the moment!', method, obj ) + self.logger.warning('The method %s of the object %s can not return `None` !', method, obj) cr.commit() except Exception: cr.rollback() From 791add91895863e41d6c2b247b06a56b39ffa82a Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 12 Jun 2010 18:55:04 +0200 Subject: [PATCH 17/23] removed print statement bzr revid: fp@tinyerp.com-20100612165504-ourp8hw9khysr4ic --- bin/osv/osv.py | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/osv/osv.py b/bin/osv/osv.py index 7f39d5261aa..0086e351d05 100644 --- a/bin/osv/osv.py +++ b/bin/osv/osv.py @@ -131,7 +131,6 @@ class osv_pool(netsvc.Service): if method.startswith('_'): 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) - print 'Got RES', res if res is None: self.logger.warning('The method %s of the object %s can not return `None` !', method, obj) cr.commit() From 34cf94732f25200628782bafc5b0dc1beda8c992 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 12 Jun 2010 19:07:58 +0200 Subject: [PATCH 18/23] [imp] remove print statements bzr revid: fp@tinyerp.com-20100612170758-4yqlg6mfxqbebb63 --- bin/addons/base/ir/ir_values.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/addons/base/ir/ir_values.py b/bin/addons/base/ir/ir_values.py index 38e893a0042..7299b45e29a 100644 --- a/bin/addons/base/ir/ir_values.py +++ b/bin/addons/base/ir/ir_values.py @@ -232,10 +232,8 @@ class ir_values(osv.osv): else: pos+=1 try: - print model, fields datas = self.pool.get(model).read(cr, uid, [id], fields, context) except except_orm, e: - print 'Except', e return False datas= datas and datas[0] or None if not datas: From 211d9c1d79f825dfa396607c6d05f674e15f5941 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 12 Jun 2010 23:59:45 +0200 Subject: [PATCH 19/23] fix bzr revid: fp@tinyerp.com-20100612215945-06lxwldfydl8djkj --- bin/addons/base/base_update.xml | 13 ++++++++----- bin/addons/base/security/ir.model.access.csv | 8 ++++---- bin/osv/orm.py | 3 +-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml index 71c4fdc4be0..b3503002dd8 100644 --- a/bin/addons/base/base_update.xml +++ b/bin/addons/base/base_update.xml @@ -85,12 +85,15 @@ - diff --git a/bin/addons/base/security/ir.model.access.csv b/bin/addons/base/security/ir.model.access.csv index c94923ead66..8f98ef81380 100644 --- a/bin/addons/base/security/ir.model.access.csv +++ b/bin/addons/base/security/ir.model.access.csv @@ -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 @@ -121,9 +121,9 @@ "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_system",1,1,1,1 diff --git a/bin/osv/orm.py b/bin/osv/orm.py index 95914a2d020..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 From 37e218e36a2e23c900812a57949546859fe72601 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sun, 13 Jun 2010 00:35:30 +0200 Subject: [PATCH 20/23] fixes bzr revid: fp@tinyerp.com-20100612223530-2btlp6soybycg7nj --- bin/addons/base/base_update.xml | 2 +- bin/osv/fields.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml index b3503002dd8..2e135dfc001 100644 --- a/bin/addons/base/base_update.xml +++ b/bin/addons/base/base_update.xml @@ -86,7 +86,7 @@ -