diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py index 412314e2c107b76e3b93748732f912c72d4b1104..40138e8542147049ca69b542cd65e345012962c7 100644 --- a/ippisite/ippidb/forms.py +++ b/ippisite/ippidb/forms.py @@ -7,17 +7,29 @@ from django.core.validators import RegexValidator from .models import Bibliography, Protein, ProteinDomainComplex, Ppi, PpiComplex from .ws import pdb_entry_exists +class IdForm(ModelForm): + class Meta: + model = Bibliography + fields = ['source','id_source'] + widgets = { + 'source' : forms.RadioSelect, + 'id_source': forms.TextInput(attrs={'placeholder': 'ID'}), + } class BibliographyForm(ModelForm): - class Meta: model = Bibliography - fields = ['source', 'id_source', 'cytotox', 'in_silico', 'in_vitro', 'in_vivo', 'in_cellulo', 'pharmacokinetic', 'xray'] + exclude = ['biblio_year'] widgets = { - 'source': forms.RadioSelect, - 'id_source': forms.TextInput(attrs={'placeholder': 'ID'}), + 'source': forms.TextInput(attrs={'readonly':'readonly'}), + 'id_source': forms.TextInput(attrs={'readonly':'readonly'}), + 'title': forms.TextInput(attrs={'readonly':'readonly'}), + 'journal_name': forms.TextInput(attrs={'readonly':'readonly'}), + 'authors_list': forms.TextInput(attrs={'readonly':'readonly'}), } + + def validate_pdb_exists(value): if not(pdb_entry_exists(value)): raise ValidationError( @@ -76,13 +88,13 @@ class ProteinDomainComplexForm(ModelForm): class Meta: model = ProteinDomainComplex - fields = ['protein','domain'] + fields = ['protein','domain','ppc_copy_nb'] - def __init__(self, id, *args, **kwargs): + """def __init__(self, id, *args, **kwargs): super(ProteinDomainComplexForm, self).__init__(*args, **kwargs) self.fields['protein'].queryset = ProteinDomainComplex.objects.filter(id=id) self.fields['domain'].queryset = ProteinDomainComplex.objects.filter(id=id) - +""" class PpiForm(ModelForm): diff --git a/ippisite/ippidb/static/css/ippidb.css b/ippisite/ippidb/static/css/ippidb.css index c15578b667fb45bd477dff178704991370f61bfa..02add5d9edd146ac5d677460aee6c3d7d7ba25e6 100644 --- a/ippisite/ippidb/static/css/ippidb.css +++ b/ippisite/ippidb/static/css/ippidb.css @@ -163,6 +163,10 @@ div.tabs { text-align: center; } +div.hidden { + display: none; +} + .locale-block { float: right; margin-left: 10px; @@ -543,10 +547,6 @@ font-size: 42px; line-height: 1.4; } -.color-wrap { - width:80%; -} - table { width:100%; } @@ -641,6 +641,13 @@ display:block; height: 500px; } +.boxs { + margin-top: 50px; + position: relative; + width: auto; + height: auto; +} + .box__inner { position: absolute; min-width: 49%; @@ -786,7 +793,7 @@ body { #id_IdForm-source label span{ display: inline-block; - width: 130px; + width: 164px; background-color: #E8E0E0; color: #8D8888; text-align: center; @@ -821,6 +828,12 @@ body { padding: 10px; } +.publi_title{ + margin-left: -300px; + margin-right: -300px; + margin-bottom: 20px; +} + #ck-button { margin: 4px; float:left; @@ -877,8 +890,6 @@ body { #id_ProteinDomainComplexTypeForm-inhibited { overflow: hidden; - width: 600px; - padding-bottom: 5px; display: flex; } @@ -889,13 +900,13 @@ body { .imageBack_Inhib_Hetero2-merAB label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Inhibited/Hetero2-merAB_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -932,13 +943,13 @@ body { .imageBack_Inhib_Homo2-merA2 label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Inhibited/Homo2-merA2_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -973,13 +984,13 @@ body { .imageBack_Inhib_Custom label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Inhibited/Custom_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1013,7 +1024,6 @@ body { #id_ProteinDomainComplexTypeForm-stabilized { overflow: hidden; - padding-bottom: 5px; display: flex; flex-wrap: wrap; } @@ -1024,13 +1034,13 @@ body { .imageBack_Stab_Hetero2-merAB label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Hetero2-merAB_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1066,13 +1076,13 @@ body { .imageBack_Stab_Homo2-merA2 label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Homo2-merA2_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1108,13 +1118,13 @@ body { .imageBack_Stab_Homo-Like2-merA2 label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Homo-Like2-merA2_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1150,13 +1160,13 @@ body { .imageBack_Stab_Homo3-merA3 label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Homo3-merA3_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1192,13 +1202,13 @@ body { .imageBack_Stab_Homo3-merA3inhibitedA2-dimer label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Homo3-merA3inhibitedA2-dimer_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1234,13 +1244,13 @@ body { .imageBack_Stab_Homo4-merA4 label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Homo4-merA4_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1276,13 +1286,13 @@ body { .imageBack_Stab_Ring-Like3-merA3 label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Ring-Like3-merA3_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1318,13 +1328,13 @@ body { .imageBack_Stab_Ring-Like5-merA5 label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Ring-Like5-merA5_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1361,13 +1371,13 @@ body { .imageBack_Stab_Custom label span{ display: inline-block; - width: 180px; + width: 214px; text-align: center; background-color: #FFFFFF; background-image: url('/static/images/PPITypes/Stabilized/Custom_Apo.png'); background-position: center; background-repeat: no-repeat; - height: 180px; + height: 214px; font-size: 12px; } @@ -1449,6 +1459,36 @@ body { margin-right: -150px; } +/* Done step */ +.last_step { + margin-top: 10%; +} + +.add_new { + margin-top: 5px; + border-radius: 0px; + background-color: #2d96fa; + border: none; + color: #fff; + margin: 0 auto; + width: 43%; +} + +.add_new a { + color: #FFF; + text-decoration: none; +} + +.add_new a:hover { + color: #FFF; + text-decoration: none; +} + +.add_new a:visited { + color: #FFF; + text-decoration: none; +} + button, input, select, textarea { line-height: inherit; font-family: "BrandonGrotesqueReg"; @@ -1480,7 +1520,7 @@ button, input, select, textarea { } #step li a, #step li a:hover, #step li a:focus { - width: 188.8px; + width: 196.5px; background-color: #E3E9EB; color:#8D8888; font-family: "PlayfairDisplayReg"; diff --git a/ippisite/ippidb/static/js/ippidb.js b/ippisite/ippidb/static/js/ippidb.js index 3eb4bf470e1c1e216959ad2afb707018900eb117..e954707fc331193167e07d3e24e7c61e172fbb9d 100644 --- a/ippisite/ippidb/static/js/ippidb.js +++ b/ippisite/ippidb/static/js/ippidb.js @@ -6,13 +6,13 @@ $(document).ready(function(){ $("select").change(function(){ $(this).find("option:selected").each(function(){ if($(this).attr("value")=="inhibited"){ - $(".box").not(".inhibited").hide(); + $(".boxs").not(".inhibited").hide(); $(".inhibited").show(); }else if($(this).attr("value")=="stabilized"){ - $(".box").not(".stabilized").hide(); + $(".boxs").not(".stabilized").hide(); $(".stabilized").show(); }else{ - $(".box").hide(); + $(".boxs").hide(); } }); }).change(); diff --git a/ippisite/ippidb/templates/BibliographyForm.html b/ippisite/ippidb/templates/BibliographyForm.html index cf11a4bdc0cfaab6b1d7baa645d80eb1fda86876..38e1c79b6f8fd8d4885a898dfdfb44564a43d5e0 100644 --- a/ippisite/ippidb/templates/BibliographyForm.html +++ b/ippisite/ippidb/templates/BibliographyForm.html @@ -4,6 +4,7 @@ {% block form %} <div id="step"> <ul> + <li><a href='/admin-session/add/IdForm/'>{% trans "ID" %}</a></li> <li><a class="active" href='/admin-session/add/BibliographyForm/'>{% trans "Bibliography" %}</a></li> <li><a href='/admin-session/add/PDBForm/'>{% trans "PDB id" %}</a></li> <li><a href='/admin-session/add/ProteinDomainComplexTypeForm/'>{% trans "Architecture" %}</a></li> @@ -13,7 +14,7 @@ </div> <div id="Form"> <div class="step_desc"> - <p> Please provide a valid ID for your bibliographic source, either a PubMed ID or WIPO ID. This ID should correspond to a bibliographic source in its final format. Therefore, PubMed articles in « Just Accepted » format should not be used as a source of data as they are not considered the official version of record. </p> + <p> According to the ID you gave, here are the informations that we collect. Could you complete informations contained in it. </p> </div> <div class="form_div"> <form action="" method="post"> @@ -30,19 +31,21 @@ {{ form }} {% endfor %} {% else %} - <div> - <div id="id_IdForm-source"> - {% for radio in wizard.form.source %} - {{ radio.tag }} - <label for="{{ radio.id_for_label }}"> - <span>{{ radio.choice_label }}</span> - </label> - {% endfor %} - </div> - {{ wizard.form.id_source}} + <div class="publi_title"> + {% if source == "PM" %} + Publication on PubMed - PMID {{ wizard.form.id_source.value }}<br/> + <a target="_blank" href="https://www.ncbi.nlm.nih.gov/pubmed/{{ wizard.form.id_source.value }}"><b>{{ wizard.form.title.value }}</b><br/> + <i>{{ wizard.form.authors_list.value }}</i><br/> + {{ wizard.form.journal_name.value }}<br/></a> + {% endif %} + </div> + <div class="hidden"> + {{ wizard.form.source }} + {{ wizard.form.id_source }} + {{ wizard.form.title }} + {{ wizard.form.authors_list }} + {{ wizard.form.journal_name }} </div> - <a> Get infos </a> - <div id="publi_infos"> blablabla publi <p> This publication contains :<br/></p> <div id="ck-button"> <label> diff --git a/ippisite/ippidb/templates/PDBForm.html b/ippisite/ippidb/templates/PDBForm.html index 701676fe34d90ad6d1b87df8a46bd08b05c43fc4..f34af0c648fde40e75f89da8968dc29d2b48188f 100644 --- a/ippisite/ippidb/templates/PDBForm.html +++ b/ippisite/ippidb/templates/PDBForm.html @@ -4,6 +4,7 @@ {% block form %} <div id="step"> <ul> + <li><a href='/admin-session/add/IdForm/'>{% trans "ID" %}</a></li> <li><a href='/admin-session/add/BibliographyForm/'>{% trans "Bibliography" %}</a></li> <li><a class="active" href='/admin-session/add/PDBForm/'>{% trans "PDB id" %}</a></li> <li><a href='/admin-session/add/ProteinDomainComplexTypeForm/'>{% trans "Architecture" %}</a></li> diff --git a/ippisite/ippidb/templates/PpiForm.html b/ippisite/ippidb/templates/PpiForm.html index a65384f996fae0d0e53b692e75fdf7afe584b4f4..62fab54626eee2c3b1f743dfb137a21ad9191ccb 100644 --- a/ippisite/ippidb/templates/PpiForm.html +++ b/ippisite/ippidb/templates/PpiForm.html @@ -4,6 +4,7 @@ {% block form %} <div id="step"> <ul> + <li><a href='/admin-session/add/IdForm/'>{% trans "ID" %}</a></li> <li><a href='/admin-session/add/BibliographyForm/'>{% trans "Bibliography" %}</a></li> <li><a href='/admin-session/add/PDBForm/'>{% trans "PDB id" %}</a></li> <li><a href='/admin-session/add/ProteinDomainComplexTypeForm/'>{% trans "Architecture" %}</a></li> diff --git a/ippisite/ippidb/templates/ProteinDomainComplexForm.html b/ippisite/ippidb/templates/ProteinDomainComplexForm.html index 6c28a1af92c6eb612288c438b8d1246e9be4777a..86cd603220c1b26a85f4631084bc4f2650441ed2 100644 --- a/ippisite/ippidb/templates/ProteinDomainComplexForm.html +++ b/ippisite/ippidb/templates/ProteinDomainComplexForm.html @@ -4,6 +4,7 @@ {% block form %} <div id="step"> <ul> + <li><a href='/admin-session/add/IdForm/'>{% trans "ID" %}</a></li> <li><a href='/admin-session/add/BibliographyForm/'>{% trans "Bibliography" %}</a></li> <li><a href='/admin-session/add/PDBForm/'>{% trans "PDB id" %}</a></li> <li><a href='/admin-session/add/ProteinDomainComplexTypeForm/'>{% trans "Architecture" %}</a></li> @@ -22,71 +23,28 @@ {% block custom_form %}{% endblock %} {% if wizard.form.forms %} - {{ wizard.form.management_form }} - {% for form in wizard.form.forms %} - {{ form }} - {% endfor %} - {% else %} - <div class="step_step_desc"> - <p>You have selected a <span style="color:#2d96fa;">{{ complex_type }}</span> that is <span style="color:#2d96fa;">{{ complex_choice }}</span> by the binding of PPI modulator.<br/> - According to this architecture you need to specify:<br/> - </p> - </div> - <div class="inline_box_complex"> - <div class="inline_label"> Bound complex : </div> - <div class="inline_field"> {{ form.protein }}</div> - <div class="inline_field"> {{ form.domain }}</div> - {% if complex_type == "Hetero2merAB" and complex_choice == "inhibited" %} - <div class="inline_field"><div class="PperPocket">1</div></div> - </div> - <div class="inline_box_complex"> - <div class="inline_label"> Partner complex : </div> - <div class="inline_field"> {{ form.protein }}</div> - <div class="inline_field"> {{ form.domain }}</div> - <div class="inline_field"><div class="PperPocket">1</div></div> - {% elif complex_type == "Homo2merA2" and complex_choice == "inhibited" %} - <div class="inline_field"><div class="PperPocket">1</div></div> - {% elif complex_type == "Hetero2merAB" and complex_choice == "stabilized" %} - <div class="inline_field"><div class="PperPocket">1</div></div> - - {% elif complex_type == "Homo2merA2" and complex_choice == "stabilized" %} - <div class="inline_field"><div class="PperPocket">2</div></div> - - {% elif complex_type == "HomoLike2mer" and complex_choice == "stabilized" %} - <div class="inline_field"><div class="PperPocket">1</div></div> - - {% elif complex_type == "Homo3merA3" and complex_choice == "stabilized" %} - <div class="inline_field"><div class="PperPocket">3</div></div> - - {% elif complex_type == "Homo3merA2" and complex_choice == "stabilized" %} - <div class="inline_field"><div class="PperPocket">2</div></div> - </div> - <div class="inline_box_complex"> - <div class="inline_label"> Partner complex : </div> - <div class="inline_field"> {{ form.protein }}</div> - <div class="inline_field"> {{ form.domain }}</div> - <div class="inline_field"><div class="PperPocket">1</div></div> - {% elif complex_type == "Homo4merA4" and complex_choice == "stabilized" %} - <div class="inline_field"><div class="PperPocket">4</div></div> - - {% elif complex_type == "RingHomo3mer" and complex_choice == "stabilized" %} - <div class="inline_field"><div class="PperPocket">3</div></div> - - {% elif complex_type == "RingHomo5mer" and complex_choice == "stabilized" %} - <div class="inline_field"><div class="PperPocket">5</div></div> - - {% else %} - <!--<div class="inline_field"> {{ form.ppc_copy_nb }}</div> --> - </div> - <div class="inline_box_complex"> - <div class="inline_box_complex"> - <div class="inline_label"> Partner complex : </div> - <div class="inline_field"> {{ form.protein }}</div> - <div class="inline_field"> {{ form.domain }}</div> - <!--<div class="inline_field"> {{ form.ppc_copy_nb }}</div> --> - </div> - {% endif %} - </div> + {{ wizard.form.management_form }} + {% for form in wizard.form.forms %} + {{ form }} + {% endfor %} + {% else %} + <div class="step_step_desc"> + <p>You have selected a <span style="color:#2d96fa;">{{ complex_type }}</span> that is <span style="color:#2d96fa;">{{ complex_choice }}</span> by the binding of PPI modulator.<br/> + According to this architecture you need to specify:<br/> + </p> + </div> + <div class="inline_box_complex"> + <div class="inline_label"> Bound complex : </div> + <div class="inline_field"> {{ form.protein }}</div> + <div class="inline_field"> {{ form.domain }}</div> + <div class="inline_field"><div>{{ form.ppc_copy_nb }}</div></div> + </div> + <div class="inline_box_complex"> + <div class="inline_label"> Partner complex : </div> + <div class="inline_field"> {{ form.protein }}</div> + <div class="inline_field"> {{ form.domain }}</div> + <div class="inline_field"><div>{{ form.ppc_copy_nb }}</div></div> + </div> {% endif %} <input type="submit" value="{% trans "Next step" %}"/> diff --git a/ippisite/ippidb/templates/ProteinDomainComplexTypeForm.html b/ippisite/ippidb/templates/ProteinDomainComplexTypeForm.html index 95945d7032f1810dcf6e19b0a1f75976346972c2..13b758dc3d493f7b9cdf2841427fc0ad01a01977 100644 --- a/ippisite/ippidb/templates/ProteinDomainComplexTypeForm.html +++ b/ippisite/ippidb/templates/ProteinDomainComplexTypeForm.html @@ -4,6 +4,7 @@ {% block form %} <div id="step"> <ul> + <li><a href='/admin-session/add/IdForm/'>{% trans "ID" %}</a></li> <li><a href='/admin-session/add/BibliographyForm/'>{% trans "Bibliography" %}</a></li> <li><a href='/admin-session/add/PDBForm/'>{% trans "PDB id" %}</a></li> <li><a class="active" href='/admin-session/add/ProteinDomainComplexTypeForm/'>{% trans "Architecture" %}</a></li> @@ -36,7 +37,7 @@ If your PPI complex is not among them, please select « Custom » {{ pdb }}</p> <option value="stabilized">Stabilized</option> </select>--> </div> - <div id="type_style" class="inhibited box"> + <div id="type_style" class="inhibited boxs"> <div id="type_title"> <h1>Inhibited</h1> </div> @@ -62,7 +63,7 @@ If your PPI complex is not among them, please select « Custom » {{ pdb }}</p> {% endfor %} </div> </div> - <div id="type_style" class="stabilized box"> + <div id="type_style" class="stabilized boxs"> <div id="type_title"> <h1>Stabilized</h1> </div> diff --git a/ippisite/ippidb/templates/done.html b/ippisite/ippidb/templates/done.html index 4db4edb7f4702febb2f2fcc056408093272c653f..8bdd5fe769724813001ce94e7aa90692c0f0d65b 100644 --- a/ippisite/ippidb/templates/done.html +++ b/ippisite/ippidb/templates/done.html @@ -4,19 +4,22 @@ {% block form %} <div id="step"> <ul> + <li><a href='/admin-session/add/IdForm/'>{% trans "ID" %}</a></li> <li><a href='/admin-session/add/BibliographyForm/'>{% trans "Bibliography" %}</a></li> <li><a href='/admin-session/add/PDBForm/'>{% trans "PDB id" %}</a></li> <li><a href='/admin-session/add/ProteinDomainComplexTypeForm/'>{% trans "Architecture" %}</a></li> <li><a href='/admin-session/add/ProteinDomainComplexForm/'>{% trans "Composition" %}</a></li> - <li><a href='/admin-session/add/PPIForm/'>{% trans "PPI" %}</a></li> + <li><a class="active" href='/admin-session/add/PPIForm/'>{% trans "PPI" %}</a></li> </ul> </div> <div id="Form"> - <div class="form_div"> - CONGRATULATIONS!!! New publication added - {% for form in form_data %} - {{ form.id_source }} - {% endfor %} + <div class="last_step"> + <div class="form_div"> + CONGRATULATIONS!!! New publication added + </div> + <div class="add_new"> + <a href="http://localhost:8000/admin-session/add/IdForm/">Add new content</a> + </div> </div> </div> {% endblock %} diff --git a/ippisite/ippidb/urls.py b/ippisite/ippidb/urls.py index 45047aeebe518febb6e06284da8c4ef1c13c02ee..0d502b8d7f981584d4b2a5e38141efbe4f0a1dde 100644 --- a/ippisite/ippidb/urls.py +++ b/ippisite/ippidb/urls.py @@ -1,6 +1,6 @@ from django.conf.urls import include, url from . import views -from ippidb.forms import BibliographyForm, PDBForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm +from ippidb.forms import IdForm,BibliographyForm, PDBForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm from ippidb.views import IppiWizard, FORMS ippidb_wizard = IppiWizard.as_view(FORMS, diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index b8243ab0c440db6e5ab998d797fd860427219cbe..2dc8e49860b084145d3685bd52c4a53ecf182167 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -3,7 +3,7 @@ import ippidb from django.shortcuts import render from django.http import HttpResponseRedirect, Http404 from formtools.wizard.views import SessionWizardView, NamedUrlSessionWizardView -from .forms import BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, ProteinFormSet +from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, ProteinFormSet from .models import Protein, Bibliography, ProteinDomainComplex, RefCompoundBiblio, TestActivityDescription from .ws import get_pdb_uniprot_mapping @@ -50,14 +50,16 @@ def tutorials(request): def adminSession(request): return render(request, 'admin-session.html') -FORMS = [("BibliographyForm", ippidb.forms.BibliographyForm), +FORMS = [("IdForm", ippidb.forms.IdForm), + ("BibliographyForm", ippidb.forms.BibliographyForm), ("PDBForm", ippidb.forms.PDBForm), ("ProteinDomainComplexTypeForm", ippidb.forms.ProteinDomainComplexTypeForm), ("ProteinDomainComplexForm", ippidb.forms.ProteinDomainComplexForm), ("PpiForm", ippidb.forms.PpiForm),] -TEMPLATES = {"BibliographyForm": "BibliographyForm.html", +TEMPLATES = {"IdForm": "IdForm.html", + "BibliographyForm": "BibliographyForm.html", "PDBForm": "PDBForm.html", "ProteinDomainComplexTypeForm": "ProteinDomainComplexTypeForm.html", "ProteinDomainComplexForm": "ProteinDomainComplexForm.html", @@ -69,12 +71,14 @@ class IppiWizard(NamedUrlSessionWizardView): def get_context_data(self, **kwargs): context=super(IppiWizard, self).get_context_data(**kwargs) + if self.steps.current == 'BibliographyForm': + context['id_source']=self.storage.get_step_data('IdForm').get('IdForm-id_source') + context['source']=self.storage.get_step_data('IdForm').get('IdForm-source') + print(self.storage.get_step_data('IdForm').get('IdForm-id_source')) if self.steps.current == 'ProteinDomainComplexForm': context['complex_choice']=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexChoice') context['complex_type']=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexType') context['pdb']=self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id') - print("test2", self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id')) - if self.steps.current == 'PpiForm': context['complex_choice']=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexChoice') context['complex_type']=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexType') @@ -84,10 +88,32 @@ class IppiWizard(NamedUrlSessionWizardView): def get_form_initial(self, step): initial = {} - # If at second step, add image path to initial data for canvas field + # Pre-fill fields with data from a previous form + if step == 'ProteinDomainComplexForm': + complex_type=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexType') + complex_choice=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexChoice') + if complex_type == "Hetero2merAB" and complex_choice == "inhibited": + initial['ppc_copy_nb'] = 1 + elif complex_type == "Homo2merA2" and complex_choice == "inhibited": + initial['ppc_copy_nb'] = 1 + elif complex_type == "Hetero2merAB" and complex_choice == "stabilized": + initial['ppc_copy_nb'] = 1 + elif complex_type == "Homo2merA2" and complex_choice == "stabilized": + initial['ppc_copy_nb'] = 2 + elif complex_type == "HomoLike2mer" and complex_choice == "stabilized": + initial['ppc_copy_nb'] = 2 + elif complex_type == "Homo3merA3" and complex_choice == "stabilized": + initial['ppc_copy_nb'] = 3 + elif complex_type == "Homo3merA2" and complex_choice == "stabilized": + initial['ppc_copy_nb'] = 2 + elif complex_type == "Homo4merA4" and complex_choice == "stabilized": + initial['ppc_copy_nb'] = 4 + elif complex_type == "RingHomo3mer" and complex_choice == "stabilized": + nitial['ppc_copy_nb'] = 3 + elif complex_type == "RingHomo5mer" and complex_choice == "stabilized": + initial['ppc_copy_nb'] = 5 if step == 'PpiForm': initial['pdb_id'] = self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id') - return self.initial_dict.get(step, initial) def process_step(self, form): @@ -97,17 +123,16 @@ class IppiWizard(NamedUrlSessionWizardView): when appropriate """ data = super(IppiWizard, self).process_step(form).copy() - if self.steps.current == 'Bibliography': + if self.steps.current=='IdForm': form.instance.autofill() - if self.steps.current == 'Bibliography': + if self.steps.current in ['IdForm', 'Bibliography']: form.instance.save() data['pk'] = form.instance.id if self.steps.current == 'PDBForm': - pdb_ids = [form['pdb_id'] for form in form.cleaned_data] + pdb_id = form.cleaned_data['pdb_id'] uniprot_ids = [] protein_ids = [] - for pdb_id in pdb_ids: - uniprot_ids += get_pdb_uniprot_mapping(pdb_id) + uniprot_ids += get_pdb_uniprot_mapping(pdb_id) for uniprot_id in uniprot_ids: try: p = Protein.objects.get(uniprot_id=uniprot_id) @@ -118,15 +143,17 @@ class IppiWizard(NamedUrlSessionWizardView): p.save() protein_ids.append(p.id) data['pks'] = protein_ids + print(data) return data def get_form_instance(self, step): - if self.steps.current == 'PDBForm': - pk = self.storage.get_step_data('BibliographyForm').get('pk') + if self.steps.current == 'BibliographyForm': + pk = self.storage.get_step_data('IdForm').get('pk') return Bibliography.objects.get(pk=pk) - if self.steps.current == 'ProteinForm': + if self.steps.current == 'ProteinDomainComplexTypeForm': + print(self.storage.get_step_data('PDBForm').get('pks')) pks = self.storage.get_step_data('PDBForm').get('pks') - print(Protein.objects.filter(id__in=pks)) + print(self.storage.get_step_data('PDBForm').get('pks')) return Protein.objects.filter(id__in=pks) def get_template_names(self):