Skip to content
Snippets Groups Projects
Commit 40a58a43 authored by Andreas Valder's avatar Andreas Valder
Browse files

added a statistic for lectures per semester

parent 00db1c00
No related branches found
No related tags found
No related merge requests found
...@@ -10,6 +10,7 @@ def stats(): ...@@ -10,6 +10,7 @@ def stats():
statsqueries = {} statsqueries = {}
statsqueries['course_count'] = "SELECT count(id) as count, semester FROM courses GROUP BY semester;" 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>')
@app.route('/stats/data/<dataname>/<parameter>') @app.route('/stats/data/<dataname>/<parameter>')
......
...@@ -13,7 +13,8 @@ ...@@ -13,7 +13,8 @@
<h1 class="panel-title">Statistiken</h1> <h1 class="panel-title">Statistiken</h1>
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div id="tester" style="width:600px;height:600px;"></div> <div class="row col-xs-12">
<div id="coursespersemester" style="height:600px;" class="col-xs-6" ></div>
<script> <script>
$.ajax({ $.ajax({
method: "GET", method: "GET",
...@@ -21,24 +22,46 @@ ...@@ -21,24 +22,46 @@
dataType: "json", dataType: "json",
error: moderator.api.handleapierror, error: moderator.api.handleapierror,
success: function (data) { success: function (data) {
var semester = []; var trace = {"y": [], "x": [], "type": "scatter"};
var y = [];
for (var i=0; i < data.length; i++) { for (var i=0; i < data.length; i++) {
if (data[i].semester != "") { if (data[i].semester != "") {
semester.push(data[i].semester); trace.x.push(data[i].semester)
y.push(data[i].count); trace.y.push(data[i].count)
} }
} }
var trace = {"y": y, "x": semester, "type": "scatter"};
var layout = { var layout = {
"title": 'Veranstaltungen pro Semester', "title": 'Veranstaltungen pro Semester',
"showlegend": false "showlegend": false
}; };
Plotly.newPlot('tester', [trace], layout, { "showLink": false, "modeBarButtonsToRemove": ['sendDataToCloud','hoverCompareCartesian'], "displaylogo": false}); Plotly.newPlot('coursespersemester', [trace], layout, { "modeBarButtonsToRemove": ['sendDataToCloud','hoverCompareCartesian'], "displaylogo": false});
}
});
</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> </script>
</div> </div>
i </div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment