From bcda82df67ff32d946ba13769af90af4d53a4355 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 13 Jun 2018 17:31:13 +0200 Subject: Manage area search for finds --- ishtar_common/views_item.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'ishtar_common') diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 2018f6f90..1d3d55a5c 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -549,6 +549,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('areas__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] + 'parent__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 + if req.endswith('town__pk') or req.endswith('towns__pk'): val = dct.pop(req) reqs = Q(**{req: val}) -- cgit v1.2.3