wieheeftdetapperssleutel/templates/home.html

159 lines
7.8 KiB
HTML

{% load staticfiles form_tools %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Wie heeft de tapperssleutel kwijtgemaakt?</title>
<link rel="stylesheet" href="{% static 'css/bootstrap.css' %}"/>
<link rel="stylesheet" href="{% static 'css/bootstrap-datepicker.css' %}"/>
<link rel="stylesheet" href="{% static 'css/style.css' %}"/>
</head>
<body>
<div class="container">
<div class="row">
<div class="col col-12">
<div class="card">
<h5 class="card-header">Dus, wie heeft de tapperssleutel nu weer kwijt gemaakt?</h5>
<div class="card-body">
<form method="POST" action="">
{% csrf_token %}
{% if form.errors %}
<div class="form-group">
{{ form.errors }}
</div>
{% endif %}
<div class="form-group">
<label for="{{ form.tapper.id_for_label }}">Tapper (<a href="{% url 'new_tapper' %}">Tapper
toevoegen?</a>)</label>
{{ form.tapper|add_class:"form-control" }}
</div>
<div class="form-group">
<div class="row">
<div class="col">
<label for="{{ form.date.id_for_label }}">Datum</label>
{{ form.date|add_class:"form-control" }}
</div>
</div>
</div>
<input class="btn btn-danger" type="submit" value="Wat incapabel."/>
</form>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col col-12">
<div class="card">
<h5 class="card-header">En wie is er dan het meest incapabel?</h5>
<div class="card-body">
<form class="form-inline" action="{% url 'detail' %}" method="post">
{% csrf_token %}
<div class="input-group mb-2 mr-sm-2">
<div class="input-group-prepend">
<div class="input-group-text">Van:</div>
</div>
{{ detailform.start_date|add_class:"form-control" }}
</div>
<div class="input-group mb-2 mr-sm-2">
<div class="input-group-prepend">
<div class="input-group-text">Tot:</div>
</div>
{{ detailform.end_date|add_class:"form-control" }}
</div>
<div class="input-group mb-2 mr-sm-2">
<button type="submit" class="btn btn-secondary">Filter</button>
</div>
</form>
{% if tappers %}
<p>Tsja, dat is eigenlijk wel <b>{{ tappers.0.name }}</b>, die had de sleutel al <b>{{ tappers.0.amount }} keer</b>!</p>
<p>En voor de rest zijn deze mensen ook vrij incapabel:</p>
<table>
{% endif %}
{% for tapper in tappers %}
<tr>
<th>{{ tapper.name }}:&nbsp;</th>
<td>{{ tapper.amount }} keer</td>
</tr>
{% empty %}
<p>Niemand in deze periode! Hulde aan de tappers!</p>
{% endfor %}
{% if tappers %}
</table>
{% endif %}
{% if tapperlist %}
<!-- Show chart -->
<script type="text/javascript" src="{% static 'js/gchart_loader.js' %}"></script>
{{ tapperlist|json_script:"tapperlist" }}
{{ datelist|json_script:"datelist" }}
{{ tappersdata|json_script:"tapperdata" }}
<script type="text/javascript">
var data_headers = JSON.parse(document.getElementById('tapperlist').textContent);
var data_dates = JSON.parse(document.getElementById('datelist').textContent);
var data_content = JSON.parse(document.getElementById('tapperdata').textContent);
var chartData = [];
var headerRow = ['Date'];
headerRow = headerRow.concat(data_headers);
chartData.push(headerRow);
// Add first row with all zeroes on start date of form
var startDate = new Date("{{ detailform.start_date.value|date:"Y-m-d" }}");
rowData = [startDate];
for (var index in data_headers) {
if (data_headers[index] !== "Date") {
rowData.push(0);
}
}
chartData.push(rowData);
// Add rest of rows
for (var date_id in data_dates) {
var date = data_dates[date_id];
rowData = [new Date(date)];
for (var index in data_headers) {
if (data_headers[index] !== "Date") {
rowData.push(data_content[date][data_headers[index]]);
}
}
chartData.push(rowData);
}
// Add last row with max values on end date of form
var endDate = new Date("{{ detailform.end_date.value|date:"Y-m-d" }}");
rowData = [endDate];
for (var index in data_headers) {
if (data_headers[index] !== "Date") {
rowData.push(data_content[date][data_headers[index]]);
}
}
chartData.push(rowData);
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable(chartData);
var options = {
title: 'Tappersincompetentie',
legend: {position: 'right'},
vAxis: {format: '0'}
};
var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
chart.draw(data, options);
}
</script>
<div id="curve_chart" style="width: 100%; height: 500px"></div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</body>
</html>