summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-04-16 21:59:05 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-04-16 21:59:05 +0200
commit8b3295457a06ef0a71c23e19d54b4729e68ea2c1 (patch)
treec03fa02e2f6807b60af9ef1d626816c839b73983 /ishtar_common
parent612555172fb11bb89f35e0d5bfb572bb8f3ed1f4 (diff)
downloadIshtar-8b3295457a06ef0a71c23e19d54b4729e68ea2c1.tar.bz2
Ishtar-8b3295457a06ef0a71c23e19d54b4729e68ea2c1.zip
Manage OR condition in searches
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/views.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 42e826103..346edc0d7 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -229,7 +229,17 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
or_reqs = []
for req in dct.copy():
for k_hr in HIERARCHIC_FIELDS:
- if req.endswith(k_hr + '__pk'):
+ if type(req) in (list, tuple):
+ val = dct.pop(req)
+ q = None
+ for idx, r in enumerate(req):
+ if not idx:
+ q = Q(**{r:val})
+ else:
+ q = q | Q(**{r:val})
+ or_reqs.append(q)
+ break
+ elif req.endswith(k_hr + '__pk'):
val = dct.pop(req)
reqs = Q(**{req:val})
req = req[:-2] + '__'