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 | 
