From 0de128f2273fbdd1720ec54f2d0fcb9536b2ee0c Mon Sep 17 00:00:00 2001 From: Ross Date: Tue, 30 Nov 2021 18:28:39 +0000 Subject: [PATCH] . --- atlas/forms.py | 2 +- atlas/templates/atlas/case_form.html | 35 ++++++- atlas/views.py | 143 ++++++++++++++------------- 3 files changed, 107 insertions(+), 73 deletions(-) diff --git a/atlas/forms.py b/atlas/forms.py index 01e50c99..b193e5f1 100755 --- a/atlas/forms.py +++ b/atlas/forms.py @@ -161,7 +161,7 @@ class CaseForm(ModelForm): "description", "history", "condition", - "differential", + #"differential", # "sign", "open_access", ] diff --git a/atlas/templates/atlas/case_form.html b/atlas/templates/atlas/case_form.html index 243166a8..1a50a876 100755 --- a/atlas/templates/atlas/case_form.html +++ b/atlas/templates/atlas/case_form.html @@ -27,14 +27,21 @@ } - function add_input_form() { + function add_series_input_form() { var form_idx = $('#id_Case_series-TOTAL_FORMS').val(); - $('#form_set').append($('#empty_form').html().replace(/__prefix__/g, form_idx)); + $('#series_formset').append($('#empty_form').html().replace(/__prefix__/g, form_idx)); $('#id_Case_series-TOTAL_FORMS').val(parseInt(form_idx) + 1); } + function add_differential_input_form() { + var form_idx = $('#id_Case_casedifferential-TOTAL_FORMS').val(); + $('#case_differential_formset').append($('#empty_form').html().replace(/__prefix__/g, form_idx)); + $('#id_Case_casedifferential-TOTAL_FORMS').val(parseInt(form_idx) + 1); + } + $(document).ready(function () { - $('#add_more').click(() => { add_input_form() }); + $('#add_more_series').click(() => { add_series_input_form() }); + $('#add_more_differential').click(() => { add_differential_input_form() }); }) @@ -52,8 +59,8 @@ Use this form to create a atlas case. Existing associated image sets can be adde

Series:

Add image sets here. These can only be added once created (they can also be added to cases on creation). - -
+ +
{% for form in series_formset %}
    {{form.non_field_errors}} @@ -63,6 +70,19 @@ Use this form to create a atlas case. Existing associated image sets can be adde {% endfor %}
{{ series_formset.management_form }} +

Differenetial:

+ Add differential here. + +
+ {% for form in case_differential_formset %} +
    + {{form.non_field_errors}} + {{form.errors}} + {{ form.as_ul }} +
+ {% endfor %} +
+ {{ case_differential_formset.management_form }} + {% endblock %} \ No newline at end of file diff --git a/atlas/views.py b/atlas/views.py index 864fa6b3..3b7f1f82 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -173,37 +173,37 @@ class SeriesDelete(RevisionMixin, AuthorOrCheckerRequiredMixin, DeleteView): success_url = reverse_lazy("atlas:series_view") -@login_required -@user_is_author_or_atlas_checker -def case_clone(request, pk): - new_item = get_object_or_404(Case, pk=pk) - new_item.pk = None # autogen a new pk (item_id) - # new_item.name = "Copy of " + new_item.name #need to change uniques - - form = CaseForm(request.POST or None, instance=new_item) - - series_formset = SeriesFormSet() - - if form.is_valid(): - form.instance.author.add(request.user.id) - - # logger.debug(formset.is_valid()) - if series_formset.is_valid(): - response = super().form_valid(form) - series_formset.instance = obj - series_formset.save() - - return response - else: - return super().form_invalid(form) - - context = { - "form": form, - "series_formset": series_formset, - # other context - } - - return render(request, "atlas/case_form.html", context) +# @login_required +# @user_is_author_or_atlas_checker +# def case_clone(request, pk): +# new_item = get_object_or_404(Case, pk=pk) +# new_item.pk = None # autogen a new pk (item_id) +# # new_item.name = "Copy of " + new_item.name #need to change uniques +# +# form = CaseForm(request.POST or None, instance=new_item) +# +# series_formset = SeriesFormSet() +# +# if form.is_valid(): +# form.instance.author.add(request.user.id) +# +# # logger.debug(formset.is_valid()) +# if series_formset.is_valid(): +# response = super().form_valid(form) +# series_formset.instance = obj +# series_formset.save() +# +# return response +# else: +# return super().form_invalid(form) +# +# context = { +# "form": form, +# "series_formset": series_formset, +# # other context +# } +# +# return render(request, "atlas/case_form.html", context) class SeriesCreate(RevisionMixin, LoginRequiredMixin, CreateView): @@ -306,9 +306,14 @@ class AtlasCreateBase(RevisionMixin, LoginRequiredMixin, CreateView): context["series_formset"] = SeriesFormSet( self.request.POST, self.request.FILES ) + context["casedifferential_formset"] = SeriesFormSet( + self.request.POST, self.request.FILES + ) context["series_formset"].full_clean() + context["casedifferential_formset"].full_clean() else: context["series_formset"] = SeriesFormSet() + context["casedifferential_formset"] = SeriesFormSet() return context def form_valid(self, form): @@ -323,10 +328,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 @@ -361,40 +369,41 @@ class AtlasUpdate( # #initial = {'date_of_death': '05/01/2018'} # exclude = [ 'created_date', 'published_date' ] - def get_form_kwargs(self): - kwargs = super(AtlasUpdate, self).get_form_kwargs() - kwargs.update({"user": self.request.user}) - return kwargs - def get_context_data(self, **kwargs): - context = super(AtlasUpdate, self).get_context_data(**kwargs) - if self.request.POST: - context["series_formset"] = SeriesFormSet( - self.request.POST, self.request.FILES, instance=self.object - ) - context["series_formset"].full_clean() - else: - context["series_formset"] = SeriesFormSet(instance=self.object) - return context - - def form_valid(self, form): - - self.object = form.save(commit=False) - self.object.save() - - form.instance.author.add(self.request.user.id) - - context = self.get_context_data(form=form) - series_formset = context["series_formset"] - # logger.debug(formset.is_valid()) - if series_formset.is_valid(): - response = super().form_valid(form) - series_formset.instance = self.object - series_formset.save() - - return response - else: - return super().form_invalid(form) +# def get_form_kwargs(self): +# kwargs = super(AtlasUpdate, self).get_form_kwargs() +# kwargs.update({"user": self.request.user}) +# return kwargs +# +# def get_context_data(self, **kwargs): +# context = super(AtlasUpdate, self).get_context_data(**kwargs) +# if self.request.POST: +# context["series_formset"] = SeriesFormSet( +# self.request.POST, self.request.FILES, instance=self.object +# ) +# context["series_formset"].full_clean() +# else: +# context["series_formset"] = SeriesFormSet(instance=self.object) +# return context +# +# def form_valid(self, form): +# +# self.object = form.save(commit=False) +# self.object.save() +# +# form.instance.author.add(self.request.user.id) +# +# context = self.get_context_data(form=form) +# series_formset = context["series_formset"] +# # logger.debug(formset.is_valid()) +# if series_formset.is_valid(): +# response = super().form_valid(form) +# series_formset.instance = self.object +# series_formset.save() +# +# return response +# else: +# return super().form_invalid(form) class AtlasClone(AtlasCreateBase): @@ -576,8 +585,8 @@ class ConditionAutocomplete(autocomplete.Select2QuerySetView): try: primary = qs.filter(name__icontains=self.q) - #synonyms = qs.filter(name__icontains=self.q, primary_name=False) - #for s in synonyms: + # synonyms = qs.filter(name__icontains=self.q, primary_name=False) + # for s in synonyms: # primary.extend(s.synonym.filter(primary_name=True)) except FieldError: