From ca4c06278d1cf4e170939d09ce3ff19e849051dc Mon Sep 17 00:00:00 2001
From: Rachel TORCHET <racheltorchet@users.noreply.github.com>
Date: Fri, 16 Jun 2017 17:36:08 +0200
Subject: [PATCH] Change ProteinForm into a ModelFormSet to vizualize multiple
 protein forms infos based on a PDBid

Former-commit-id: 27ae7360f18eb52e0e420f331681945c6ac9b142
---
 ippisite/ippidb/forms.py                        |  7 ++++++-
 ippisite/ippidb/static/css/ippidb.css           |  7 +++++++
 ippisite/ippidb/templates/BibliographyForm.html | 12 +++++++-----
 ippisite/ippidb/templates/IdForm.html           |  2 +-
 ippisite/ippidb/templates/ProteinForm.html      |  7 ++++++-
 ippisite/ippidb/views.py                        |  4 ++--
 6 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py
index d82cedd0..057191a1 100644
--- a/ippisite/ippidb/forms.py
+++ b/ippisite/ippidb/forms.py
@@ -1,4 +1,4 @@
-from django.forms import ModelForm
+from django.forms import ModelForm,modelformset_factory
 from django import forms
 from django.db import models
 from .models import Bibliography, Protein, ProteinDomainComplex, Ppi, PpiComplex
@@ -26,6 +26,7 @@ class BibliographyForm(ModelForm):
 class PDBForm(forms.Form):
 	pdb_id = forms.CharField(label="PDB ID",max_length=4, widget=forms.TextInput(attrs={'placeholder': 'e.g 4HHB'}))
 
+
 class ProteinForm(ModelForm):
 	class Meta:
 		model = Protein
@@ -36,6 +37,10 @@ class ProteinForm(ModelForm):
         	'entry_name' : forms.TextInput(attrs={'placeholder':'e.g KMT2A_HUMAN'}),
         }
 
+ProteinFormSet = modelformset_factory(Protein, exclude=('recommended_name_long', 'short_name'))
+formset=ProteinFormSet()
+for form in formset:
+	print(form.as_table())
 
 ARCHI_TYPE = (
     ('inhibited', 'Inhibited'),
diff --git a/ippisite/ippidb/static/css/ippidb.css b/ippisite/ippidb/static/css/ippidb.css
index 7b421bec..b28f4ac7 100644
--- a/ippisite/ippidb/static/css/ippidb.css
+++ b/ippisite/ippidb/static/css/ippidb.css
@@ -614,8 +614,15 @@ form {
     overflow: hidden;
     white-space: nowrap;
     padding: 5px;
+    width: 80%;
+    margin: 2px;
 }
 
+.readonlyfields label{
+    display: block;
+    width: 150px;
+    float: left;
+}
 
 div label input {
    margin-right:100px;
diff --git a/ippisite/ippidb/templates/BibliographyForm.html b/ippisite/ippidb/templates/BibliographyForm.html
index 0186c973..fa4e709b 100644
--- a/ippisite/ippidb/templates/BibliographyForm.html
+++ b/ippisite/ippidb/templates/BibliographyForm.html
@@ -31,13 +31,15 @@ Please check that the information below is correct (Title, Authors etc. ) and an
 	    {{ form }}
 	{% endfor %}
 {% else %}
-	<div id="ck-button">{{ wizard.form.source.label }} {{ wizard.form.source }}</div>
-	<div id="ck-button">{{ wizard.form.id_source.label }} {{ wizard.form.id_source }}</div>
-	<div id="ck-button">{{ wizard.form.title.label }} {{ wizard.form.title }}</div>
-	<div id="ck-button">{{ wizard.form.journal_name.label }} {{ wizard.form.journal_name }}</div>
+	<div class="readonlyfields">
+	{{ wizard.form.source }}<br/>
+	{{ wizard.form.id_source }}<br/>
+	{{ wizard.form.title }}<br/>
+	{{ wizard.form.journal_name }}<br/>
+	</div>
 	<div id="ck-button">
 	<label>
-      <input type="checkbox" value="True"><span>{{ wizard.form.cytotox.label }}</span>
+      <input type="checkbox"><span>{{ wizard.form.cytotox.label }}</span>
     </label>
     <label>
       <input type="checkbox"><span>{{ wizard.form.in_silico.label }}</span>
diff --git a/ippisite/ippidb/templates/IdForm.html b/ippisite/ippidb/templates/IdForm.html
index 4d47f3b0..403dbe3e 100644
--- a/ippisite/ippidb/templates/IdForm.html
+++ b/ippisite/ippidb/templates/IdForm.html
@@ -32,7 +32,7 @@
 	    {{ form }}
 	{% endfor %}
 {% else %}
-	{{ wizard.form }}
+	{{ wizard.form}}
 {% endif %}
 </table>
 	<input type="submit" value="{% trans "Next step" %}"/>
diff --git a/ippisite/ippidb/templates/ProteinForm.html b/ippisite/ippidb/templates/ProteinForm.html
index 9609d2b6..bebf3dba 100644
--- a/ippisite/ippidb/templates/ProteinForm.html
+++ b/ippisite/ippidb/templates/ProteinForm.html
@@ -30,7 +30,12 @@
 	    {{ form }}
 	{% endfor %}
 {% else %}
-	{{ wizard.form }}
+	{{ formset.management_form }}
+    {% for form in formset %}
+        {% for field in form %}
+            {{ field.label_tag }} {{ field }}
+        {% endfor %}
+    {% endfor %}
 {% endif %}
 </table>
 	<input type="submit" value="{% trans "Next step" %}"/>
diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py
index e4b4b049..b6d1e782 100644
--- a/ippisite/ippidb/views.py
+++ b/ippisite/ippidb/views.py
@@ -2,7 +2,7 @@ import ippidb
 from django.shortcuts import render
 from django.http import HttpResponseRedirect
 from formtools.wizard.views import SessionWizardView,NamedUrlSessionWizardView
-from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm
+from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, ProteinFormSet
 
 def index(request):
     return render(request, 'index.html')
@@ -22,7 +22,7 @@ def adminSession(request):
 FORMS = [("IdForm", ippidb.forms.IdForm),
          ("BibliographyForm", ippidb.forms.BibliographyForm),
          ("PDBForm", ippidb.forms.PDBForm),
-         ("ProteinForm",ippidb.forms.ProteinForm),
+         ("ProteinForm",ippidb.forms.ProteinFormSet),
          ("ProteinDomainComplexTypeForm", ippidb.forms.ProteinDomainComplexTypeForm),
          ("ProteinDomainComplexForm", ippidb.forms.ProteinDomainComplexForm),
          ("PpiForm", ippidb.forms.PpiForm)]
-- 
GitLab