diff options
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', }) |