summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit6714d451f6990605730e2f8d22c14d492c8550da (patch)
treec584fb3db342514b92ae150cea5143ca9771d3e8
parent2331e5eed077f124061e4ba987114dd078ba9aaf (diff)
downloadIshtar-6714d451f6990605730e2f8d22c14d492c8550da.tar.bz2
Ishtar-6714d451f6990605730e2f8d22c14d492c8550da.zip
Fix hierarchic search
-rw-r--r--ishtar_common/views_item.py13
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})