diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-27 12:51:17 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-27 12:51:17 +0200 | 
| commit | 87c17476bc869cb1ae633034e372a7576d406939 (patch) | |
| tree | f66e2e0d82cdfd97b48da493246f74f29c8be9dc /ishtar_common/views_item.py | |
| parent | f8353e17377f268b198f8291bd73d0144fab915a (diff) | |
| download | Ishtar-87c17476bc869cb1ae633034e372a7576d406939.tar.bz2 Ishtar-87c17476bc869cb1ae633034e372a7576d406939.zip | |
Fix area search
Diffstat (limited to 'ishtar_common/views_item.py')
| -rw-r--r-- | ishtar_common/views_item.py | 20 | 
1 files changed, 15 insertions, 5 deletions
| diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 374dc3927..da87ef02f 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -542,18 +542,28 @@ def _manage_hierarchic_fields(dct, and_reqs):          if type(reqs) not in (list, tuple):              reqs = [reqs]          for req in reqs: -            if req.endswith('areas__pk'): +            if req.endswith('areas__pk') \ +                    or req.endswith('areas__label__iexact'): +                if req.endswith('pk'): +                    suffix = 'pk' +                elif req.endswith('label__iexact'): +                    suffix = 'label__iexact' +                else: +                    continue +                  val = _clean_type_val(dct.pop(req)) +                if val.startswith('"') and val.endswith('"'): +                    val = val[1:-1]                  reqs = Q(**{req: val}) -                base_req = req[:-2] + '__' -                req = base_req[:] +                base_req = req[:] +                  for idx in range(HIERARCHIC_LEVELS): -                    req = req[:-2] + 'parent__pk' +                    req = req[:-(len(suffix))] + 'parent__' + suffix                      q = Q(**{req: val})                      reqs |= q                  req = base_req[:]                  for idx in range(HIERARCHIC_LEVELS): -                    req = req[:-2] + 'children__pk' +                    req = req[:-(len(suffix))] + 'children__' + suffix                      q = Q(**{req: val})                      reqs |= q                  and_reqs.append(reqs) | 
