diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-08-30 08:54:07 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-08-30 08:54:07 +0200 |
commit | 02164b9418213b11ae11c103f0e3b1829ca4f0af (patch) | |
tree | d3368d33a0735e84ea9edd937917a3bfad324763 | |
parent | 9df57fa0f3db7d98098dba921c743d0bacc07364 (diff) | |
download | Ishtar-02164b9418213b11ae11c103f0e3b1829ca4f0af.tar.bz2 Ishtar-02164b9418213b11ae11c103f0e3b1829ca4f0af.zip |
Correct management of hierarchic fields (refs #570)
-rw-r--r-- | ishtar/ishtar_base/views.py | 9 |
1 files 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 |