summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@viserion.(none)>2013-04-16 21:53:17 +0000
committerroot <root@viserion.(none)>2013-04-16 21:53:17 +0000
commit1ccc928d7eeaed8f38d00c764d524f2fd3db8c57 (patch)
tree18e9460122640484df04be868a1d422fe4ddffe3
parent1017060f8673ecc9febb7c8debbf6b9193ead9a1 (diff)
parentd989ccd4646601e6ae482dbbc2b4edc0db46481c (diff)
downloadIshtar-1ccc928d7eeaed8f38d00c764d524f2fd3db8c57.tar.bz2
Ishtar-1ccc928d7eeaed8f38d00c764d524f2fd3db8c57.zip
Merge branch 'master' of lysithea.proxience.net:/home/proxience/git/ishtar
-rw-r--r--archaeological_files/views.py6
-rw-r--r--archaeological_operations/views.py6
-rw-r--r--ishtar_common/views.py12
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] + '__'