Add case collection update functionality with form handling and template (move from CaseCollection form)
This commit is contained in:
+56
-13
@@ -48,6 +48,7 @@ from .forms import (
|
||||
CaseCollectionAuthorForm,
|
||||
CaseCollectionCaseFormSet,
|
||||
CaseCollectionForm,
|
||||
CaseCollectionUpdateCaseForm,
|
||||
CaseDetailForm,
|
||||
CaseDisplaySetForm,
|
||||
CaseForm,
|
||||
@@ -1023,19 +1024,19 @@ class CaseCollectionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateVi
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(CaseCollectionUpdate, self).get_context_data(**kwargs)
|
||||
if self.request.POST:
|
||||
context["case_formset"] = CaseCollectionCaseFormSet(
|
||||
self.request.POST,
|
||||
self.request.FILES,
|
||||
instance=self.object,
|
||||
form_kwargs={"user": self.request.user, "collection": self.object},
|
||||
)
|
||||
context["case_formset"].full_clean()
|
||||
else:
|
||||
context["case_formset"] = CaseCollectionCaseFormSet(
|
||||
instance=self.object,
|
||||
form_kwargs={"user": self.request.user, "collection": self.object},
|
||||
)
|
||||
#if self.request.POST:
|
||||
# context["case_formset"] = CaseCollectionCaseFormSet(
|
||||
# self.request.POST,
|
||||
# self.request.FILES,
|
||||
# instance=self.object,
|
||||
# form_kwargs={"user": self.request.user, "collection": self.object},
|
||||
# )
|
||||
# context["case_formset"].full_clean()
|
||||
#else:
|
||||
# context["case_formset"] = CaseCollectionCaseFormSet(
|
||||
# instance=self.object,
|
||||
# form_kwargs={"user": self.request.user, "collection": self.object},
|
||||
# )
|
||||
|
||||
context["collection"] = context["casecollection"]
|
||||
return context
|
||||
@@ -1046,6 +1047,7 @@ class CaseCollectionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateVi
|
||||
|
||||
form.instance.author.add(self.request.user.id)
|
||||
|
||||
return super().form_valid(form)
|
||||
context = self.get_context_data(form=form)
|
||||
case_formset = context["case_formset"]
|
||||
# logger.debug(formset.is_valid())
|
||||
@@ -1363,6 +1365,47 @@ class AtlasUpdate(
|
||||
else:
|
||||
return super().form_invalid(form)
|
||||
|
||||
class CollectionCaseUpdate(
|
||||
RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView):
|
||||
model = CaseCollection
|
||||
form_class = CaseCollectionUpdateCaseForm
|
||||
template_name = "atlas/casecollection_update_case.html"
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super().get_form_kwargs()
|
||||
kwargs.update({"user": self.request.user, "collection": self.object})
|
||||
|
||||
return kwargs
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
if self.request.POST:
|
||||
context["case_formset"] = CaseCollectionCaseFormSet(
|
||||
self.request.POST,
|
||||
self.request.FILES,
|
||||
instance=self.object,
|
||||
form_kwargs={"user": self.request.user, "collection": self.object},
|
||||
)
|
||||
context["case_formset"].full_clean()
|
||||
else:
|
||||
context["case_formset"] = CaseCollectionCaseFormSet(
|
||||
instance=self.object,
|
||||
form_kwargs={"user": self.request.user, "collection": self.object},
|
||||
)
|
||||
context["collection"] = context["casecollection"]
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
context = self.get_context_data(form=form)
|
||||
case_formset = context["case_formset"]
|
||||
if case_formset.is_valid():
|
||||
case_formset.instance = self.object
|
||||
case_formset.save()
|
||||
return super().form_valid(form)
|
||||
else:
|
||||
return self.form_invalid(form)
|
||||
|
||||
|
||||
class AtlasSeriesUpdate(
|
||||
RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user