From 8109b94dbd04386595672a83d4afc87a4c79d0c8 Mon Sep 17 00:00:00 2001 From: Rachel TORCHET <racheltorchet@users.noreply.github.com> Date: Mon, 26 Mar 2018 13:39:03 +0200 Subject: [PATCH] Update ProteinDomainComplex step with view and css Former-commit-id: d664306b26e4fc5534c0683d98b3c88596d20627 --- ippisite/ippidb/forms.py | 53 ++++++------------- ippisite/ippidb/static/css/admin-session.css | 15 ++++-- ippisite/ippidb/static/css/main.css | 15 +++--- .../templates/ProteinDomainComplexForm.html | 22 +++----- ippisite/ippidb/templates/add.html | 2 - ippisite/ippidb/templates/admin-session.html | 2 + ippisite/ippidb/views.py | 10 ++-- 7 files changed, 53 insertions(+), 66 deletions(-) diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py index e588e4b8..f69c0084 100644 --- a/ippisite/ippidb/forms.py +++ b/ippisite/ippidb/forms.py @@ -4,7 +4,7 @@ from django.db import models from django.core.exceptions import ValidationError from django.core.validators import RegexValidator -from .models import Bibliography, Protein, ProteinDomainComplex, Ppi, PpiComplex, Compound, RefCompoundBiblio, Symmetry, TestActivityDescription +from .models import Bibliography, Protein, Domain, ProteinDomainComplex, Ppi, PpiComplex, Compound, RefCompoundBiblio, Symmetry, TestActivityDescription from .ws import pdb_entry_exists class IdForm(ModelForm): @@ -89,6 +89,21 @@ class ProteinDomainComplexForm(ModelForm): model=ProteinDomainComplex fields=['protein', 'domain', 'ppc_copy_nb'] +COMPLEX_TYPE = ( + ('Bound', 'Bound'), + ('Partner', 'Partner') +) + +class ComplexCompositionForm(forms.Form): + complex_type=forms.CharField(widget=forms.Select(choices=COMPLEX_TYPE)) + complex_protein=forms.ModelChoiceField(queryset=Protein.objects.all(), required=True) + complex_domain=forms.ModelChoiceField(queryset=Domain.objects.all(), required=True) + ppc_copy_nb=forms.IntegerField(initial=1,required=True) + + def __init__(self,*args,**kwargs): + super(ComplexCompositionForm, self).__init__(*args, **kwargs) + self.fields['complex_protein'].queryset=Protein.objects.filter(pk__in=[569,570]) + class BaseProteinDomainComplexFormSet(BaseModelFormSet): def __init__(self, *args, **kwargs): @@ -111,42 +126,6 @@ class PpiComplexForm(ModelForm): model = PpiComplex fields = ['cc_nb',] -class PpiAndPpiComplexForm (forms.Form): - pdb_id = forms.CharField(label='PDB ID', max_length=4, required=False) - symmetry = forms.ModelChoiceField(queryset=Symmetry.objects.all(), required=True) - cc_nb = forms.IntegerField( - label='Number of copies of the complex in the PPI', - initial=1, - ) - - def __init__(self, *args, **kwargs): - super(PpiAndPpiComplexForm,self).__init__(*args, **kwargs) - self.fields['symmetry'].initial = Symmetry.objects.all().first() - - def save(self, commit=True): - ppi = Ppi.objects.create( - pdb_id=self.cleaned_data['pdb_id'], - symmetry=self.cleaned_data['symmetry'], - ) - ppi_complex = PpiComplex.objects.create( - cc_nb=self.cleaned_data['cc_nb'], - ppi=ppi, - ) - if commit: - ppi.save() - ppi_complex.save() - - return dict( - ppi=ppi, - ppi_complex=ppi_complex, - ) - #instance = super(MyForm, self).save(commit=False) - #instance.flag1 = 'flag1' in self.cleaned_data['multi_choice'] # etc - #if commit: - #instance.save() - #return instance - pass - class CompoundForm(ModelForm): diff --git a/ippisite/ippidb/static/css/admin-session.css b/ippisite/ippidb/static/css/admin-session.css index d9616431..2881b1f2 100644 --- a/ippisite/ippidb/static/css/admin-session.css +++ b/ippisite/ippidb/static/css/admin-session.css @@ -56,11 +56,9 @@ Description: IPPI-DB Theme .step_title{ font-family: "PlayfairDisplayRed"; font-size: 25px; - padding-bottom: 10px; } .step_step { - padding-bottom: 10px; color: #8D8889; font-size: 15px; font-family: "BrandonGrotesqueReg"; @@ -99,7 +97,8 @@ Description: IPPI-DB Theme } .clear_button { - text-align: center + text-align: center; + padding-top: 10px; } /* IdForm*/ @@ -142,6 +141,7 @@ Description: IPPI-DB Theme .input_field { width:100%; + margin-right: 2px; font-family: "BrandonGrotesqueReg"; } @@ -1052,6 +1052,15 @@ Description: IPPI-DB Theme margin-right: -150px; } +.inline_box_complex_long { + margin: 5px; + padding: 10px; + display: inline-flex; + margin-left: -280px; + margin-right: -280px; +} + + /* Done step */ .last_step { margin-top: 10%; diff --git a/ippisite/ippidb/static/css/main.css b/ippisite/ippidb/static/css/main.css index b24d8b78..65e3e803 100644 --- a/ippisite/ippidb/static/css/main.css +++ b/ippisite/ippidb/static/css/main.css @@ -102,11 +102,12 @@ div.hidden { background-repeat: no-repeat; background-color: #F9F9F9; background-size: cover; + height: 200px; } .logoJum h1 { font-family: "BrandonGrotesqueBlk"; - font-size:81px; + font-size:61px; } .logoJum p { @@ -322,6 +323,7 @@ text-align: center; max-width: 1200px; background-color: #fff; font-family: "BrandonGrotesqueBld"; + margin-bottom: 0px; } .breadNav-label { @@ -420,10 +422,10 @@ font-size: 42px; } .page-title { - margin: 0px 0px 30px; + margin: 0px 0px 20px; text-transform: uppercase; text-align: center; - font-size: 42px; + font-size: 32px; line-height: 1.2; color: #1D1D1B; font-family:"BrandonGrotesqueBlk"; @@ -431,7 +433,7 @@ font-size: 42px; .page-intro { color:#414144; - font-size: 20px; + font-size: 16px; font-weight: normal; line-height: 1.4; text-align: justify; @@ -444,7 +446,6 @@ font-size: 42px; } .page-intro ul li { - font-size: 20px; font-weight: normal; line-height: 1.4; } @@ -606,13 +607,13 @@ font-size: 42px; .form_div { font-family: "BrandonGrotesqueReg"; - margin: 20px auto; + margin: 10px auto; width: 43% } #Form{ border: 1px solid #E3E9EB; - padding: 15px; + padding: 10px; min-height: 150px; text-align: center; min-height: 350px; diff --git a/ippisite/ippidb/templates/ProteinDomainComplexForm.html b/ippisite/ippidb/templates/ProteinDomainComplexForm.html index 2416f188..dab073f0 100644 --- a/ippisite/ippidb/templates/ProteinDomainComplexForm.html +++ b/ippisite/ippidb/templates/ProteinDomainComplexForm.html @@ -33,24 +33,18 @@ {% if wizard.form.forms %} {{ wizard.form.management_form }} {% for form in wizard.form.forms %} - {% if forloop.first %} - <div class="inline_box_complex"> - <div class="inline_label">Bound - {% else %} - <div class="inline_box_complex"> - <div class="inline_label">Partner - {% endif %} - 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> + {% endfor %} + {% else %} + <div class="inline_box_complex_long"> + <div class="input_field"> {{ form.complex_type }}</div> + <div class="input_field"> {{ form.complex_protein }}</div> + <div class="input_field"> {{ form.complex_domain }}</div> + <div class="input_field"> {{ form.ppc_copy_nb }}</div> + </div> {% endif %} <input type="hidden" name="ippi_wizard-current_step" value="ProteinDomainComplexForm" id="id_ippi_wizard-current_step"/> </table> - <input class="submit_button" type="submit" name="{{ wizard.steps.next }}" value="{% trans "Next step" %}"/> - <div class="clear_button"><a href="{% url 'ippidb' %}?reset" class="clear_all">Clear all</a></div> </form> </div> </div> diff --git a/ippisite/ippidb/templates/add.html b/ippisite/ippidb/templates/add.html index b2489c5f..389d23e5 100644 --- a/ippisite/ippidb/templates/add.html +++ b/ippisite/ippidb/templates/add.html @@ -47,8 +47,6 @@ <li> Its ID number (e.g PubMed ID), </li> <li> And a reference PDB code that contains the structure of the macromolecular complex of the PPI target for which you have data. </li> </ul> - E.g for a heterodimer, the structure needs to contain both partners. This will help you to describe the PPI architecture. </br> - Most of the information you need to provide will come both from the PDB structure, and the bibliographic source. The rest will be automatically filled and will just require your approval. </div> <div class="color-wrap"> <div class="region region-content"> diff --git a/ippisite/ippidb/templates/admin-session.html b/ippisite/ippidb/templates/admin-session.html index 21d659b6..68811903 100644 --- a/ippisite/ippidb/templates/admin-session.html +++ b/ippisite/ippidb/templates/admin-session.html @@ -46,6 +46,8 @@ <div class="view-content"> </div> + <input class="submit_button" type="submit" name="{{ wizard.steps.next }}" value="{% trans "Next step" %}"/> + <div class="clear_button"><a href="{% url 'ippidb' %}?reset" class="clear_all">Clear all</a></div> </div> </div> </div> diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index 94eea8be..c7b559cc 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -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, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, ProteinDomainComplexFormSet, PpiForm, PpiComplexForm, ProteinFormSet,TestsForm, CompoundForm, CompoundFormSet +from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ComplexCompositionForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, ProteinDomainComplexFormSet, PpiForm, PpiComplexForm, ProteinFormSet,TestsForm, CompoundForm, CompoundFormSet from .models import Protein, Bibliography, ProteinDomainComplex, ProteinDomainBoundComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi, Disease, Taxonomy from .ws import get_pdb_uniprot_mapping @@ -59,7 +59,7 @@ FORMS = [("IdForm", ippidb.forms.IdForm), ("PDBForm", ippidb.forms.PDBForm), ("ProteinDomainComplexTypeForm", ippidb.forms.ProteinDomainComplexTypeForm), - ("ProteinDomainComplexForm", ippidb.forms.ProteinDomainComplexFormSet), + ("ProteinDomainComplexForm", ippidb.forms.ComplexCompositionForm), ("PpiForm", ippidb.forms.PpiForm), ("CompoundForm", ippidb.forms.CompoundFormSet), ("TestsForm", ippidb.forms.TestsForm),] @@ -130,13 +130,17 @@ class IppiWizard(NamedUrlSessionWizardView): p.save() protein_ids.append(p.id) data['pks'] = protein_ids - print("test",data) return data def get_form_instance(self, step): if self.steps.current == 'BibliographyForm': pk = self.storage.get_step_data('IdForm').get('pk') return Bibliography.objects.get(pk=pk) + if self.steps.current == 'ProteinDomainComplexForm': + print("blablabla", self.storage.get_step_data('PDBForm').get('pks')) + pks = self.storage.get_step_data('PDBForm').get('pks') + print("blablabla", self.storage.get_step_data('PDBForm').get('pks')) + return Protein.objects.filter(id__in=pks) if self.steps.current == 'ProteinDomainComplexTypeForm': print("blablabla", self.storage.get_step_data('PDBForm').get('pks')) pks = self.storage.get_step_data('PDBForm').get('pks') -- GitLab