From 084b140db0327a8994e42507f6c13480c2b1920f Mon Sep 17 00:00:00 2001
From: Bryan Brancotte <bryan.brancotte@pasteur.fr>
Date: Wed, 14 Aug 2019 14:35:03 +0200
Subject: [PATCH] Having field that are required but controlled by js

---
 ippisite/ippidb/forms.py                                | 5 ++++-
 ippisite/ippidb/templates/ProteinDomainComplexForm.html | 7 ++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py
index d06f4169..dba54e33 100644
--- a/ippisite/ippidb/forms.py
+++ b/ippisite/ippidb/forms.py
@@ -269,7 +269,10 @@ class ComplexCompositionForm(forms.Form):
     ppp_copy_nb_per_p = forms.IntegerField(
         label=_('ppp_copy_nb_per_p'),
         required=False,
-        widget=forms.NumberInput(attrs={'class': 'bound-complex-only'}),
+        widget=forms.NumberInput(attrs={
+            'class': 'bound-complex-only',
+            'data-required': True,
+        }),
         validators=[
             MinValueValidator(1),
         ],
diff --git a/ippisite/ippidb/templates/ProteinDomainComplexForm.html b/ippisite/ippidb/templates/ProteinDomainComplexForm.html
index 65ff55ee..7dd07868 100644
--- a/ippisite/ippidb/templates/ProteinDomainComplexForm.html
+++ b/ippisite/ippidb/templates/ProteinDomainComplexForm.html
@@ -10,14 +10,15 @@ function update_partner_bound_fields_visibility(){
     console.log($(source).val());
     let partner = $(source).val() == "Partner";
     if(partner){
-      console.log(partner);
       $(source).closest(".formset-item").find(".partner-complex-only").parent().show();
+      $(source).closest(".formset-item").find(".partner-complex-only[data-required]").prop("required",true);
       $(source).closest(".formset-item").find(".bound-complex-only").parent().hide();
-      console.log("test:",$(source).closest(".formset-item").parent().find(".complex-type").val());
+      $(source).closest(".formset-item").find(".bound-complex-only[data-required]").prop("required",false);
     }else{
       $(source).closest(".formset-item").find(".partner-complex-only").parent().hide();
+      $(source).closest(".formset-item").find(".partner-complex-only[data-required]").prop("required",false);
       $(source).closest(".formset-item").find(".bound-complex-only").parent().show();
-      console.log("test2:",$(source).closest(".formset-item").parent().find(".complex-type").val());
+      $(source).closest(".formset-item").find(".bound-complex-only[data-required]").prop("required",true);
     }
 }
 $(document).ready(function(){
-- 
GitLab