summaryrefslogtreecommitdiff
path: root/archaeological_context_records/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records/views.py')
-rw-r--r--archaeological_context_records/views.py34
1 files changed, 27 insertions, 7 deletions
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py
index 28fb6b18f..057e3ab61 100644
--- a/archaeological_context_records/views.py
+++ b/archaeological_context_records/views.py
@@ -195,8 +195,8 @@ context_record_modify_relations = get_relation_modify(
)
-def get_dating_form(model, dating_model, url_name, action='add'):
- def _dating_add(request, pk, current_right=None):
+def get_dating_form(model, dating_model, url_name):
+ def _dating_form(request, pk, dating_pk=None, current_right=None):
try:
item = model.objects.get(pk=pk)
except model.DoesNotExist:
@@ -207,6 +207,18 @@ def get_dating_form(model, dating_model, url_name, action='add'):
elif current_right:
if not request.user.has_perm(current_right):
raise PermissionDenied()
+ initial = {}
+ if dating_pk:
+ try:
+ dating_item = dating_model.objects.get(pk=dating_pk)
+ initial = dict(
+ (attr, getattr(dating_item, attr))
+ for attr in [
+ "pk", "reference", "period_id", "start_date", "end_date",
+ "quality_id", "dating_type_id", "precise_dating"]
+ )
+ except dating_model.DoesNotExist:
+ raise Http404()
if request.method == 'POST':
form = forms.QADating(request.POST, dating_model=dating_model,
current_item=item)
@@ -215,9 +227,12 @@ def get_dating_form(model, dating_model, url_name, action='add'):
return HttpResponseRedirect(reverse("success"))
else:
form = forms.QADating(dating_model=dating_model,
- current_item=item)
- button_name = _("Add") if action == "add" else _("Modify")
- icon = "fa fa-plus" if action == "add" else "fa fa-pencil"
+ current_item=item, initial=initial)
+ button_name = _("Add") if not dating_pk else _("Modify")
+ icon = "fa fa-plus" if not dating_pk else "fa fa-pencil"
+ url_args = [pk]
+ if dating_pk:
+ url_args.append(dating_pk)
return render(
request,
"ishtar/forms/qa_form.html", {
@@ -225,9 +240,9 @@ def get_dating_form(model, dating_model, url_name, action='add'):
"icon": icon,
"action_name": button_name,
"form": form,
- "url": reverse(url_name, args=[pk])
+ "url": reverse(url_name, args=url_args)
})
- return _dating_add
+ return _dating_form
context_record_dating_add = get_dating_form(
@@ -235,6 +250,11 @@ context_record_dating_add = get_dating_form(
)
+context_record_dating_modify = get_dating_form(
+ models.ContextRecord, models.ContextRecordDating, "context-record-dating-modify"
+)
+
+
class GenerateRelationImage(IshtarMixin, LoginRequiredMixin, RedirectView):
upper_model = models.Operation
model = models.ContextRecord