Skip to content
Snippets Groups Projects
Commit 88cda8ba authored by Hervé  MENAGER's avatar Hervé MENAGER
Browse files

Merge branch 'master' of https://gitlab.pasteur.fr/hub/iPPIDB

Former-commit-id: 8c2a8fc0227d332ac9a1ec8f3a64cd16320455b6
parents eebeef8d 2b89ddbf
No related branches found
No related tags found
No related merge requests found
......@@ -4,9 +4,11 @@ from django.db import models
from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator
from .models import Bibliography, Protein, Domain, ProteinDomainComplex, Ppi, PpiComplex, Compound, RefCompoundBiblio, Symmetry, TestActivityDescription
from .models import *
from .ws import pdb_entry_exists
""" Step 1 : IdForm """
class IdForm(ModelForm):
class Meta:
model = Bibliography
......@@ -16,6 +18,7 @@ class IdForm(ModelForm):
'id_source': forms.TextInput(attrs={'placeholder': 'ID'}),
}
""" Step 2 : BibliographyForm """
class BibliographyForm(ModelForm):
class Meta:
model = Bibliography
......@@ -29,7 +32,7 @@ class BibliographyForm(ModelForm):
}
""" Step 3 : PDBForm """
def validate_pdb_exists(value):
if not(pdb_entry_exists(value)):
raise ValidationError(
......@@ -58,6 +61,8 @@ class ProteinForm(ModelForm):
ProteinFormSet = modelformset_factory(
Protein, exclude=('recommended_name_long', 'short_name'), extra=0)
""" Step 4 : ProteinDomainComplexTypeForm aka. Architecture """
TYPE_COMPLEX = (
('inhibited', 'Inhibited'),
('stabilized', 'Stabilized'),
......@@ -80,9 +85,11 @@ TYPE_CHOICES = (
class ProteinDomainComplexTypeForm(forms.Form):
complexChoice=forms.CharField(label="PPI Complex Type", widget=forms.Select(choices=TYPE_COMPLEX))
complexType=forms.CharField(widget=forms.RadioSelect(choices=TYPE_CHOICES))
complexChoice=forms.CharField(label="PPI Complex Type", widget=forms.Select(choices=TYPE_COMPLEX))
complexType=forms.CharField(widget=forms.RadioSelect(choices=TYPE_CHOICES))
""" Step 5 : ProteinDomainComplexForm aka. Composition """
class ProteinDomainComplexForm(ModelForm):
class Meta:
......@@ -108,21 +115,28 @@ class ComplexCompositionForm(forms.Form):
ComplexCompositionFormSet = formset_factory(ComplexCompositionForm, extra=2)
formset= ComplexCompositionFormSet()
print(formset.is_valid())
#print(formset.is_valid())
""" Step 6 : PpiForm """
class PpiForm(ModelForm):
class Meta:
model = Ppi
fields = ['pdb_id', 'symmetry']
fields = ['pdb_id','symmetry','pockets_nb']
class PpiComplexForm(ModelForm):
class Meta:
model = PpiComplex
fields = ['cc_nb',]
fields = ['cc_nb']
class PpiAndComplexForm(forms.Form):
pdb_id=forms.CharField(widget=forms.TextInput())
symmetry=forms.ModelChoiceField(queryset=Symmetry.objects.all(), required=True)
pockets_nb=forms.IntegerField(initial=1,required=True)
cc_nb=forms.IntegerField(initial=1,required=True)
""" Step 7 : CompoundForm """
class CompoundForm(ModelForm):
class Meta:
......@@ -147,19 +161,25 @@ class BaseCompoundFormSet(BaseFormSet):
def add_fields(self, form, index):
super(BaseCompoundFormSet, self).add_fields(form, index)
form.fields["compound_name"] = forms.CharField(widget=forms.TextInput(attrs={'placeholder':'Name in the publication','required':'required'}))
form.fields["molecule"] = forms.CharField(widget=forms.Select(choices=TYPE_MOLECULE))
form.fields["molecule"] = forms.CharField(widget=forms.RadioSelect(choices=TYPE_MOLECULE))
form.fields["molecule_comp"] = forms.CharField(widget=forms.TextInput(attrs={'placeholder':'Molecule composition', 'required':'required'}))
CompoundFormSet = formset_factory(CompoundForm, formset=BaseCompoundFormSet, max_num=500, can_delete=True)
formset = CompoundFormSet()
class TestsForm(ModelForm):
class Meta:
model=TestActivityDescription
fields=['test_name','test_type','test_modulation_type', 'cell_line']
#CompoundFormSet = modelformset_factory(
# Compound, exclude=('mddr_compound',), extra=0)
""" Step 8 : TestsForm """
class TestsForm(forms.Form):
activityDesc_cell_line=forms.ModelChoiceField(queryset=CellLine.objects.all(), required=True)
activityDesc_ppi=forms.CharField(widget=forms.TextInput())
activityDesc_nb_active_compound=forms.IntegerField(initial=1,required=True)
activityDesc_test_modulation_type=forms.ModelChoiceField(queryset=TestActivityDescription.objects.all(), required=True)
activityDesc_test_name=forms.CharField(widget=forms.TextInput())
activityDesc_type=forms.ModelChoiceField(queryset=TestActivityDescription.objects.all(), required=True)
cytotoxDesc_cell_line=forms.ModelChoiceField(queryset=CellLine.objects.all(), required=True)
cytotoxDesc_compound_concentration=forms.CharField(widget=forms.TextInput())
cytotoxDesc_test_name=forms.CharField(widget=forms.TextInput())
pkDesc_organism=forms.ModelChoiceField(queryset=Taxonomy.objects.all(), required=True)
pkDesc_administration_mode=forms.CharField(widget=forms.TextInput())
pkDesc_dose=forms.IntegerField(initial=1,required=True)
pkDesc_dose_interval=forms.IntegerField(initial=1,required=True)
pkDesc_test_name=forms.CharField(widget=forms.TextInput())
......@@ -176,6 +176,11 @@ Description: IPPI-DB Theme
margin-bottom: 5px;
}
.compound_input input{
width: 100%;
padding: 5px;
}
#compound_mol {
overflow: hidden;
display: flex;
......
......@@ -52,12 +52,14 @@
</div>
{% endfor %}
</div>
<div id="molecule_comp_{{ form.molecule.id_for_label }}">
<div class="compound_input" id="molecule_comp_{{ form.molecule.id_for_label }}">
{{form.molecule_comp}}
</div>
<div id="ck-button-long" class="compound_input">
<label>{{ form.is_macrocycle}}<span>{{ form.is_macrocycle.label }}</span></label>
</div>
<div id="ck-button-long" class="submit_button"> Add compound
</div>
</div>
{% endfor %}
</div>
......@@ -67,7 +69,7 @@
{% endif %}
<input type="hidden" name="ippi_wizard-current_step" value="CompoundForm" id="id_ippi_wizard-current_step"/>
</table>
<input type="submit" value="{% trans "Next step" %}"/>
<input class="submit_button" type="submit" value="{% trans "Next step" %}"/>
</form>
</div>
</div>
......
......@@ -34,12 +34,14 @@
{% if wizard.form.forms %}
{% for form in wizard.form.forms %}
Test
{{ form }}
{% endfor %}
{% else %}
<div class="inline_box_complex">
<div class="inline_label"> PPI: </div>
<div class="input_field">{{ wizard.form.pdb_id }}</div>
<div class="input_field">{{ wizard.form.pockets_nb}}</div>
<div class="inline_field">{{ wizard.form.cc_nb }}</div>
<div class="inline_field">{{ wizard.form.symmetry }}</div>
</div>
......
......@@ -4,7 +4,7 @@ from django.shortcuts import render
from django.http import HttpResponseRedirect, Http404
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from formtools.wizard.views import SessionWizardView, NamedUrlSessionWizardView
from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ComplexCompositionForm, ComplexCompositionFormSet, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, PpiComplexForm, ProteinFormSet,TestsForm, CompoundForm, CompoundFormSet
from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ComplexCompositionForm, ComplexCompositionFormSet, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, PpiComplexForm, PpiAndComplexForm, ProteinFormSet,TestsForm, CompoundForm, CompoundFormSet
from .models import Protein, Bibliography, ProteinDomainComplex, ProteinDomainBoundComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi, Disease, Taxonomy, LeLleBiplotData
from .ws import get_pdb_uniprot_mapping
......@@ -60,7 +60,7 @@ FORMS = [("IdForm", ippidb.forms.IdForm),
("ProteinDomainComplexTypeForm",
ippidb.forms.ProteinDomainComplexTypeForm),
("ProteinDomainComplexForm", ippidb.forms.ComplexCompositionFormSet),
("PpiForm", ippidb.forms.PpiForm),
("PpiForm", ippidb.forms.PpiAndComplexForm),
("CompoundForm", ippidb.forms.CompoundFormSet),
("TestsForm", ippidb.forms.TestsForm),]
......@@ -90,7 +90,7 @@ class IppiWizard(NamedUrlSessionWizardView):
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')
context['pdb']=self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id')
context['pdb_id']=self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id')
return context
def get_form_initial(self, step):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment