summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-16 12:48:35 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-16 12:48:35 +0200
commitaaccdce8e7ebe6bc3a14e180c765a00dfee33991 (patch)
treea70ed54803f98a8f35b05df3eb761f690ec85530 /ishtar_common/views.py
parent8a003f0a6e02f298745ec6dc62cf1204bfb9dc33 (diff)
downloadIshtar-aaccdce8e7ebe6bc3a14e180c765a00dfee33991.tar.bz2
Ishtar-aaccdce8e7ebe6bc3a14e180c765a00dfee33991.zip
Towns relationship: include related towns to searches
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 6652ba6a9..b8350c62a 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -815,6 +815,23 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
dct.pop(k)
# manage hierarchic conditions
for req in dct.copy():
+ if req.endswith('town__pk') or req.endswith('towns__pk'):
+ val = dct.pop(req)
+ reqs = Q(**{req: val})
+ base_req = req[:-2] + '__'
+ req = base_req[:]
+ for idx in range(HIERARCHIC_LEVELS):
+ req = req[:-2] + 'parents__pk'
+ q = Q(**{req: val})
+ reqs |= q
+ req = base_req[:]
+ for idx in range(HIERARCHIC_LEVELS):
+ req = req[:-2] + 'children__pk'
+ q = Q(**{req: val})
+ reqs |= q
+ and_reqs.append(reqs)
+ continue
+
for k_hr in HIERARCHIC_FIELDS:
if type(req) in (list, tuple):
val = dct.pop(req)
@@ -830,7 +847,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
val = dct.pop(req)
reqs = Q(**{req: val})
req = req[:-2] + '__'
- for idx in xrange(HIERARCHIC_LEVELS):
+ for idx in range(HIERARCHIC_LEVELS):
req = req[:-2] + 'parent__pk'
q = Q(**{req: val})
reqs |= q