From 25839451d259122d6cea821f4d251dff7e52ef07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 30 Mar 2012 14:30:07 +0200 Subject: [PATCH] Prevent rule to fail when evaluating values issue2519 review312003 --- trytond/ir/rule.py | 5 +++-- trytond/tools/misc.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/trytond/ir/rule.py b/trytond/ir/rule.py index c3842b4bb6..96aacdbb91 100644 --- a/trytond/ir/rule.py +++ b/trytond/ir/rule.py @@ -121,8 +121,9 @@ class Rule(ModelSQL, ModelView): for k in key: if obj_fields[k]['type'] in ('many2one'): - res[root + '/' + obj_fields[k]['string']] = \ - root_tech + '.' + k + '.id' + res[root + '/' + obj_fields[k]['string']] = ( + '(' + root_tech + '.' + k + '.id ' + 'if ' + root_tech + ' else None)') elif obj_fields[k]['type'] in ('many2many', 'one2many'): res[root + '/' + obj_fields[k]['string']] = \ diff --git a/trytond/tools/misc.py b/trytond/tools/misc.py index f3b083bc33..a0624b5380 100644 --- a/trytond/tools/misc.py +++ b/trytond/tools/misc.py @@ -368,7 +368,7 @@ _ALLOWED_CODES = set(dis.opmap[x] for x in [ 'STORE_NAME', 'GET_ITER', 'FOR_ITER', 'LIST_APPEND', 'JUMP_ABSOLUTE', 'DELETE_NAME', 'JUMP_IF_TRUE', 'JUMP_IF_FALSE', 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'POP_JUMP_IF_FALSE', 'POP_JUMP_IF_TRUE', - 'BINARY_SUBSCR', + 'BINARY_SUBSCR', 'JUMP_FORWARD', ] if x in dis.opmap) @memoize(1000)