diff --git a/product/ERP5/Document/Predicate.py b/product/ERP5/Document/Predicate.py index 1010b4baabe86909212247aee3ae7535ea1fc060..ae5093b83caceed61b0e167a17c1a8fa619c7d44 100644 --- a/product/ERP5/Document/Predicate.py +++ b/product/ERP5/Document/Predicate.py @@ -235,8 +235,11 @@ class Predicate(XMLObject, Folder): strict_membership=strict_membership, table=table_alias, base_category=base_category)) - membership_select_list = map(lambda l: '( %s )' % ' OR '.join(l), - membership_dict.values()) + membership_select_list = [] + for expression_list in membership_dict.values(): + or_expression = ' OR '.join(expression_list) + if or_expression: + membership_select_list.append('( %s )' % or_expression) # Then build SQL for multimembership_dict criteria multimembership_dict = {} @@ -255,7 +258,11 @@ class Predicate(XMLObject, Folder): strict_membership=strict_membership, table=table_alias, base_category=base_category)) - multimembership_select_list = map(lambda l: ' AND '.join(l), multimembership_dict.values()) + multimembership_select_list = [] + for expression_list in multimembership_dict.values(): + and_expression = ' AND '.join(expression_list) + if and_expression: + multimembership_select_list.append(and_expression) # Build the join where expression join_select_list = []