From b00dc27c955e86adf32faf1338c9d43e4162a490 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 30 Aug 2011 08:54:07 +0200 Subject: Correct management of hierarchic fields (refs #570) --- ishtar/ishtar_base/views.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ishtar/ishtar_base/views.py b/ishtar/ishtar_base/views.py index e0a96063c..3bc21880a 100644 --- a/ishtar/ishtar_base/views.py +++ b/ishtar/ishtar_base/views.py @@ -159,7 +159,7 @@ def format_val(val): return unicode(val) HIERARCHIC_LEVELS = 5 -HIERARCHIC_FIELDS = ['period', 'unit', 'material'] +HIERARCHIC_FIELDS = ['period', 'unit', 'material_type'] PRIVATE_FIELDS = ('id', 'history_modifier', 'order') def get_item(model, func_name, default_name, extra_request_keys=[], base_request={}, bool_fields=[]): @@ -204,10 +204,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], dct[k] = dct[k] == u"2" and True or False # manage hierarchic conditions or_reqs = [] - for k_hr in HIERARCHIC_FIELDS: - if k_hr not in dct: - continue - for req in dct.copy(): + for req in dct.copy(): + for k_hr in HIERARCHIC_FIELDS: if req.endswith(k_hr + '__pk'): val = dct.pop(req) reqs = Q(**{req:val}) @@ -217,6 +215,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], q = Q(**{req:val}) reqs = reqs | q or_reqs.append(reqs) + break query = Q(**dct) for or_req in or_reqs: query = query & or_req -- cgit v1.2.3