From b7a3250bda92439b8aa7b7c8e33e98eddaac85a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20M=C3=A9nager?= <herve.menager@pasteur.fr>
Date: Tue, 14 Apr 2020 12:10:50 +0200
Subject: [PATCH] avoid crashing PCA and LE-LLE views if no data available

---
 ippisite/ippidb/templates/about-le-lle.html |  7 ++++++-
 ippisite/ippidb/templates/about-pca.html    |  6 ++++++
 ippisite/ippidb/views/about.py              | 14 ++++++++++----
 3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/ippisite/ippidb/templates/about-le-lle.html b/ippisite/ippidb/templates/about-le-lle.html
index b22b7944..5527f56d 100644
--- a/ippisite/ippidb/templates/about-le-lle.html
+++ b/ippisite/ippidb/templates/about-le-lle.html
@@ -6,7 +6,7 @@
 {% block pagetitle %}Efficiencies: iPPI-DB biplot LE versus LLE{% endblock%}
 
 {% block view_content %}
-
+{% if le_lle_biplot_data %}
 <div class="row">
 	<div class="col-md-12">
 		<canvas id="le_lle_biplot"></canvas>
@@ -21,4 +21,9 @@
 <script>
 drawCompoundsBiplotChart('le_lle_biplot', preparePerFamilyBiplotData({{ le_lle_biplot_data | safe }}), 'pharmacology', {'legend':{'position':'right'}});
 </script>
+{% else %}
+  <div class="alert alert-danger" role="alert">
+	The LE-LLE data are not currently available
+  </div>
+{% endif %}
 {% endblock %}
diff --git a/ippisite/ippidb/templates/about-pca.html b/ippisite/ippidb/templates/about-pca.html
index 104fbd10..ec381448 100644
--- a/ippisite/ippidb/templates/about-pca.html
+++ b/ippisite/ippidb/templates/about-pca.html
@@ -5,6 +5,7 @@
 {% block pagetitle %}PHYSICOCHEMISTRY{% endblock%}
 
 {% block view_content %}
+{% if pca_biplot_data %}
 <div class="row">
 	<canvas id="pca_biplot"></canvas>
 </div>
@@ -17,4 +18,9 @@
 <script>
 	drawCompoundsBiplotChart('pca_biplot', preparePerFamilyBiplotData({{ pca_biplot_data | safe }}.data), 'physicochemical', { 'legend': { 'position': 'right' } });
 </script>
+{% else %}
+  <div class="alert alert-danger" role="alert">
+	The PCA data are not currently available
+  </div>
+{% endif %}
 {% endblock %}
\ No newline at end of file
diff --git a/ippisite/ippidb/views/about.py b/ippisite/ippidb/views/about.py
index 6833ee73..726f1e0a 100644
--- a/ippisite/ippidb/views/about.py
+++ b/ippisite/ippidb/views/about.py
@@ -149,7 +149,10 @@ def about_pharmacology(request):
 
 
 def about_le_lle(request):
-    context = {"le_lle_biplot_data": LeLleBiplotData.objects.get().le_lle_biplot_data}
+    try:
+        context = {"le_lle_biplot_data": LeLleBiplotData.objects.get().le_lle_biplot_data}
+    except LeLleBiplotData.DoesNotExist:
+        context = {}
     return render(request, "about-le-lle.html", context=context)
 
 
@@ -249,7 +252,10 @@ def about_physicochemistry(request):
 
 
 def about_pca(request):
-    context = {"pca_biplot_data": PcaBiplotData.objects.get().pca_biplot_data}
-    pca_biplot = json.loads(PcaBiplotData.objects.get().pca_biplot_data)
-    context["pca_biplot_cc"] = pca_biplot["correlation_circle"]
+    try:
+        context = {"pca_biplot_data": PcaBiplotData.objects.get().pca_biplot_data}
+        pca_biplot = json.loads(PcaBiplotData.objects.get().pca_biplot_data)
+        context["pca_biplot_cc"] = pca_biplot["correlation_circle"]
+    except PcaBiplotData.DoesNotExist:
+        context = {}
     return render(request, "about-pca.html", context=context)
-- 
GitLab