more improvements

This commit is contained in:
Ross
2021-02-04 10:30:56 +00:00
parent b681a27640
commit cd013f2ff3
32 changed files with 247 additions and 324 deletions
+20 -46
View File
@@ -21,22 +21,15 @@ from django.http import HttpResponseRedirect, HttpResponse
from .forms import (
LongForm,
MarkLongQuestionForm,
ImageFormSet,
SeriesFormSet,
NoteForm,
RegionForm,
AbnormalityForm,
ExaminationForm,
AnswerFormSet,
AnswerUpdateFormSet,
)
from .models import (
Long,
Note,
Abnormality,
Region,
Examination,
Exam,
Answer,
CidUserAnswer,
)
from .tables import LongTable
@@ -236,28 +229,24 @@ def long_clone(request, pk):
form = LongForm(request.POST or None, instance=new_item)
image_formset = ImageFormSet()
answer_formset = AnswerFormSet()
series_formset = SeriesFormSet()
if form.is_valid():
form.instance.author.add(request.user.id)
# logger.debug(formset.is_valid())
if image_formset.is_valid() and answer_formset.is_valid():
if series_formset.is_valid():
response = super().form_valid(form)
image_formset.instance = obj
image_formset.save()
series_formset.instance = obj
series_formset.save()
answer_formset.instance = obj
answer_formset.save()
return response
else:
return super().form_invalid(form)
context = {
"form": form,
"image_formset": image_formset,
"answer_formset": answer_formset
"series_formset": series_formset,
# other context
}
@@ -271,15 +260,12 @@ class LongCreateBase(LoginRequiredMixin, CreateView):
def get_context_data(self, **kwargs):
context = super(LongCreateBase, self).get_context_data(**kwargs)
if self.request.POST:
context["image_formset"] = ImageFormSet(
context["series_formset"] = SeriesFormSet(
self.request.POST, self.request.FILES
)
context["image_formset"].full_clean()
context["answer_formset"] = AnswerFormSet(self.request.POST)
context["answer_formset"].full_clean()
context["series_formset"].full_clean()
else:
context["image_formset"] = ImageFormSet()
context["answer_formset"] = AnswerFormSet()
context["series_formset"] = SeriesFormSet()
return context
def form_valid(self, form):
@@ -290,14 +276,11 @@ class LongCreateBase(LoginRequiredMixin, CreateView):
form.instance.author.add(self.request.user.id)
context = self.get_context_data(form=form)
image_formset = context["image_formset"]
answer_formset = context["answer_formset"]
if image_formset.is_valid() and answer_formset.is_valid():
series_formset = context["series_formset"]
if series_formset.is_valid():
response = super().form_valid(form)
image_formset.instance = self.object
image_formset.save()
answer_formset.instance = self.object
answer_formset.save()
series_formset.instance = self.object
series_formset.save()
# If the normal submit button is pressed we save as normal
if "submit" in self.request.POST:
return response
@@ -312,7 +295,6 @@ class LongCreateBase(LoginRequiredMixin, CreateView):
# @login_required
class LongCreate(LongCreateBase):
initial = {"laterality": Long.NONE}
def get_initial(self):
# There has to be a better way...
@@ -346,17 +328,12 @@ class LongUpdate(LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView):
def get_context_data(self, **kwargs):
context = super(LongUpdate, self).get_context_data(**kwargs)
if self.request.POST:
context["image_formset"] = ImageFormSet(
context["series_formset"] = SeriesFormSet(
self.request.POST, self.request.FILES, instance=self.object
)
context["image_formset"].full_clean()
context["answer_formset"] = AnswerFormSet(
self.request.POST, instance=self.object
)
context["answer_formset"].full_clean()
context["series_formset"].full_clean()
else:
context["image_formset"] = ImageFormSet(instance=self.object)
context["answer_formset"] = AnswerFormSet(instance=self.object)
context["series_formset"] = SeriesFormSet(instance=self.object)
return context
def form_valid(self, form):
@@ -367,15 +344,12 @@ class LongUpdate(LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView):
form.instance.author.add(self.request.user.id)
context = self.get_context_data(form=form)
image_formset = context["image_formset"]
answer_formset = context["answer_formset"]
series_formset = context["series_formset"]
# logger.debug(formset.is_valid())
if image_formset.is_valid() and answer_formset.is_valid():
if series_formset.is_valid():
response = super().form_valid(form)
image_formset.instance = self.object
image_formset.save()
answer_formset.instance = self.object
answer_formset.save()
series_formset.instance = self.object
series_formset.save()
return response
else:
return super().form_invalid(form)