grade.html
3.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE html>
<html lang="pt-PT">
<head>
<title>Teste</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="icon" href="/static/favicon.ico">
<!-- Styles -->
<link rel="stylesheet" type="text/css" href="/static/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/static/css/test.css">
<!-- Scripts -->
<script src="/static/jquery/jquery.min.js"></script>
<!-- <script defer src="/static/popper.js/popper.min.js"></script> -->
<script defer src="/static/fontawesome-free/js/all.min.js"></script>
<script defer src="/static/bootstrap/js/bootstrap.bundle.min.js"></script>
</head>
<!-- ================================================================= -->
<body>
<nav class="navbar navbar-expand-sm fixed-top navbar-dark bg-dark">
<a class="navbar-brand" href="#">{{t['title']}}</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav mr-auto">
</ul>
<span class="navbar-text">
<i class="fas fa-user" aria-hidden="true"></i>
<span id="name">{{ escape(t['student']['name']) }}</span>
(<span id="number">{{ escape(t['student']['number']) }}</span>)
<span class="caret"></span>
</span>
</div>
</nav>
<!-- ================================================================== -->
<div class="container">
<div class="jumbotron">
{% if t['state'] == 'FINISHED' %}
<h1>Resultado:
<strong>{{ f'{round(t["grade"], 1)}' }}</strong>
valores na escala de {{t['scale'][0]}} a {{t['scale'][1]}}.
</h1>
<p>O seu teste foi correctamente entregue e a nota registada.</p>
<p><a href="/" class="btn btn-primary btn-lg active" role="button">Clique aqui para sair do teste</a></p>
{% if t['grade'] - t['scale'][0] >= 0.75*(t['scale'][1] - t['scale'][0]) %}
<i class="fas fa-thumbs-up fa-5x text-success" aria-hidden="true"></i>
{% end %}
{% elif t['state'] == 'QUIT' %}
<p>Foi registada a sua desistência da prova.</p>
{% end %}
</div> <!-- jumbotron -->
<div class="card">
<h5 class="card-header">
Histórico de resultados
</h5>
<table class="table table-condensed noleftmargin">
<thead>
<tr>
<th>Prova</th>
<th>Data</th>
<th>Hora</th>
<th>Nota</th>
</tr>
</thead>
<tbody>
{% for g in allgrades %}
<tr>
<td>{{g[0]}}</td> <!-- teste -->
<td>{{g[2][:10]}}</td> <!-- data -->
<td>{{g[2][11:19]}}</td> <!-- hora -->
<td> <!-- progress column -->
<div class="progress" style="height: 20px;">
<div class="progress-bar
{% if g[1] - t['scale'][0] < 0.5*(t['scale'][1] - t['scale'][0]) %}
bg-danger
{% elif g[1] - t['scale'][0] < 0.75*(t['scale'][1] - t['scale'][0]) %}
bg-warning
{% else %}
bg-success
{% end %}
"
role="progressbar"
aria-valuenow="{{ 100*(g[1] - t['scale'][0])/(t['scale'][1] - t['scale'][0]) }}"
aria-valuemin="0"
aria-valuemax="100"
style="min-width: 2em; width: {{ 100*(g[1]-t['scale'][0])/(t['scale'][1]-t['scale'][0]) }}%;">
{{ str(round(g[1], 1)) }}
</div> <!-- progress-bar -->
</div> <!-- progress -->
</td> <!-- progress column -->
</tr>
{% end %}
</tbody>
</table>
</div> <!-- panel -->
</div> <!-- container -->
</body>
</html>