summaryrefslogtreecommitdiff
path: root/archaeological_finds/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r--archaeological_finds/views.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index d6924257f..ceb00d432 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -187,10 +187,25 @@ find_search_wizard = FindSearch.as_view([
condition_dict=find_search_condition_dict
)
+
+def has_many_base_find(wizard):
+ find = wizard.get_current_object()
+ if not find:
+ return False
+ return find.base_finds.count() > 1
+
+
+def has_only_one_base_find(wizard):
+ return not has_many_base_find(wizard)
+
+
find_modification_condition_dict = {
'selec-find_modification': check_not_warehouse_module,
'selecw-find_modification': check_warehouse_module,
'preservation-find_modification': check_preservation_module,
+ 'selecrecord-find_modification': has_only_one_base_find,
+ 'find-find_modification': has_only_one_base_find,
+ 'simplefind-find_modification': has_many_base_find,
}
find_modification_steps = [
@@ -198,6 +213,7 @@ find_modification_steps = [
('selecw-find_modification', FindFormSelectionWarehouseModule),
('selecrecord-find_modification', RecordFormSelection),
('find-find_modification', FindForm),
+ ('simplefind-find_modification', SimpleFindForm),
('preservation-find_modification', PreservationForm),
('dating-find_modification', DatingFormSet),
('final-find_modification', FinalForm)
@@ -218,9 +234,15 @@ def find_modify(request, pk):
key = 'selecw-find_modification'
FindModificationWizard.session_set_value(
request, key, 'pk', pk, reset=True)
+ q = models.Find.objects.filter(pk=pk)
+ if not q.count():
+ raise Http404()
+ step = 'find-find_modification'
+ find = q.all()[0]
+ if find.base_finds.count() > 1:
+ step = 'simplefind-find_modification'
return redirect(
- reverse('find_modification',
- kwargs={'step': 'selecrecord-find_modification'}))
+ reverse('find_modification', kwargs={'step': step}))
find_deletion_condition_dict = {
'selec-find_deletion': check_not_warehouse_module,