From 0c04ba2c05fb14495f45fd1f71c479fc2856da4f Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Fri, 30 Apr 2021 14:56:53 +0200
Subject: [PATCH] SubmissionForm: hide submitted_to and acad_field

---
 submissions/forms.py                          | 45 +++++++++----------
 .../submissions/submission_form.html          | 17 +------
 submissions/views.py                          |  4 +-
 3 files changed, 23 insertions(+), 43 deletions(-)

diff --git a/submissions/forms.py b/submissions/forms.py
index e44271d7b..c77bfcbd5 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -241,8 +241,8 @@ class SubmissionPrefillForm(forms.Form):
 
     def get_prefill_data(self):
         form_data = {
-            'acad_field': self.journal.college.acad_field.id,
-            'submitted_to': self.journal.id
+            'acad_field': self.journal.college.acad_field,
+            'submitted_to': self.journal
         }
         if self.thread_hash:
             form_data['thread_hash'] = self.thread_hash
@@ -397,14 +397,13 @@ class SubmissionForm(forms.ModelForm):
     """
     Form to submit a new (re)Submission.
     """
-    acad_field = forms.ModelChoiceField(
-        queryset=AcademicField.objects.all(),
-        widget=autocomplete.ModelSelect2(
-            url='/ontology/acad_field-autocomplete?exclude=multidisciplinary'
-        ),
-        label='Academic field',
-        disabled=True
-    )
+    # acad_field = forms.ModelChoiceField(
+    #     queryset=AcademicField.objects.all(),
+    #     # widget=autocomplete.ModelSelect2(
+    #     #     url='/ontology/acad_field-autocomplete?exclude=multidisciplinary'
+    #     # ),
+    #     label='Academic field',
+    # )
     specialties = forms.ModelMultipleChoiceField(
         queryset=Specialty.objects.all(),
         widget=autocomplete.ModelSelect2Multiple(
@@ -443,6 +442,8 @@ class SubmissionForm(forms.ModelForm):
             'referees_flagged',
         ]
         widgets = {
+            'submitted_to': forms.HiddenInput(),
+            'acad_field': forms.HiddenInput(),
             'is_resubmission_of': forms.HiddenInput(),
             'thread_hash': forms.HiddenInput(),
             'arxiv_link': forms.TextInput(
@@ -500,25 +501,21 @@ class SubmissionForm(forms.ModelForm):
             del self.fields['author_comments']
             del self.fields['list_of_changes']
 
-        # Select Journal instances.
-        # self.fields['submitted_to'].queryset = Journal.objects.active().submission_allowed()
-        # self.fields['submitted_to'].label = 'Journal: submit to'
-        self.fields['submitted_to'].widget.attrs.update({ 'disabled': True})
-
         # Restrict choice of specialties to those of relevant AcademicField
         if kwargs['initial'].get('acad_field', None):
             self.fields['specialties'].widget.url = \
-                self.fields['specialties'].widget.url + '?acad_field_id=' + str(kwargs['initial'].get('acad_field'))
+                self.fields['specialties'].widget.url + '?acad_field_id=' + str(kwargs['initial'].get('acad_field').id)
 
         # Proceedings submission fields
-        qs = self.fields['proceedings'].queryset.open_for_submission()
-        self.fields['proceedings'].queryset = qs
-        self.fields['proceedings'].empty_label = None
-        if not qs.exists():
-            # No proceedings issue to submit to, so adapt the form fields
-            self.fields['submitted_to'].queryset = self.fields['submitted_to'].queryset.exclude(
-                doi_label__contains='Proc')
+        if 'Proc' not in kwargs['initial'].get('submitted_to', None).doi_label:
             del self.fields['proceedings']
+            pass
+        else:
+            qs = self.fields['proceedings'].queryset.open_for_submission()
+            self.fields['proceedings'].queryset = qs
+            self.fields['proceedings'].empty_label = None
+            if not qs.exists():
+                del self.fields['proceedings']
 
     def is_resubmission(self):
         return self.is_resubmission_of is not None
@@ -612,7 +609,7 @@ class SubmissionForm(forms.ModelForm):
         submission.submitted_by = self.requested_by.contributor
 
         # Save identifiers
-        url = None
+        url = ''
         if self.preprint_server == 'arXiv':
             url = self.cleaned_data.get('arxiv_link', '')
         elif self.preprint_server == 'ChemRxiv':
diff --git a/submissions/templates/submissions/submission_form.html b/submissions/templates/submissions/submission_form.html
index e30a97018..e961b59d3 100644
--- a/submissions/templates/submissions/submission_form.html
+++ b/submissions/templates/submissions/submission_form.html
@@ -14,7 +14,7 @@
 {% block content %}
   <div class="row">
     <div class="col-12">
-      <h1 class="highlight">Submit a manuscript to SciPost</h1>
+      <h1 class="highlight">Submit a manuscript to {{ journal.name }}</h1>
     </div>
 
     <div class="col-12">
@@ -59,19 +59,4 @@
 
 {% block footer_script %}
   {{ form.media }}
-  <script nonce="{{ request.csp_nonce }}">
-   $(document).ready(function(){
-       $("#id_proceedings").parents('.form-group').hide()
-       $('select#id_submitted_to').on('change', function (){
-           var selection = $(this).val();
-           $("#id_proceedings").parents('.form-group').hide()
-
-           switch(selection){
-               case "{{ id_SciPostPhysProc }}":
-		   $("#id_proceedings").parents('.form-group').show()
-		   break;
-           }
-       }).trigger('change');
-   });
-  </script>
 {% endblock %}
diff --git a/submissions/views.py b/submissions/views.py
index db2364fa9..7e3f44b5f 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -230,8 +230,7 @@ class RequestSubmissionView(LoginRequiredMixin, PermissionRequiredMixin, CreateV
 
     def get_context_data(self, *args, **kwargs):
         context = super().get_context_data(*args, **kwargs)
-        context['id_SciPostPhys'] = get_object_or_404(Journal, doi_label='SciPostPhys').id
-        context['id_SciPostPhysProc'] = get_object_or_404(Journal, doi_label='SciPostPhysProc').id
+        context['journal'] = get_object_or_404(Journal, doi_label=self.kwargs.get('journal_doi_label'))
         return context
 
     def get_form_kwargs(self):
@@ -512,7 +511,6 @@ def submission_detail(request, identifier_w_vn_nr):
         'is_author': is_author,
         'is_author_unchecked': is_author_unchecked,
     })
-    print(context)
     return render(request, 'submissions/submission_detail.html', context)
 
 
-- 
GitLab