diff --git a/stats.py b/stats.py index ea2e7527149bf4578a9ac61db1612bd4bf82a1be..e9279b11c308ef4fa18df846e3da7a81b539e7f8 100644 --- a/stats.py +++ b/stats.py @@ -10,6 +10,7 @@ def stats(): statsqueries = {} statsqueries['course_count'] = "SELECT count(id) as count, semester FROM courses GROUP BY semester;" +statsqueries['lectures_count'] = "SELECT count(lectures.id) as count, semester FROM lectures JOIN courses on courses.id=lectures.course_id GROUP BY semester;" @app.route('/stats/data/<dataname>') @app.route('/stats/data/<dataname>/<parameter>') diff --git a/templates/stats.html b/templates/stats.html index e10d7e28f2e245cefee6dc4429b2e75440e9821e..8c5dcc0c3fe7b7d9726f4c35b7d33bb66108dc72 100644 --- a/templates/stats.html +++ b/templates/stats.html @@ -13,32 +13,55 @@ <h1 class="panel-title">Statistiken</h1> </div> <div class="panel-body"> - <div id="tester" style="width:600px;height:600px;"></div> - <script> - $.ajax({ - method: "GET", - url: "/stats/data/course_count", - dataType: "json", - error: moderator.api.handleapierror, - success: function (data) { - var semester = []; - var y = []; - for (var i=0; i < data.length; i++) { - if (data[i].semester != "") { - semester.push(data[i].semester); - y.push(data[i].count); + <div class="row col-xs-12"> + <div id="coursespersemester" style="height:600px;" class="col-xs-6" ></div> + <script> + $.ajax({ + method: "GET", + url: "/stats/data/course_count", + dataType: "json", + error: moderator.api.handleapierror, + success: function (data) { + var trace = {"y": [], "x": [], "type": "scatter"}; + for (var i=0; i < data.length; i++) { + if (data[i].semester != "") { + trace.x.push(data[i].semester) + trace.y.push(data[i].count) + } } + var layout = { + "title": 'Veranstaltungen pro Semester', + "showlegend": false + }; + Plotly.newPlot('coursespersemester', [trace], layout, { "modeBarButtonsToRemove": ['sendDataToCloud','hoverCompareCartesian'], "displaylogo": false}); } - var trace = {"y": y, "x": semester, "type": "scatter"}; - var layout = { - "title": 'Veranstaltungen pro Semester', - "showlegend": false - }; - Plotly.newPlot('tester', [trace], layout, { "showLink": false, "modeBarButtonsToRemove": ['sendDataToCloud','hoverCompareCartesian'], "displaylogo": false}); - } - }); - </script> - </div> + }); + </script> + <div id="lecturespersemester" style="height:600px" class="col-xs-6"></div> + <script> + $.ajax({ + method: "GET", + url: "/stats/data/lectures_count", + dataType: "json", + error: moderator.api.handleapierror, + success: function (data) { + var trace = {"y": [], "x": [], "type": "scatter"}; + for (var i=0; i < data.length; i++) { + if (data[i].semester != "") { + trace.x.push(data[i].semester) + trace.y.push(data[i].count) + } + } + var layout = { + "title": 'Aufnahmen pro Semester', + "showlegend": false + }; + Plotly.newPlot('lecturespersemester', [trace], layout, { "modeBarButtonsToRemove": ['sendDataToCloud','hoverCompareCartesian'], "displaylogo": false}); + } + }); + </script> + </div> + i </div> </div> </div> {% endblock %}