This commit is contained in:
Ross
2021-11-30 22:32:45 +00:00
parent d69bc503cb
commit a76fbe53c4
+26 -6
View File
@@ -33,6 +33,7 @@ from .forms import (
SeriesFormSet, SeriesFormSet,
ExaminationForm, ExaminationForm,
SeriesFindingForm, SeriesFindingForm,
CaseDifferentialFormSet,
) )
from .models import ( from .models import (
Case, Case,
@@ -267,6 +268,7 @@ class SeriesUpdate(
context["image_formset"] = SeriesImageFormSet( context["image_formset"] = SeriesImageFormSet(
self.request.POST, self.request.FILES, instance=self.object self.request.POST, self.request.FILES, instance=self.object
) )
context["image_formset"].full_clean() context["image_formset"].full_clean()
else: else:
context["image_formset"] = SeriesImageFormSet(instance=self.object) context["image_formset"] = SeriesImageFormSet(instance=self.object)
@@ -291,7 +293,7 @@ class SeriesUpdate(
return super().form_invalid(form) return super().form_invalid(form)
class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView): class AtlasCreateBase(RevisionMixin, LoginRequiredMixin):
model = Case model = Case
form_class = CaseForm form_class = CaseForm
@@ -306,9 +308,14 @@ class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView):
context["series_formset"] = SeriesFormSet( context["series_formset"] = SeriesFormSet(
self.request.POST, self.request.FILES self.request.POST, self.request.FILES
) )
context["casedifferential_formset"] = SeriesImageFormSet(
self.request.POST, self.request.FILES
)
context["series_formset"].full_clean()
context["series_formset"].full_clean() context["series_formset"].full_clean()
else: else:
context["series_formset"] = SeriesFormSet() context["series_formset"] = SeriesFormSet()
context["casedifferential_formset"] = SeriesImageFormSet()
return context return context
def form_valid(self, form): def form_valid(self, form):
@@ -323,10 +330,13 @@ class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView):
context = self.get_context_data(form=form) context = self.get_context_data(form=form)
series_formset = context["series_formset"] series_formset = context["series_formset"]
if series_formset.is_valid(): casedifferential_formset = context["casedifferential_formset"]
if series_formset.is_valid() and casedifferential_formset.is_valid():
response = super().form_valid(form) response = super().form_valid(form)
series_formset.instance = self.object series_formset.instance = self.object
series_formset.save() series_formset.save()
casedifferential_formset.instance = self.object
casedifferential_formset.save()
# If the normal submit button is pressed we save as normal # If the normal submit button is pressed we save as normal
if "submit" in self.request.POST: if "submit" in self.request.POST:
return response return response
@@ -339,7 +349,7 @@ class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView):
# @login_required # @login_required
class AtlasCreate(AtlasCreateBase): class AtlasCreate(AtlasCreateBase, CreateView):
def get_initial(self): def get_initial(self):
# There has to be a better way... # There has to be a better way...
try: try:
@@ -372,9 +382,16 @@ class AtlasUpdate(
context["series_formset"] = SeriesFormSet( context["series_formset"] = SeriesFormSet(
self.request.POST, self.request.FILES, instance=self.object self.request.POST, self.request.FILES, instance=self.object
) )
context["casedifferential_formset"] = SeriesImageFormSet(
self.request.POST, self.request.FILES, instance=self.object
)
context["series_formset"].full_clean()
context["series_formset"].full_clean() context["series_formset"].full_clean()
else: else:
context["series_formset"] = SeriesFormSet(instance=self.object) context["series_formset"] = SeriesFormSet(instance=self.object)
context["casedifferential_formset"] = SeriesImageFormSet(
instance=self.object
)
return context return context
def form_valid(self, form): def form_valid(self, form):
@@ -386,18 +403,21 @@ class AtlasUpdate(
context = self.get_context_data(form=form) context = self.get_context_data(form=form)
series_formset = context["series_formset"] series_formset = context["series_formset"]
casedifferential_formset = context["casedifferential_formset"]
# logger.debug(formset.is_valid()) # logger.debug(formset.is_valid())
if series_formset.is_valid(): if series_formset.is_valid() and casedifferential_formset.is_valid():
response = super().form_valid(form) response = super().form_valid(form)
series_formset.instance = self.object series_formset.instance = self.object
series_formset.save() series_formset.save()
casedifferential_formset.instance = self.object
casedifferential_formset.save()
return response return response
else: else:
return super().form_invalid(form) return super().form_invalid(form)
class AtlasClone(AtlasCreateBase): class AtlasClone(AtlasCreateBase, CreateView):
"""Clones a existing atlas""" """Clones a existing atlas"""
# fields = '__all__' # fields = '__all__'
@@ -574,7 +594,7 @@ class ConditionAutocomplete(autocomplete.Select2QuerySetView):
if self.q: if self.q:
# This raises a fielderror which breaks creating a new item if not caught # This raises a fielderror which breaks creating a new item if not caught
try: try:
qs = qs.filter(name__istartswith=self.q) qs = qs.filter(name__contains=self.q)
except FieldError: except FieldError:
return Condition.objects.none() return Condition.objects.none()