summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-12-03 13:05:06 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2015-12-03 13:05:06 +0100
commita657ca2449e804fc60ae40422cd463840813285f (patch)
tree038feacbb6eaff4d5e531ec417652009ed2f1ce5 /ishtar_common/views.py
parent57fa943dbd781e6c7352865c07b1f025ffa5117e (diff)
downloadIshtar-a657ca2449e804fc60ae40422cd463840813285f.tar.bz2
Ishtar-a657ca2449e804fc60ae40422cd463840813285f.zip
Better management of raw_names for search and windows
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index f605c4b25..819c88f32 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -356,10 +356,19 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
except ValueError:
return HttpResponse('[]', mimetype='text/plain')
for k in request_keys:
- q = request_items.get(k)
- if not q:
+ val = request_items.get(k)
+ if not val:
+ continue
+ req_keys = request_keys[k]
+ if type(req_keys) not in (list, tuple):
+ dct[req_keys] = val
continue
- dct[request_keys[k]] = q
+ # multiple choice target
+ reqs = Q(**{req_keys[0]: val})
+ for req_key in req_keys[1:]:
+ q = Q(**{req_key: val})
+ reqs = reqs | q
+ and_reqs.append(reqs)
if not dct and 'submited' not in request_items:
if default_name in request.session and \
request.session[default_name]:
@@ -832,8 +841,8 @@ get_person = get_item(
models.Person,
'get_person', 'person',
extra_request_keys={
- 'name': 'name__icontains',
- 'surname': 'surname__icontains',
+ 'name': ['name__icontains', 'raw_name__icontains'],
+ 'surname': ['surname__icontains', 'raw_name__icontains'],
'attached_to': 'attached_to__pk',
'person_types': 'person_types__pk__in',
})