diff options
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 |
commit | a657ca2449e804fc60ae40422cd463840813285f (patch) | |
tree | 038feacbb6eaff4d5e531ec417652009ed2f1ce5 /ishtar_common/views.py | |
parent | 57fa943dbd781e6c7352865c07b1f025ffa5117e (diff) | |
download | Ishtar-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.py | 19 |
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', }) |