From 5825febbdd9ee4a7f1fae0a50b6478ca23a50042 Mon Sep 17 00:00:00 2001 From: Rachel TORCHET <racheltorchet@users.noreply.github.com> Date: Tue, 31 Jul 2018 10:39:07 +0200 Subject: [PATCH] Update navigation and ProteinDomainComplexForm to take parameters from previous step into account Former-commit-id: eb05cc7225b71022a8eea0b92aa48423faf62951 --- ippisite/ippidb/forms.py | 12 ++-- ippisite/ippidb/static/css/main.css | 5 +- .../templates/ProteinDomainComplexForm.html | 1 + ippisite/ippidb/templates/base.html | 3 + ippisite/ippidb/templates/contribute.html | 64 +++++++++++++++++++ ippisite/ippidb/urls.py | 1 + ippisite/ippidb/views.py | 33 +++++----- ippisite/ippidb/ws.py | 2 + 8 files changed, 95 insertions(+), 26 deletions(-) create mode 100644 ippisite/ippidb/templates/contribute.html diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py index c89307d7..830c95f0 100644 --- a/ippisite/ippidb/forms.py +++ b/ippisite/ippidb/forms.py @@ -109,16 +109,12 @@ class ComplexCompositionForm(forms.Form): def __init__(self,pks=None,*args,**kwargs): super(ComplexCompositionForm, self).__init__(*args, **kwargs) - """ TODO : Filter based on submited PDBid""" - #pks = kwargs.pop("prot") - print("<<<<<<<<<<") - print(args,kwargs) - print(">>>>>>>>>>") - self.fields['complex_protein'].queryset=Protein.objects.filter(pk__in=[569,570]) - self.fields['complex_domain'].queryset=Domain.objects.filter(pk__in=[73,73]) + if pks is not None: + self.fields['complex_protein'].queryset = Protein.objects.filter(pk__in=pks) + self.fields['complex_domain'].queryset = Domain.objects.all() -ComplexCompositionFormSet = formset_factory(ComplexCompositionForm, extra=3) +ComplexCompositionFormSet = formset_factory(ComplexCompositionForm, extra=2) formset= ComplexCompositionFormSet() #print(formset.is_valid()) diff --git a/ippisite/ippidb/static/css/main.css b/ippisite/ippidb/static/css/main.css index e4d17a2f..88b9d7a4 100644 --- a/ippisite/ippidb/static/css/main.css +++ b/ippisite/ippidb/static/css/main.css @@ -144,10 +144,9 @@ div.hidden { } .main-nav{ - margin-left: auto; - margin-right: auto; + margin:0 auto; position: relative; - width: 600px; + width: max-content; text-align: center; height: 35px; } diff --git a/ippisite/ippidb/templates/ProteinDomainComplexForm.html b/ippisite/ippidb/templates/ProteinDomainComplexForm.html index c1348605..6294d05a 100644 --- a/ippisite/ippidb/templates/ProteinDomainComplexForm.html +++ b/ippisite/ippidb/templates/ProteinDomainComplexForm.html @@ -52,6 +52,7 @@ </div> </div> {% endfor %} + {% endif %} </table> <input type="hidden" name="ippi_wizard-current_step" value="ProteinDomainComplexForm" id="id_ippi_wizard-current_step"/> diff --git a/ippisite/ippidb/templates/base.html b/ippisite/ippidb/templates/base.html index 30f6b5da..d44eae8b 100644 --- a/ippisite/ippidb/templates/base.html +++ b/ippisite/ippidb/templates/base.html @@ -199,6 +199,9 @@ <a href="/tutorials">Tutorials</a> </li> <li> + <a href="/contribute">Contribute</a> + </li> + <li> <a href="/admin-session">Admin</a> </li> </ul> diff --git a/ippisite/ippidb/templates/contribute.html b/ippisite/ippidb/templates/contribute.html new file mode 100644 index 00000000..9d9b1248 --- /dev/null +++ b/ippisite/ippidb/templates/contribute.html @@ -0,0 +1,64 @@ +{% extends "index.html" %} + + +{% block title %}inhibitors of Protein-Protein Interaction Database{% endblock %} +{% block extra_css %} + <link rel="stylesheet" href="/static/css/admin-session.css"> +{% endblock %} + +{% block content %} +<div id="mainnav"> + <nav class="secondary-nav"> + <div class="inner-wrap"> + <ul> + <li> + <a href="/queries">View Content</a> + </li> + <li> + <a href="/admin-session/add/IdForm">Add New Content</a> + </li> + <li> + <a href="/admin-session/update">Update Content</a> + </li> + </ul> + </div> + </nav> +</div> +<div class="inner-wrap"> + <nav class="breadcrumb breadNav" role="navigation"> + <div class="breadNav-label">You are here</div> + <div aria-labelledby="breadNav-label"> + {% block breadcrumb %}{{block.super}}Admin{% endblock %} + </div> + </nav> + <div id="main-wrapper" class="page"> + <div id="main"> + <div id="content" class="main-content"> + <div class="section"> + <main role="main"> + <h1 class="page-title"> CONTRIBUTE </h1> + <div class="tabs"></div> + <div class="main__inner"> + <div class="region region-content"> + <div class="page-intro"> + </div> + <div class="color-wrap"> + <div class="region region-content"> + <div class="block block-system block-system-main"> + <div class="content"> + <div class="view-content"> + + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </main><!-- .site-main --> + </div> + </div> + </div><!-- div main --> + </div> +</div> +{% endblock %} diff --git a/ippisite/ippidb/urls.py b/ippisite/ippidb/urls.py index 82df36de..a5554854 100644 --- a/ippisite/ippidb/urls.py +++ b/ippisite/ippidb/urls.py @@ -14,6 +14,7 @@ urlpatterns = [ url(r'^compounds/$', views.compound_list, name='compound_list'), url(r'^compounds/(?P<compound_id>\w+)$', views.compound_card, name='compound_card'), url(r'^tutorials$', views.tutorials, name='tutorials'), + url(r'^contribute$', views.contribute, name='contribute'), url(r'^admin-session$', views.adminSession, name='admin-session'), url(r'^admin-session/add/(?P<step>.+)/$', ippidb_wizard, name='ippidb_step'), diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index e4f6363b..f59bdf31 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -10,7 +10,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin from formtools.wizard.views import SessionWizardView, NamedUrlSessionWizardView import ippidb -from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ComplexCompositionForm, ComplexCompositionFormSet, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, PpiComplexForm, PpiAndComplexForm, ProteinFormSet,TestsForm, CompoundForm, CompoundFormSet +from .forms import * from .models import Protein, Bibliography, ProteinDomainComplex, ProteinDomainBoundComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi, Disease, Taxonomy, LeLleBiplotData, PcaBiplotData, PpiFamily from .ws import get_pdb_uniprot_mapping @@ -30,6 +30,8 @@ def general(request): def tutorials(request): return render(request, 'tutorials.html') +def contribute(request): + return render(request, 'contribute.html') def adminSession(request): return render(request, 'admin-session.html') @@ -37,6 +39,8 @@ def adminSession(request): def update (request): return render(request, 'update.html') +#---------------------------------------------- CONTRIBUTE SESSION - WIZARD -------------------------------------------# + FORMS = [("IdForm", ippidb.forms.IdForm), ("BibliographyForm", ippidb.forms.BibliographyForm), ("PDBForm", ippidb.forms.PDBForm), @@ -76,19 +80,22 @@ class IppiWizard(LoginRequiredMixin, NamedUrlSessionWizardView): context['pdb_id']=self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id') return context - def get_form_initial(self, step): - # Works for form.forms - initial = {} - # Pre-fill fields with data from a previous form + def get_form_kwargs(self, step): + # change args pass to a form + kwargs = super().get_form_kwargs() if step == 'ProteinDomainComplexForm': pks = self.storage.get_step_data('PDBForm').get('pks') - #initial['pks']=pks - #return {'pks':pks} - #form = ComplexCompositionForm(prot=pks) + # print("test pks: ",pks) + kwargs['form_kwargs']={'pks':pks} + return kwargs + + def get_form_initial(self, step): + # Works for form.forms + # change value pass to a form + initial = super().get_form_initial(step) if step == 'PpiForm': initial['pdb_id'] = self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id') - print(self.initial_dict) - return self.initial_dict.get(step, initial) + return initial def process_step(self, form): """ @@ -124,11 +131,6 @@ class IppiWizard(LoginRequiredMixin, NamedUrlSessionWizardView): 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') @@ -143,6 +145,7 @@ class IppiWizard(LoginRequiredMixin, NamedUrlSessionWizardView): 'form_data': [form.cleaned_data for form in form_list], }) +#----------------------------------------------------------------------------------------------------------------------# def process_cutoff_value(name, context, request, cutoff_dir='l'): c = context['compounds'] diff --git a/ippisite/ippidb/ws.py b/ippisite/ippidb/ws.py index 03fc0ff1..2676c12c 100644 --- a/ippisite/ippidb/ws.py +++ b/ippisite/ippidb/ws.py @@ -122,6 +122,7 @@ def get_pfam_info(pfam_acc): def get_pdb_uniprot_mapping(pdb_id): + pdb_id = pdb_id.lower() resp = requests.get( 'https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/{}'.format(pdb_id.lower())) uniprot_ids = list(resp.json()[pdb_id]['UniProt'].keys()) @@ -133,6 +134,7 @@ def pdb_entry_exists(pdb_id): resp = requests.get( 'https://www.ebi.ac.uk/pdbe/api/pdb/entry/summary/{}'.format(pdb_id.lower())) # EBI sends back either a 404 or an empty json if the PDB does not exist + print("PDB id:", pdb_id) if not(resp.ok): return False else: -- GitLab