diff options
Diffstat (limited to 'ishtar/ishtar_base/views.py')
| -rw-r--r-- | ishtar/ishtar_base/views.py | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/ishtar/ishtar_base/views.py b/ishtar/ishtar_base/views.py index 8a3ecb05f..99c2167d7 100644 --- a/ishtar/ishtar_base/views.py +++ b/ishtar/ishtar_base/views.py @@ -203,9 +203,11 @@ 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 in HIERARCHIC_FIELDS: +        for k_hr in HIERARCHIC_FIELDS: +            if k_hr not in dct: +                continue              for req in dct.copy(): -                if req.endswith(k + '__pk'): +                if req.endswith(k_hr + '__pk'):                      val = dct.pop(req)                      reqs = Q(**{req:val})                      req = req[:-2] + '__' @@ -223,12 +225,14 @@ def get_item(model, func_name, default_name, extra_request_keys=[],          if q and q in request_keys:              ks = request_keys[q]              if type(ks) not in (list, tuple): -                ks = [k] +                ks = [ks]              for k in ks:                  if k.endswith("__pk"):                      k = k[:-len("__pk")] + "__label"                  q = request_items.get('sord')                  sign = q and q == u'desc' and "-" or '' +                if '__' in k: +                    k = k.split('__')[0]                  items = items.order_by(sign + k)          datas = []          if old:  | 
