summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/views.py6
-rw-r--r--ishtar_common/views.py12
2 files changed, 15 insertions, 3 deletions
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] + '__'