openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #03488
[Merge] lp:~openerp-dev/openobject-server/6.0-bug-719406-jvo into lp:openobject-server/6.0
Jay Vora (OpenERP) has proposed merging lp:~openerp-dev/openobject-server/6.0-bug-719406-jvo into lp:openobject-server/6.0.
Requested reviews:
Stephane Wirtel (OpenERP) (stephane-openerp)
Olivier Dony (OpenERP) (odo)
OpenERP Core Team (openerp)
Related bugs:
#719406 Record rules with domain blank or [] result in application error
https://bugs.launchpad.net/bugs/719406
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-bug-719406-jvo/+merge/51367
--
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-bug-719406-jvo/+merge/51367
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-server/6.0-bug-719406-jvo.
=== modified file 'bin/addons/base/ir/ir_rule.py'
--- bin/addons/base/ir/ir_rule.py 2010-12-10 22:42:58 +0000
+++ bin/addons/base/ir/ir_rule.py 2011-02-25 20:43:06 +0000
@@ -34,9 +34,11 @@
def _domain_force_get(self, cr, uid, ids, field_name, arg, context={}):
res = {}
for rule in self.browse(cr, uid, ids, context):
- eval_user_data = {'user': self.pool.get('res.users').browse(cr, 1, uid),
- 'time':time}
- res[rule.id] = eval(rule.domain_force, eval_user_data)
+ res.setdefault(rule.id,[])
+ if rule.domain_force:
+ eval_user_data = {'user': self.pool.get('res.users').browse(cr, 1, uid),
+ 'time':time}
+ res[rule.id] = eval(rule.domain_force, eval_user_data)
return res
def _get_value(self, cr, uid, ids, field_name, arg, context={}):
@@ -111,9 +113,14 @@
if not rule.groups:
global_rules.append(rule.id)
dom = self.domain_create(cr, uid, global_rules)
- dom += ['|'] * (len(group_rule)-1)
+ #When the rule has groups associated,prepend '|'(s) to the relevant domains
+ dom_ORing = ['|'] * (len(group_rule)-1)
+ dom_group = []
for value in group_rule.values():
- dom += self.domain_create(cr, uid, value)
+ dom_group += self.domain_create(cr, uid, value)
+ #If the rule has groups associated and rule has a valid domain,append the new domain
+ if dom_ORing and dom_group:
+ dom += dom_ORing + dom_group
return dom
return []
Follow ups