[odrs-web/oscp] Merge in the distros section into stats



commit 3b135014bae1c2041b2d896be2ce98384e1c3f81
Author: Richard Hughes <richard hughsie com>
Date:   Mon Jul 8 16:07:27 2019 +0100

    Merge in the distros section into stats

 app_data/odrs/templates/default.html |  1 -
 app_data/odrs/templates/distros.html | 32 --------------------------------
 app_data/odrs/templates/stats.html   | 26 ++++++++++++++++++++++++++
 app_data/odrs/tests/odrs_test.py     |  7 ++-----
 app_data/odrs/views_admin.py         | 27 +++++++++------------------
 5 files changed, 37 insertions(+), 56 deletions(-)
---
diff --git a/app_data/odrs/templates/default.html b/app_data/odrs/templates/default.html
index 384a3a7..ca9fbd3 100644
--- a/app_data/odrs/templates/default.html
+++ b/app_data/odrs/templates/default.html
@@ -40,7 +40,6 @@
             <li><a href="{{url_for('.admin_moderator_show_all')}}">Moderators</a></li>
             <li><a href="{{url_for('.admin_taboo_show_all')}}">Taboos</a></li>
             <li><a href="{{url_for('.admin_component_show_all')}}">Components</a></li>
-            <li><a href="{{url_for('.admin_distros')}}">Distributions</a></li>
             <li><a href="{{url_for('.admin_graph_month')}}">Usage</a></li>
             <li><a href="{{url_for('.admin_search')}}">Search</a></li>
 {% endif %}
diff --git a/app_data/odrs/templates/stats.html b/app_data/odrs/templates/stats.html
index d6c5f03..6b89bbc 100644
--- a/app_data/odrs/templates/stats.html
+++ b/app_data/odrs/templates/stats.html
@@ -2,6 +2,10 @@
 {% block title %}Statistics{% endblock %}
 
 {% block content %}
+<script src="Chart.js"></script>
+<script>
+Chart.defaults.global.animation = false;
+</script>
 
 <h2>Web Service Statistics</h2>
 <table class="table table-hover table-responsive">
@@ -83,4 +87,26 @@
 {% endfor %}
 </table>
 
+<h2>Where Reviews Come From</h2>
+<canvas id="reviewsChart" width="900" height="400"></canvas>
+<script>
+var ctx = document.getElementById("reviewsChart").getContext("2d");
+var data = {
+    labels: {{labels|safe}},
+    datasets: [
+        {
+            label: "Distributions",
+            fillColor: "rgba(20,120,220,0.2)",
+            strokeColor: "rgba(20,120,120,0.1)",
+            pointColor: "rgba(20,120,120,0.3)",
+            pointStrokeColor: "#fff",
+            pointHighlightFill: "#fff",
+            pointHighlightStroke: "rgba(220,220,220,1)",
+            data: {{data|safe}}
+        },
+    ]
+};
+var myBarChartDistros = new Chart(ctx).Bar(data, null);
+</script>
+
 {% endblock %}
diff --git a/app_data/odrs/tests/odrs_test.py b/app_data/odrs/tests/odrs_test.py
index 1c74fc4..84e1319 100644
--- a/app_data/odrs/tests/odrs_test.py
+++ b/app_data/odrs/tests/odrs_test.py
@@ -107,10 +107,8 @@ class OdrsTest(unittest.TestCase):
         assert b'Chart.js' in rv.data, rv.data
         assert b'0, 1' in rv.data, rv.data
 
-        rv = self.app.get('/admin/distros')
-        assert b'Chart.js' in rv.data, rv.data
-
         rv = self.app.get('/admin/stats')
+        assert b'Chart.js' in rv.data, rv.data
         assert b'Active reviews</td>\n    <td>1</td>' in rv.data, rv.data
         assert b'Haters Gonna Hate' in rv.data, rv.data
 
@@ -638,8 +636,7 @@ class OdrsTest(unittest.TestCase):
                 '/admin/show/reported',
                 '/admin/show/unmoderated',
                 '/admin/stats',
-                '/admin/moderators/all',
-                '/admin/distros']
+                '/admin/moderators/all']
         for uri in uris:
             rv = self.app.get(uri)
             assert b'favicon.ico' in rv.data, rv.data
diff --git a/app_data/odrs/views_admin.py b/app_data/odrs/views_admin.py
index 852bfad..fcc56bf 100644
--- a/app_data/odrs/views_admin.py
+++ b/app_data/odrs/views_admin.py
@@ -242,23 +242,7 @@ def admin_show_stats():
                         order_by(User.karma.asc()).\
                         limit(10).all()
 
-    return render_template('stats.html',
-                           users_awesome=users_awesome,
-                           users_haters=users_haters,
-                           results_stats=stats,
-                           results_viewed=viewed,
-                           results_submitted=submitted)
-
-@app.route('/admin/distros')
-@login_required
-def admin_distros():
-    """
-    Return the statistics page as HTML.
-    """
-    # security check
-    if not current_user.is_admin:
-        flash('Unable to show distros as non-admin', 'error')
-        return redirect(url_for('.odrs_index'))
+    # distros
     rs = db.session.execute("SELECT DISTINCT(distro), COUNT(distro) AS total " # pylint: disable=no-member
                             "FROM reviews GROUP BY distro ORDER BY total DESC "
                             "LIMIT 8;")
@@ -271,7 +255,14 @@ def admin_distros():
                 name = name[:-len(suffix)]
         labels.append(name)
         data.append(s[1])
-    return render_template('distros.html', labels=labels, data=data)
+
+    return render_template('stats.html',
+                           users_awesome=users_awesome,
+                           users_haters=users_haters,
+                           results_stats=stats,
+                           results_viewed=viewed,
+                           results_submitted=submitted,
+                           labels=labels, data=data)
 
 @app.route('/admin/review/<review_id>')
 @login_required


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]