From 28534a69456087a059a69ced49710ca389fb7936 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr>
Date: Tue, 17 Oct 2017 17:02:42 +0200
Subject: [PATCH] more work on ippidb "bibliography" access

Former-commit-id: eef52ce3740000c3bafa10c9f5d565c65d663a41
---
 .../{ppi_card.html => biblio_card.html}       | 20 +++++--------
 ippisite/ippidb/templates/biblio_list.html    | 28 +++++++++++++++++++
 ippisite/ippidb/templates/bool_value.html     |  1 +
 ippisite/ippidb/urls.py                       |  3 +-
 ippisite/ippidb/views.py                      | 12 +++++---
 5 files changed, 46 insertions(+), 18 deletions(-)
 rename ippisite/ippidb/templates/{ppi_card.html => biblio_card.html} (82%)
 create mode 100644 ippisite/ippidb/templates/biblio_list.html
 create mode 100644 ippisite/ippidb/templates/bool_value.html

diff --git a/ippisite/ippidb/templates/ppi_card.html b/ippisite/ippidb/templates/biblio_card.html
similarity index 82%
rename from ippisite/ippidb/templates/ppi_card.html
rename to ippisite/ippidb/templates/biblio_card.html
index 64fb070d..a5fe82f8 100644
--- a/ippisite/ippidb/templates/ppi_card.html
+++ b/ippisite/ippidb/templates/biblio_card.html
@@ -7,12 +7,6 @@
 <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">
@@ -37,13 +31,13 @@
               <div class="card">
                 <div class="card-body">
                 <ul class="list-group">
-                    <li class="list-group-item">Cytotoxicity data: {% if bibliography.cytotox %}&check;{% else %}&cross;{% endif %}</li>
-                    <li class="list-group-item"><i>in silico</i> study: {% if bibliography.in_silico %}&check;{% else %}&cross;{% endif %}</li>
-                    <li class="list-group-item"><i>in vitro</i> study: {% if bibliography.in_vitro %}&check;{% else %}&cross;{% endif %}</li>
-                    <li class="list-group-item"><i>in vivo</i> study: {% if bibliography.in_vivo %}&check;{% else %}&cross;{% endif %}</li>
-                    <li class="list-group-item"><i>in cellulo</i> study: {% if bibliography.in_cellulo %}&check;{% else %}&cross;{% endif %}</li>
-                    <li class="list-group-item">pharmacokinetic study: {% if bibliography.pharmacokinetic %}&check;{% else %}&cross;{% endif %}</li>
-                    <li class="list-group-item">X-ray study: {% if bibliography.x_ray %}&check;{% else %}&cross;{% endif %}</li>
+                    <li class="list-group-item">Cytotoxicity data: {% include "bool_value.html" with bool_value=bibliography.cytotox %}</li>
+                    <li class="list-group-item"><i>in silico</i> study {% include "bool_value.html" with bool_value=bibliography.in_silico %}</li>
+                    <li class="list-group-item"><i>in vitro</i> study: {% include "bool_value.html" with bool_value=bibliography.in_vitro %}</li>
+                    <li class="list-group-item"><i>in vivo</i> study: {% include "bool_value.html" with bool_value=bibliography.in_vivo %}</li>
+                    <li class="list-group-item"><i>in cellulo</i> study: {% include "bool_value.html" with bool_value=bibliography.in_cellulo %}</li>
+                    <li class="list-group-item">pharmacokinetic study: {% include "bool_value.html" with bool_value=bibliography.pharmacokinetic %}</li>
+                    <li class="list-group-item">X-ray study: {% include "bool_value.html" with bool_value=bibliography.xray %}</li>
                 </ul>
             </div>
             </div>
diff --git a/ippisite/ippidb/templates/biblio_list.html b/ippisite/ippidb/templates/biblio_list.html
new file mode 100644
index 00000000..833a9cd9
--- /dev/null
+++ b/ippisite/ippidb/templates/biblio_list.html
@@ -0,0 +1,28 @@
+{% extends "base.html" %}
+
+    
+{% block title %}bibliographies{% endblock %}
+
+{% block content %}
+<div id="mainnav">
+</div>
+<div class="inner-wrap">
+	<div id="main-wrapper" class="page">
+		<div id="main">
+			<div id="content" class="main-content">
+					<main role="main">
+{% if bibliographies %}
+    <ul>
+    {% for biblio in bibliographies %}
+        <li><a href="/biblio/{{ biblio.source }}{{ biblio.id_source}}">{{ biblio.title }}</a></li>
+    {% endfor %}
+    </ul>
+{% else %}
+    <p>No bibliographies available.</p>
+{% endif %}					
+                    </main><!-- .site-main -->
+			</div>
+		</div><!-- div main -->
+	</div>
+</div>
+{% endblock %}
diff --git a/ippisite/ippidb/templates/bool_value.html b/ippisite/ippidb/templates/bool_value.html
new file mode 100644
index 00000000..909cd33e
--- /dev/null
+++ b/ippisite/ippidb/templates/bool_value.html
@@ -0,0 +1 @@
+{% if bool_value is True %}<span class="text-success">&check;</span>{% else %}<span class="text-secondary">&cross;</span>{% endif %}
diff --git a/ippisite/ippidb/urls.py b/ippisite/ippidb/urls.py
index 9228d00d..db30318d 100644
--- a/ippisite/ippidb/urls.py
+++ b/ippisite/ippidb/urls.py
@@ -19,7 +19,8 @@ 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'^biblio/(?P<source>\w{2})(?P<id_source>\d+)$', views.biblio_card, name='biblio_card'),
+    url(r'^biblio/$', views.biblio_list, name='biblio_list'),
     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 7e8e889e..1412c96d 100644
--- a/ippisite/ippidb/views.py
+++ b/ippisite/ippidb/views.py
@@ -128,11 +128,15 @@ class IppiWizard(NamedUrlSessionWizardView):
             'form_data': [form.cleaned_data for form in form_list],
         })
 
-def ppi_card(request, biblio_id):
+def biblio_list(request):
+    bibliographies = Bibliography.objects.all()
+    return render(request, 'biblio_list.html', {'bibliographies':bibliographies})    
+
+def biblio_card(request, source, id_source):
     try:
-        bibliography = Bibliography.objects.get(pk=biblio_id)
+        bibliography = Bibliography.objects.get(source=source, id_source=id_source)
     except Bibliography.DoesNotExist:
-        raise Http404("No bibliography data for %s" % biblio_id)
+        raise Http404("No bibliography data for %s:%s" % (source, id_source))
     refs = RefCompoundBiblio.objects.filter(bibliography_id = bibliography.id)
-    return render(request, 'ppi_card.html', {'bibliography': bibliography,
+    return render(request, 'biblio_card.html', {'bibliography': bibliography,
                                              'compound_biblios': refs}) 
-- 
GitLab