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 | fd0a0165c3a06ecea377cc9a16ac2706b1dc9d40 (patch) | |
| tree | 038feacbb6eaff4d5e531ec417652009ed2f1ce5 /ishtar_common/views.py | |
| parent | 677bc165441d508429295f476a28a966efa2ce29 (diff) | |
| download | Ishtar-fd0a0165c3a06ecea377cc9a16ac2706b1dc9d40.tar.bz2 Ishtar-fd0a0165c3a06ecea377cc9a16ac2706b1dc9d40.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',      }) | 
