From a76fbe53c49ed1fd19319cdd0f9514c1a530347f Mon Sep 17 00:00:00 2001 From: Ross Date: Tue, 30 Nov 2021 22:32:45 +0000 Subject: [PATCH] . --- atlas/views.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/atlas/views.py b/atlas/views.py index 755f4937..674623ee 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -33,6 +33,7 @@ from .forms import ( SeriesFormSet, ExaminationForm, SeriesFindingForm, + CaseDifferentialFormSet, ) from .models import ( Case, @@ -267,6 +268,7 @@ class SeriesUpdate( context["image_formset"] = SeriesImageFormSet( self.request.POST, self.request.FILES, instance=self.object ) + context["image_formset"].full_clean() else: context["image_formset"] = SeriesImageFormSet(instance=self.object) @@ -291,7 +293,7 @@ class SeriesUpdate( return super().form_invalid(form) -class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView): +class AtlasCreateBase(RevisionMixin, LoginRequiredMixin): model = Case form_class = CaseForm @@ -306,9 +308,14 @@ class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView): context["series_formset"] = SeriesFormSet( 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() else: context["series_formset"] = SeriesFormSet() + context["casedifferential_formset"] = SeriesImageFormSet() return context def form_valid(self, form): @@ -323,10 +330,13 @@ class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView): context = self.get_context_data(form=form) 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) series_formset.instance = self.object series_formset.save() + casedifferential_formset.instance = self.object + casedifferential_formset.save() # If the normal submit button is pressed we save as normal if "submit" in self.request.POST: return response @@ -339,7 +349,7 @@ class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView): # @login_required -class AtlasCreate(AtlasCreateBase): +class AtlasCreate(AtlasCreateBase, CreateView): def get_initial(self): # There has to be a better way... try: @@ -372,9 +382,16 @@ class AtlasUpdate( context["series_formset"] = SeriesFormSet( 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() else: context["series_formset"] = SeriesFormSet(instance=self.object) + context["casedifferential_formset"] = SeriesImageFormSet( + instance=self.object + ) return context def form_valid(self, form): @@ -386,18 +403,21 @@ class AtlasUpdate( context = self.get_context_data(form=form) series_formset = context["series_formset"] + casedifferential_formset = context["casedifferential_formset"] # 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) series_formset.instance = self.object series_formset.save() + casedifferential_formset.instance = self.object + casedifferential_formset.save() return response else: return super().form_invalid(form) -class AtlasClone(AtlasCreateBase): +class AtlasClone(AtlasCreateBase, CreateView): """Clones a existing atlas""" # fields = '__all__' @@ -574,7 +594,7 @@ class ConditionAutocomplete(autocomplete.Select2QuerySetView): if self.q: # This raises a fielderror which breaks creating a new item if not caught try: - qs = qs.filter(name__istartswith=self.q) + qs = qs.filter(name__contains=self.q) except FieldError: return Condition.objects.none()