diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py index c89307d7d35ac780450b70186257398a7e408752..830c95f0040561ceee94e92919a42a7b9e50e383 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 e4d17a2fd3acc82fcba74ee7d465f969d0b049b9..88b9d7a406fa3f081ff5c2a805a90793681a08e7 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 c1348605fd121f3157a513007d247502222a3d4e..6294d05a5341497630dcbca98bbcd60085346ecc 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 30f6b5da752555a00c59d84ad69cbb75ecfc3fb5..d44eae8bd5e458bb751fdae6eeafc8adad3c886a 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 0000000000000000000000000000000000000000..9d9b12485069597ba7903a7d6bb0412a28f4d21f --- /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 82df36de8cb3866c8d31301829743b07849ecdb4..a5554854070651b4a1fea0598b55e9582a1c835e 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 e4f6363b293a9f158cf5d52c6c586a5f11672a66..f59bdf31c8fa31701c564ef8423859f2249d7638 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 03fc0ff163fbe3ecdc3a09e958de77ec8c9c3409..2676c12cb2e3afe631e9c10d72b8815a994bcbf3 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: