diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-15 12:26:08 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-15 12:26:08 +0200 |
commit | 6714d451f6990605730e2f8d22c14d492c8550da (patch) | |
tree | c584fb3db342514b92ae150cea5143ca9771d3e8 | |
parent | 2331e5eed077f124061e4ba987114dd078ba9aaf (diff) | |
download | Ishtar-6714d451f6990605730e2f8d22c14d492c8550da.tar.bz2 Ishtar-6714d451f6990605730e2f8d22c14d492c8550da.zip |
Fix hierarchic search
-rw-r--r-- | ishtar_common/views_item.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 1a0ef61e7..d00256877 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -587,7 +587,8 @@ def _manage_hierarchic_fields(dct, and_reqs): q |= Q(**{r: val}) and_reqs.append(q) break - elif req.endswith(k_hr + '__pk'): + elif req.endswith(k_hr + '__pk') \ + or req.endswith(k_hr + '__label__iexact'): val = _clean_type_val(dct.pop(req)) if u";" in val: @@ -597,8 +598,14 @@ def _manage_hierarchic_fields(dct, and_reqs): values = [val] base_req = req[:] reqs = None + if req.endswith('pk'): + base_suffix = "pk" + elif req.endswith('label__iexact'): + base_suffix = "label__iexact" + else: + continue for val in values: - suffix = "pk" + suffix = base_suffix[:] req = base_req[:] if val.startswith(u'"') and val.startswith(u'"'): @@ -609,7 +616,7 @@ def _manage_hierarchic_fields(dct, and_reqs): else: suffix = "label__iexact" val = val[1:-1] - req = req[:-2] + suffix + req = req[:-(len(base_suffix))] + suffix if not reqs: reqs = Q(**{req: val}) |