From 88ce1e7de4c91cea9e04f79ba917c8c99737a4fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr> Date: Fri, 13 Oct 2017 17:04:28 +0200 Subject: [PATCH] create first "bibliography access" to the DB Former-commit-id: 4fe2403ad50929281eddcd6202b7c96cb72a3a5e --- ippisite/ippidb/templates/ppi_card.html | 80 +++++++++++++++++++++++++ ippisite/ippidb/urls.py | 1 + ippisite/ippidb/views.py | 14 ++++- 3 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 ippisite/ippidb/templates/ppi_card.html diff --git a/ippisite/ippidb/templates/ppi_card.html b/ippisite/ippidb/templates/ppi_card.html new file mode 100644 index 00000000..64fb070d --- /dev/null +++ b/ippisite/ippidb/templates/ppi_card.html @@ -0,0 +1,80 @@ +{% extends "base.html" %} + + +{% block title %}inhibitors of Protein-Protein Interaction Database{% endblock %} + +{% block content %} +<div id="mainnav"> +</div> +<div class="inner-wrap"> + <nav class="breadcrumb" role="navigation"> + <div id="breadcrumb-label" class="breadcrumb-label">You are here</div> + <div aria-labelledby="breadcrumb-label"> + Fonction Fil d'Arianne + </div> + </nav> + <div id="main-wrapper" class="page"> + <div id="main"> + <div id="content" class="main-content"> + <main role="main"> + <div class="row"> + <div class="col-3"> + <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist"> + <a class="nav-link active" id="v-pills-bib-tab" data-toggle="pill" href="#v-pills-bib" role="tab" aria-controls="v-pills-bib" aria-expanded="true">Bibliography</a> + <a class="nav-link" id="v-pills-comp-tab" data-toggle="pill" href="#v-pills-comp" role="tab" aria-controls="v-pills-comp" aria-expanded="true">Compounds</a> + <a class="nav-link" id="v-pills-target-tab" data-toggle="pill" href="#v-pills-target" role="tab" aria-controls="v-pills-target" aria-expanded="true">Targets</a> + <a class="nav-link" id="v-pills-test-tab" data-toggle="pill" href="#v-pills-test" role="tab" aria-controls="v-pills-test" aria-expanded="true">Tests</a> + </div> + </div> + <div class="col-9"> + <div class="tab-content" id="v-pills-tabContent"> + <div class="tab-pane fade show active" id="v-pills-bib" role="tabpanel" aria-labelledby="v-pills-bib-tab"> + <div class="card"> + <div class="card-body"> + <p><a target="_blank" class="card-link" href="https://www.ncbi.nlm.nih.gov/pubmed/{{ bibliography.id_source }}">{{ bibliography.authors_list }}. {{ authors.biblio_year }}. {{ bibliography.title }} {{ bibliography.journal_name }}. </a></p> + </div> + </div> + <div class="card"> + <div class="card-body"> + <ul class="list-group"> + <li class="list-group-item">Cytotoxicity data: {% if bibliography.cytotox %}✓{% else %}✗{% endif %}</li> + <li class="list-group-item"><i>in silico</i> study: {% if bibliography.in_silico %}✓{% else %}✗{% endif %}</li> + <li class="list-group-item"><i>in vitro</i> study: {% if bibliography.in_vitro %}✓{% else %}✗{% endif %}</li> + <li class="list-group-item"><i>in vivo</i> study: {% if bibliography.in_vivo %}✓{% else %}✗{% endif %}</li> + <li class="list-group-item"><i>in cellulo</i> study: {% if bibliography.in_cellulo %}✓{% else %}✗{% endif %}</li> + <li class="list-group-item">pharmacokinetic study: {% if bibliography.pharmacokinetic %}✓{% else %}✗{% endif %}</li> + <li class="list-group-item">X-ray study: {% if bibliography.x_ray %}✓{% else %}✗{% endif %}</li> + </ul> + </div> + </div> + </div> + <div class="tab-pane fade" id="v-pills-comp" role="tabpanel" aria-labelledby="v-pills-comp-tab"> + {% for compound_biblio in compound_biblios %} + <div class="card"> + <div class="card-body"> + <ul class="list-group"> + <li class="list-group-item">Common name: {{ compound_biblio.compound.common_name }}</li> + <li class="list-group-item">MDDR: <i>TODO</i></li> + <li class="list-group-item">Canonical SMILES: {{ compound_biblio.compound.canonical_smile }}</li> + <li class="list-group-item">IUPAC name: {{ compound_biblio.compound.iupac_name }}</li> + <li class="list-group-item">mentionned as {{ compound_biblio.compound_name }}</li> + </ul> + </div> + </div> + {% endfor %} + </div> + <div class="tab-pane fade" id="v-pills-target" role="tabpanel" aria-labelledby="v-pills-target-tab"> + Target info + </div> + <div class="tab-pane fade" id="v-pills-test" role="tabpanel" aria-labelledby="v-pills-test-tab"> + Tests info + </div> + </div> + </div> + </div> + </main><!-- .site-main --> + </div> + </div><!-- div main --> + </div> +</div> +{% endblock %} diff --git a/ippisite/ippidb/urls.py b/ippisite/ippidb/urls.py index 3cfaacf9..dd5ce175 100644 --- a/ippisite/ippidb/urls.py +++ b/ippisite/ippidb/urls.py @@ -19,6 +19,7 @@ urlpatterns = [ url(r'^query$', views.query, name='query'), url(r'^query/pharma/$', views.pharma, name='pharma'), url(r'^query/chemical/$', views.chemical, name='chemical'), + url(r'^biblio_ppi/(?P<biblio_id>\d+)$', views.ppi_card, name='biblio_ppi_card'), url(r'^tutorials$', views.tutorials, name='tutorials'), url(r'^admin-session$', views.adminSession, name='admin-session'), url(r'^admin-session/add/(?P<step>.+)/$', diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index ec5c4ac8..de3a327a 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -1,11 +1,11 @@ import ippidb from django.shortcuts import render -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, Http404 from formtools.wizard.views import SessionWizardView, NamedUrlSessionWizardView from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, ProteinFormSet, PDBFormSet -from .models import Protein, Bibliography, ProteinDomainComplex +from .models import Protein, Bibliography, ProteinDomainComplex, RefCompoundBiblio from .ws import get_pdb_uniprot_mapping @@ -20,7 +20,6 @@ def about(request): def general(request): return render(request, 'general.html') - def pharmacology(request): return render(request, 'pharmacology.html') @@ -130,3 +129,12 @@ class IppiWizard(NamedUrlSessionWizardView): return render(self.request, '/admin-session/add.html', { 'form_data': [form.cleaned_data for form in form_list], }) + +def ppi_card(request, biblio_id): + try: + bibliography = Bibliography.objects.get(pk=biblio_id) + except Bibliography.DoesNotExist: + raise Http404("No bibliography data for %s" % biblio_id) + refs = RefCompoundBiblio.objects.filter(bibliography_id = bibliography.id) + return render(request, 'ppi_card.html', {'bibliography': bibliography, + 'compound_biblios': refs}) -- GitLab