diff options
author | root <root@viserion.(none)> | 2013-04-16 21:53:17 +0000 |
---|---|---|
committer | root <root@viserion.(none)> | 2013-04-16 21:53:17 +0000 |
commit | 1ccc928d7eeaed8f38d00c764d524f2fd3db8c57 (patch) | |
tree | 18e9460122640484df04be868a1d422fe4ddffe3 | |
parent | 1017060f8673ecc9febb7c8debbf6b9193ead9a1 (diff) | |
parent | d989ccd4646601e6ae482dbbc2b4edc0db46481c (diff) | |
download | Ishtar-1ccc928d7eeaed8f38d00c764d524f2fd3db8c57.tar.bz2 Ishtar-1ccc928d7eeaed8f38d00c764d524f2fd3db8c57.zip |
Merge branch 'master' of lysithea.proxience.net:/home/proxience/git/ishtar
-rw-r--r-- | archaeological_files/views.py | 6 | ||||
-rw-r--r-- | archaeological_operations/views.py | 6 | ||||
-rw-r--r-- | ishtar_common/views.py | 12 |
3 files changed, 19 insertions, 5 deletions
diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 2b5003911..1919d8b62 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -61,8 +61,10 @@ def autocomplete_file(request): return HttpResponse(data, mimetype='text/plain') get_file = get_item(models.File, 'get_file', 'file', - extra_request_keys={'parcel_0':'operations__parcels__section', - 'parcel_1':'operations__parcels__parcel_number', + extra_request_keys={'parcel_0':('parcels__section', + 'operations__parcels__section'), + 'parcel_1':('parcels__parcel_number', + 'operations__parcels__parcel_number'), }, ) show_file = show_item(models.File, 'file') diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 1ce4c4622..e5bf16ce8 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -103,8 +103,10 @@ get_operation = get_item(models.Operation, 'get_operation', 'operation', 'start_after':'start_date__gte', 'end_before':'excavation_end_date__lte', 'end_after':'excavation_end_date__gte', - 'parcel_0':'parcels__section', - 'parcel_1':'parcels__parcel_number', + 'parcel_0':('parcels__section', + 'associated_file__parcels__section'), + 'parcel_1':('parcels__parcel_number', + 'associated_file__parcels__parcel_number'), }, ) show_operation = show_item(models.Operation, 'operation') diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 42e826103..346edc0d7 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -229,7 +229,17 @@ def get_item(model, func_name, default_name, extra_request_keys=[], or_reqs = [] for req in dct.copy(): for k_hr in HIERARCHIC_FIELDS: - if req.endswith(k_hr + '__pk'): + if type(req) in (list, tuple): + val = dct.pop(req) + q = None + for idx, r in enumerate(req): + if not idx: + q = Q(**{r:val}) + else: + q = q | Q(**{r:val}) + or_reqs.append(q) + break + elif req.endswith(k_hr + '__pk'): val = dct.pop(req) reqs = Q(**{req:val}) req = req[:-2] + '__' |