summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
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',
})