Commit 4aee2d63f578a0bc619b40c7c81b46b3f4b749c6
1 parent
1fa9c011
Exists in
master
and in
1 other branch
update html templates to latest bootstrap5
replace fontawesome by bootstrap-icons cosmetic changes
Showing
8 changed files
with
160 additions
and
121 deletions
Show diff stats
perguntations/static/fontawesome-free
perguntations/templates/grade.html
@@ -33,13 +33,14 @@ | @@ -33,13 +33,14 @@ | ||
33 | 33 | ||
34 | <ul class="nav navbar-nav mx-auto"> | 34 | <ul class="nav navbar-nav mx-auto"> |
35 | <li class="nav-item"> | 35 | <li class="nav-item"> |
36 | - <span class="navbar-text">{{ t['title'] }}</span> | 36 | + <span class="navbar-text">Resultado</span> |
37 | </li> | 37 | </li> |
38 | </ul> | 38 | </ul> |
39 | 39 | ||
40 | <ul class="nav navbar-nav"> | 40 | <ul class="nav navbar-nav"> |
41 | <li class="nav-item"> | 41 | <li class="nav-item"> |
42 | <span class="navbar-text"> | 42 | <span class="navbar-text"> |
43 | + <i class="bi bi-person-fill"></i> | ||
43 | <span id="name">{{ escape(name) }}</span> | 44 | <span id="name">{{ escape(name) }}</span> |
44 | (<span id="number">{{ escape(uid) }}</span>) | 45 | (<span id="number">{{ escape(uid) }}</span>) |
45 | </span> | 46 | </span> |
@@ -49,22 +50,56 @@ | @@ -49,22 +50,56 @@ | ||
49 | </div> | 50 | </div> |
50 | </nav> | 51 | </nav> |
51 | <!-- ================================================================== --> | 52 | <!-- ================================================================== --> |
52 | - <div class="container"> | ||
53 | - <div class="bg-light p-3"> | 53 | +<div class="container"> |
54 | + <div class="card"> | ||
55 | + <h5 class="card-header">{{ t['title'] }}</h5> | ||
56 | + <div class="card-body"> | ||
57 | + <div class="row"> | ||
58 | + <label for="nome" class="col-3">Nome:</label> | ||
59 | + <div class="col-9" id="nome">{{ escape(name) }}</div> | ||
60 | + </div> | ||
61 | + <div class="row"> | ||
62 | + <label for="numero" class="col-3">Número:</label> | ||
63 | + <div class="col-9" id="numero">{{ escape(uid) }}</div> | ||
64 | + </div> | ||
65 | + <div class="row"> | ||
66 | + <label for="duracao" class="col-3">Duração:</label> | ||
67 | + <div class="col-9" id="duracao">{{ str(t['duration'])+' minutos' if t['duration'] > 0 else 'sem limite de tempo' }}</div> | ||
68 | + </div> | ||
69 | + <div class="row"> | ||
70 | + <label for="submissao" class="col-3">Submissão:</label> | ||
71 | + <div class="col-9" id="submissao">{{ 'automática no fim do tempo' if t['autosubmit'] else 'manual' }}</div> | ||
72 | + </div> | ||
73 | + <div class="row"> | ||
74 | + <label for="start_time" class="col-3">Início:</label> | ||
75 | + <div class="col-9 font-monospace" id="start_time">{{ t['start_time'] }}</div> | ||
76 | + </div> | ||
77 | + <div class="row"> | ||
78 | + <label for="finish_time" class="col-3">Fim:</label> | ||
79 | + <div class="col-9 font-monospace" id="finish_time">{{ t['finish_time'] }}</div> | ||
80 | + </div> | ||
81 | + </div> | ||
82 | + <div class="card-footer"> | ||
54 | {% if t['state'] == 'CORRECTED' %} | 83 | {% if t['state'] == 'CORRECTED' %} |
55 | - <h3>Nota: <strong>{{ f'{round(t["grade"], 3)}' }}</strong> valores</h3> | 84 | + <div class="row"> |
85 | + <label for="nota" class="col-3">Nota:</label> | ||
86 | + <div class="col-9" id="nota"> | ||
87 | + <strong>{{ f'{round(t["grade"], 3)}' }}</strong> valores | ||
88 | + </div> | ||
89 | + </div> | ||
56 | {% elif t['state'] == 'SUBMITTED' %} | 90 | {% elif t['state'] == 'SUBMITTED' %} |
57 | - <h3>A prova foi submetida com sucesso. Vai ser corrigida mais tarde.</h3> | 91 | + A prova foi submetida com sucesso. Vai ser corrigida mais tarde. |
58 | {% elif t['state'] == 'QUIT' %} | 92 | {% elif t['state'] == 'QUIT' %} |
59 | - <h3>Foi registada a sua desistência da prova.</h3> | 93 | + Foi registada a sua desistência da prova. |
60 | {% end %} | 94 | {% end %} |
61 | - | ||
62 | - <p> | ||
63 | - <a href="/logout" class="btn btn-primary btn-lg active" role="button"> | ||
64 | - Sair | ||
65 | - </a> | ||
66 | - </p> | ||
67 | - </div> <!-- panel --> | ||
68 | - </div> <!-- container --> | 95 | + </div> |
96 | + </div> <!-- card --> | ||
97 | + <div class="d-grid gap-2"> | ||
98 | + <a href="/logout" class="btn btn-primary btn-lg active" role="button"> | ||
99 | + Sair do teste | ||
100 | + </a> | ||
101 | + <!-- <button class="btn btn-primary" type="button">Button</button> --> | ||
102 | + </div> | ||
103 | +</div> <!-- container --> | ||
69 | </body> | 104 | </body> |
70 | </html> | 105 | </html> |
perguntations/templates/question.html
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | <div class="card border-dark"> | 4 | <div class="card border-dark"> |
5 | <h5 class="card-header text-white bg-dark"> | 5 | <h5 class="card-header text-white bg-dark"> |
6 | {{ q['number'] }}. {{ q['title'] }} | 6 | {{ q['number'] }}. {{ q['title'] }} |
7 | - <div class="float-right"> | 7 | + <div class="float-end"> |
8 | <small>Classificar </small> | 8 | <small>Classificar </small> |
9 | <input type="checkbox" class="question_disabler" data-size="mini" name="answered-{{i}}" id="answered-{{i}}" checked=""> | 9 | <input type="checkbox" class="question_disabler" data-size="mini" name="answered-{{i}}" id="answered-{{i}}" checked=""> |
10 | </div> | 10 | </div> |
@@ -16,7 +16,7 @@ | @@ -16,7 +16,7 @@ | ||
16 | 16 | ||
17 | {% block answer %}{% end %} | 17 | {% block answer %}{% end %} |
18 | 18 | ||
19 | - <p class="text-right"> | 19 | + <p class="text-end"> |
20 | <small> | 20 | <small> |
21 | {% if q['type'] == 'radio' %} | 21 | {% if q['type'] == 'radio' %} |
22 | (Cotação: {{ -round(q['points']/(len(q['options'])-1), 2) }} a {{ round(q['points'], 2) }} pontos) | 22 | (Cotação: {{ -round(q['points']/(len(q['options'])-1), 2) }} a {{ round(q['points'], 2) }} pontos) |
perguntations/templates/review-question-checkbox.html
@@ -15,13 +15,13 @@ | @@ -15,13 +15,13 @@ | ||
15 | {{ md(opt) }} | 15 | {{ md(opt) }} |
16 | </div> | 16 | </div> |
17 | <div class="ms-auto p-2"> | 17 | <div class="ms-auto p-2"> |
18 | - <div class="text-end"> | 18 | + <h3> |
19 | {% if q['correct'][n] > 0 %} | 19 | {% if q['correct'][n] > 0 %} |
20 | - <i class="bi bi-check-lg text-success"></i> | 20 | + <i class="bi bi-check-lg text-success"></i> |
21 | {% else %} | 21 | {% else %} |
22 | - <i class="bi bi-x-lg text-danger"></i> | 22 | + <i class="bi bi-x-lg text-danger"></i> |
23 | {% end %} | 23 | {% end %} |
24 | - </div> | 24 | + </h3> |
25 | </div> | 25 | </div> |
26 | 26 | ||
27 | {% else %} | 27 | {% else %} |
@@ -32,13 +32,13 @@ | @@ -32,13 +32,13 @@ | ||
32 | {{ md(opt) }} | 32 | {{ md(opt) }} |
33 | </div> | 33 | </div> |
34 | <div class="ms-auto p-2"> | 34 | <div class="ms-auto p-2"> |
35 | - <div class="text-end"> | ||
36 | - {% if q['correct'][n] > 0 %} | 35 | + <h3> |
36 | + {% if q['correct'][n] > 0 %} | ||
37 | <i class="bi bi-x-lg text-danger"></i> | 37 | <i class="bi bi-x-lg text-danger"></i> |
38 | - {% else %} | 38 | + {% else %} |
39 | <i class="bi bi-check-lg text-success"></i> | 39 | <i class="bi bi-check-lg text-success"></i> |
40 | - {% end %} | ||
41 | - </div> | 40 | + {% end %} |
41 | + </h3> | ||
42 | </div> | 42 | </div> |
43 | {% end %} | 43 | {% end %} |
44 | </div> | 44 | </div> |
perguntations/templates/review-question-radio.html
@@ -9,17 +9,19 @@ | @@ -9,17 +9,19 @@ | ||
9 | <div class="d-flex flex-row"> | 9 | <div class="d-flex flex-row"> |
10 | {% if q['answer'] is not None and str(n)==q['answer'] %} | 10 | {% if q['answer'] is not None and str(n)==q['answer'] %} |
11 | <div class="p-2"> | 11 | <div class="p-2"> |
12 | - <i class="bi bi-record-circle"></i> | 12 | + <i class="bi bi-record-circle-fill"></i> |
13 | </div> | 13 | </div> |
14 | <div class="p-2"> | 14 | <div class="p-2"> |
15 | {{ md(opt) }} | 15 | {{ md(opt) }} |
16 | </div> | 16 | </div> |
17 | <div class="ms-auto p-2"> | 17 | <div class="ms-auto p-2"> |
18 | + <h3> | ||
18 | {% if q['correct'][n] > 0 %} | 19 | {% if q['correct'][n] > 0 %} |
19 | <i class="bi bi-check-lg text-success"></i> | 20 | <i class="bi bi-check-lg text-success"></i> |
20 | {% else %} | 21 | {% else %} |
21 | <i class="bi bi-x-lg text-danger"></i> | 22 | <i class="bi bi-x-lg text-danger"></i> |
22 | {% end %} | 23 | {% end %} |
24 | + </h3> | ||
23 | </div> | 25 | </div> |
24 | 26 | ||
25 | {% else %} | 27 | {% else %} |
@@ -31,7 +33,9 @@ | @@ -31,7 +33,9 @@ | ||
31 | </div> | 33 | </div> |
32 | <div class="ms-auto p-2"> | 34 | <div class="ms-auto p-2"> |
33 | {% if q['correct'][n] > 0 %} | 35 | {% if q['correct'][n] > 0 %} |
36 | + <h3> | ||
34 | <i class="bi bi-arrow-left text-info"></i> | 37 | <i class="bi bi-arrow-left text-info"></i> |
38 | + </h3> | ||
35 | {% end %} | 39 | {% end %} |
36 | </div> | 40 | </div> |
37 | {% end %} | 41 | {% end %} |
perguntations/templates/review-question.html
@@ -3,12 +3,12 @@ | @@ -3,12 +3,12 @@ | ||
3 | {% block question %} | 3 | {% block question %} |
4 | {% if q['answer'] is not None %} | 4 | {% if q['answer'] is not None %} |
5 | 5 | ||
6 | - <div class="card border-dark mb-3"> | ||
7 | - <h5 class="card-header text-white bg-dark"> | 6 | + <div class="card border-dark"> |
7 | + <h5 class="card-header text-light bg-dark"> | ||
8 | {{ q['number'] }}. {{ q['title'] }} | 8 | {{ q['number'] }}. {{ q['title'] }} |
9 | <div class="float-end"> | 9 | <div class="float-end"> |
10 | - <small>Classificada </small> | ||
11 | - <i class="bi bi-toggle2-on"></i> | 10 | + <small>Classificar </small> |
11 | + <i class="bi bi-check-square"></i> | ||
12 | </div> | 12 | </div> |
13 | </h5> <!-- card-header --> | 13 | </h5> <!-- card-header --> |
14 | 14 | ||
@@ -19,7 +19,7 @@ | @@ -19,7 +19,7 @@ | ||
19 | 19 | ||
20 | {% block answer %}{% end %} | 20 | {% block answer %}{% end %} |
21 | 21 | ||
22 | - <p class="text-right"> | 22 | + <p class="text-end"> |
23 | <small> | 23 | <small> |
24 | {% if q['type'] == 'radio' %} | 24 | {% if q['type'] == 'radio' %} |
25 | (Cotação: {{ -round(q['points']/(len(q['options'])-1), 2) }} a {{ round(q['points'], 2) }} pontos) | 25 | (Cotação: {{ -round(q['points']/(len(q['options'])-1), 2) }} a {{ round(q['points'], 2) }} pontos) |
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | {% if 'grade' in q %} | 35 | {% if 'grade' in q %} |
36 | <div class="card-footer"> | 36 | <div class="card-footer"> |
37 | {% if q['grade'] > 0.999 %} | 37 | {% if q['grade'] > 0.999 %} |
38 | - <h1 class="text-success"><i class="bi bi-hand-thumbs-up"></i></h1> | 38 | + <h1 class="text-success"><i class="bi bi-hand-thumbs-up-fill"></i></h1> |
39 | <p class="text-success"> | 39 | <p class="text-success"> |
40 | {{ round(q['grade'] * q['points'], 2) }} pontos | 40 | {{ round(q['grade'] * q['points'], 2) }} pontos |
41 | </p> | 41 | </p> |
@@ -73,12 +73,12 @@ | @@ -73,12 +73,12 @@ | ||
73 | 73 | ||
74 | {% else %} | 74 | {% else %} |
75 | 75 | ||
76 | - <div class="card border-secondary mb-3"> | ||
77 | - <h5 class="card-header text-white bg-secondary"> | 76 | + <div class="card border-secondary"> |
77 | + <h5 class="card-header text-secondary bg-light"> | ||
78 | {{ q['number'] }}. {{ q['title'] }} | 78 | {{ q['number'] }}. {{ q['title'] }} |
79 | <div class="float-end"> | 79 | <div class="float-end"> |
80 | - <small>Não classificada</small> | ||
81 | - <i class="bi bi-toggle2-off"></i> | 80 | + <small>Classificar</small> |
81 | + <i class="bi bi-square"></i> | ||
82 | </div> | 82 | </div> |
83 | </h5> <!-- card-header --> | 83 | </h5> <!-- card-header --> |
84 | 84 | ||
@@ -89,14 +89,14 @@ | @@ -89,14 +89,14 @@ | ||
89 | 89 | ||
90 | {% block answer %}{% end %} | 90 | {% block answer %}{% end %} |
91 | 91 | ||
92 | - <p class="text-right"> | 92 | + <p class="text-end"> |
93 | <small> | 93 | <small> |
94 | (Cotação: {{ round(q['points'], 2) }}) | 94 | (Cotação: {{ round(q['points'], 2) }}) |
95 | </small> | 95 | </small> |
96 | </p> | 96 | </p> |
97 | </div> <!-- card-body --> | 97 | </div> <!-- card-body --> |
98 | 98 | ||
99 | - <div class="card-footer"> | 99 | + <div class="card-footer text-secondary"> |
100 | {{ md(q['comments']) }} | 100 | {{ md(q['comments']) }} |
101 | {% if q['solution'] %} | 101 | {% if q['solution'] %} |
102 | {{ md('**Solução:** \n\n' + q['solution']) }} | 102 | {{ md('**Solução:** \n\n' + q['solution']) }} |
perguntations/templates/review.html
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html lang="pt-PT"> | 2 | <html lang="pt-PT"> |
3 | <head> | 3 | <head> |
4 | - <title>Teste</title> | ||
5 | - <meta charset="UTF-8"> | ||
6 | - <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
7 | - <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> | 4 | + <title>Revisão de prova</title> |
5 | + <meta charset="utf-8"> | ||
6 | + <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
7 | + <link rel="icon" href="/static/favicon.ico"> | ||
8 | + | ||
9 | +<!-- Styles --> | ||
10 | + <link rel="stylesheet" type="text/css" href="/static/bootstrap/css/bootstrap.min.css"> | ||
11 | + <link rel="stylesheet" type="text/css" href="/static/bootstrap-icons/font/bootstrap-icons.css"> | ||
12 | + <link rel="stylesheet" type="text/css" href="/static/css/github.css"> <!-- syntax highlight --> | ||
13 | + <link rel="stylesheet" type="text/css" href="/static/css/test.css"> | ||
14 | + | ||
8 | <!-- MathJax3 --> | 15 | <!-- MathJax3 --> |
9 | <script> | 16 | <script> |
10 | MathJax = { | 17 | MathJax = { |
@@ -16,15 +23,7 @@ | @@ -16,15 +23,7 @@ | ||
16 | } | 23 | } |
17 | }; | 24 | }; |
18 | </script> | 25 | </script> |
19 | - <script type="text/javascript" id="MathJax-script" async | ||
20 | - src="/static/mathjax/es5/tex-svg.js"> | ||
21 | - </script> | ||
22 | - | ||
23 | -<!-- Styles --> | ||
24 | - <link rel="stylesheet" type="text/css" href="/static/bootstrap/css/bootstrap.min.css"> | ||
25 | - <link rel="stylesheet" type="text/css" href="/static/bootstrap-icons/font/bootstrap-icons.css"> | ||
26 | - <link rel="stylesheet" type="text/css" href="/static/css/github.css"> <!-- syntax highlight --> | ||
27 | - <link rel="stylesheet" type="text/css" href="/static/css/test.css"> | 26 | + <script async type="text/javascript" id="MathJax-script" src="/static/mathjax/es5/tex-svg.js"></script> |
28 | 27 | ||
29 | <!-- Scripts --> | 28 | <!-- Scripts --> |
30 | <script src="/static/jquery/jquery.min.js"></script> | 29 | <script src="/static/jquery/jquery.min.js"></script> |
@@ -56,6 +55,7 @@ | @@ -56,6 +55,7 @@ | ||
56 | <ul class="nav navbar-nav"> | 55 | <ul class="nav navbar-nav"> |
57 | <li class="nav-item"> | 56 | <li class="nav-item"> |
58 | <span class="navbar-text"> | 57 | <span class="navbar-text"> |
58 | + <i class="bi bi-person-fill"></i> | ||
59 | <span id="name">{{ escape(name) }}</span> | 59 | <span id="name">{{ escape(name) }}</span> |
60 | (<span id="number">{{ escape(uid) }}</span>) | 60 | (<span id="number">{{ escape(uid) }}</span>) |
61 | </span> | 61 | </span> |
@@ -67,50 +67,53 @@ | @@ -67,50 +67,53 @@ | ||
67 | 67 | ||
68 | <!-- ===================================================================== --> | 68 | <!-- ===================================================================== --> |
69 | <div class="container"> | 69 | <div class="container"> |
70 | - <div class="bg-light p-3"> | ||
71 | - <h1 class="display-5">{{ t['title'] }}</h1> | ||
72 | - <hr> | ||
73 | - <div class="row"> | ||
74 | - <label for="nome" class="col-sm-2">Nome:</label> | ||
75 | - <div class="col-sm-9" id="nome">{{ escape(name) }}</div> | ||
76 | - </div> | ||
77 | - <div class="row"> | ||
78 | - <label for="numero" class="col-sm-2">Número:</label> | ||
79 | - <div class="col-sm-9" id="numero">{{ escape(uid) }}</div> | ||
80 | - </div> | ||
81 | - <div class="row"> | ||
82 | - <label for="duracao" class="col-sm-2">Duração:</label> | ||
83 | - <div class="col-sm-10" id="duracao"> | ||
84 | - {{ str(t.get('duration', 0)) + ' minutos' if t.get('duration', 0) > 0 else '+'+chr(8734) }} | 70 | + <div class="card"> |
71 | + <h5 class="card-header">{{ t['title'] }}</h5> | ||
72 | + <div class="card-body"> | ||
73 | + <div class="row"> | ||
74 | + <label for="nome" class="col-3">Nome:</label> | ||
75 | + <div class="col-9" id="nome">{{ escape(name) }}</div> | ||
85 | </div> | 76 | </div> |
86 | - </div> | ||
87 | - <div class="row"> | ||
88 | - <label for="inicio" class="col-sm-2">Início:</label> | ||
89 | - <div class="col-sm-10" id="inicio">{{t['start_time'][:19]}}</div> | ||
90 | - </div> | ||
91 | - <div class="row"> | ||
92 | - <label for="fim" class="col-sm-2">Fim:</label> | ||
93 | - <div class="col-sm-10" id="fim">{{t['finish_time'][:19]}}</div> | ||
94 | - </div> | ||
95 | - <div class="row"> | ||
96 | - <label for="nota" class="col-sm-2">Nota:</label> | ||
97 | - <div class="col-sm-10" id="nota"> | ||
98 | - {% if t['state'] == 'CORRECTED' %} | ||
99 | - <strong>{{ round(t['grade'], 2) }}</strong> valores | ||
100 | - {% elif t['state'] == 'SUBMITTED' %} | ||
101 | - (não corrigido) | ||
102 | - {% elif t['state'] == 'QUIT' %} | ||
103 | - (DESISTIU) | ||
104 | - {% end %} | 77 | + <div class="row"> |
78 | + <label for="numero" class="col-3">Número:</label> | ||
79 | + <div class="col-9" id="numero">{{ escape(uid) }}</div> | ||
105 | </div> | 80 | </div> |
106 | - </div> | ||
107 | - {% if t['comment'] != '' %} | ||
108 | <div class="row"> | 81 | <div class="row"> |
109 | - <label for="comentario" class="col-sm-2">Comentário:</label> | ||
110 | - <div class="col-sm-10" id="comentario">{{ t['comment'] }}</div> | 82 | + <label for="duracao" class="col-3">Duração:</label> |
83 | + <div class="col-9" id="duracao"> | ||
84 | + {{ str(t.get('duration', 0)) + ' minutos' if t.get('duration', 0) > 0 else 'sem limite' }} | ||
85 | + </div> | ||
111 | </div> | 86 | </div> |
112 | - {% end %} | ||
113 | - </div> | 87 | + <div class="row"> |
88 | + <label for="inicio" class="col-3">Início:</label> | ||
89 | + <div class="col-9" id="inicio">{{t['start_time'][:19]}}</div> | ||
90 | + </div> | ||
91 | + <div class="row"> | ||
92 | + <label for="fim" class="col-3">Fim:</label> | ||
93 | + <div class="col-9" id="fim">{{t['finish_time'][:19]}}</div> | ||
94 | + </div> | ||
95 | + </div> <!-- card-body --> | ||
96 | + <div class="card-footer"> | ||
97 | + <div class="row"> | ||
98 | + <label for="nota" class="col-3">Nota:</label> | ||
99 | + <div class="col-9" id="nota"> | ||
100 | + {% if t['state'] == 'CORRECTED' %} | ||
101 | + <strong>{{ round(t['grade'], 2) }}</strong> valores | ||
102 | + {% elif t['state'] == 'SUBMITTED' %} | ||
103 | + (não corrigido) | ||
104 | + {% elif t['state'] == 'QUIT' %} | ||
105 | + (DESISTIU) | ||
106 | + {% end %} | ||
107 | + </div> | ||
108 | + </div> | ||
109 | + {% if t['comment'] != '' %} | ||
110 | + <div class="row"> | ||
111 | + <label for="comentario" class="col-3">Comentário:</label> | ||
112 | + <div class="col-9" id="comentario">{{ t['comment'] }}</div> | ||
113 | + </div> | ||
114 | + {% end %} | ||
115 | + </div> <!-- card-footer --> | ||
116 | + </div> <!-- card --> | ||
114 | 117 | ||
115 | {% for i, q in enumerate(t['questions']) %} | 118 | {% for i, q in enumerate(t['questions']) %} |
116 | {% module Template(templ[q['type']], i=i, q=q, md=md(q['ref']), t=t, debug=debug) %} | 119 | {% module Template(templ[q['type']], i=i, q=q, md=md(q['ref']), t=t, debug=debug) %} |
perguntations/templates/test.html
@@ -8,6 +8,7 @@ | @@ -8,6 +8,7 @@ | ||
8 | 8 | ||
9 | <!-- Styles --> | 9 | <!-- Styles --> |
10 | <link rel="stylesheet" type="text/css" href="/static/bootstrap/css/bootstrap.min.css"> | 10 | <link rel="stylesheet" type="text/css" href="/static/bootstrap/css/bootstrap.min.css"> |
11 | + <link rel="stylesheet" type="text/css" href="/static/bootstrap-icons/font/bootstrap-icons.css"> | ||
11 | <link rel="stylesheet" type="text/css" href="/static/codemirror/lib/codemirror.css"> | 12 | <link rel="stylesheet" type="text/css" href="/static/codemirror/lib/codemirror.css"> |
12 | <link rel="stylesheet" type="text/css" href="/static/codemirror/theme/darcula.css"> | 13 | <link rel="stylesheet" type="text/css" href="/static/codemirror/theme/darcula.css"> |
13 | <link rel="stylesheet" type="text/css" href="/static/css/github.css"> <!-- syntax highlight --> | 14 | <link rel="stylesheet" type="text/css" href="/static/css/github.css"> <!-- syntax highlight --> |
@@ -61,16 +62,15 @@ | @@ -61,16 +62,15 @@ | ||
61 | </ul> | 62 | </ul> |
62 | 63 | ||
63 | <ul class="nav navbar-nav mx-auto"> | 64 | <ul class="nav navbar-nav mx-auto"> |
64 | - <li class="nav-item"><h5> | ||
65 | - <span class="navbar-text" id="clock"> --:-- </span> | ||
66 | - </h5> | ||
67 | - | 65 | + <li class="nav-item"> |
66 | + <h5> <span class="navbar-text" id="clock"> --:-- </span> </h5> | ||
68 | </li> | 67 | </li> |
69 | </ul> | 68 | </ul> |
70 | 69 | ||
71 | <ul class="nav navbar-nav"> | 70 | <ul class="nav navbar-nav"> |
72 | <li class="nav-item"> | 71 | <li class="nav-item"> |
73 | <span class="navbar-text"> | 72 | <span class="navbar-text"> |
73 | + <i class="bi bi-person-fill"></i> | ||
74 | <span id="name">{{ escape(name) }}</span> | 74 | <span id="name">{{ escape(name) }}</span> |
75 | (<span id="number">{{ escape(uid) }}</span>) | 75 | (<span id="number">{{ escape(uid) }}</span>) |
76 | </span> | 76 | </span> |
@@ -82,25 +82,25 @@ | @@ -82,25 +82,25 @@ | ||
82 | 82 | ||
83 | <!-- ===================================================================== --> | 83 | <!-- ===================================================================== --> |
84 | <div class="container"> | 84 | <div class="container"> |
85 | - | ||
86 | - <div class="bg-light p-3"> | ||
87 | - <h3 class="display-5">{{ t['title'] }}</h3> | ||
88 | - <hr> | ||
89 | - <div class="row"> | ||
90 | - <label for="nome" class="col-sm-3">Nome:</label> | ||
91 | - <div class="col-sm-9" id="nome">{{ escape(name) }}</div> | ||
92 | - </div> | ||
93 | - <div class="row"> | ||
94 | - <label for="numero" class="col-sm-3">Número:</label> | ||
95 | - <div class="col-sm-9" id="numero">{{ escape(uid) }}</div> | ||
96 | - </div> | ||
97 | - <div class="row"> | ||
98 | - <label for="duracao" class="col-sm-3">Duração:</label> | ||
99 | - <div class="col-sm-9" id="duracao">{{ str(t['duration'])+' minutos' if t['duration'] > 0 else 'sem limite de tempo' }}</div> | ||
100 | - </div> | ||
101 | - <div class="row"> | ||
102 | - <label for="submissao" class="col-sm-3">Submissão:</label> | ||
103 | - <div class="col-sm-9" id="submissao">{{ 'automática no fim do tempo' if t['autosubmit'] else 'manual' }}</div> | 85 | + <div class="card"> |
86 | + <h5 class="card-header">{{ t['title'] }}</h5> | ||
87 | + <div class="card-body"> | ||
88 | + <div class="row"> | ||
89 | + <label for="nome" class="col-3">Nome:</label> | ||
90 | + <div class="col-9" id="nome">{{ escape(name) }}</div> | ||
91 | + </div> | ||
92 | + <div class="row"> | ||
93 | + <label for="numero" class="col-3">Número:</label> | ||
94 | + <div class="col-9" id="numero">{{ escape(uid) }}</div> | ||
95 | + </div> | ||
96 | + <div class="row"> | ||
97 | + <label for="duracao" class="col-3">Duração:</label> | ||
98 | + <div class="col-9" id="duracao">{{ str(t['duration'])+' minutos' if t['duration'] > 0 else 'sem limite' }}</div> | ||
99 | + </div> | ||
100 | + <div class="row"> | ||
101 | + <label for="submissao" class="col-3">Submissão:</label> | ||
102 | + <div class="col-9" id="submissao">{{ 'automática no fim do tempo' if t['autosubmit'] else 'manual' }}</div> | ||
103 | + </div> | ||
104 | </div> | 104 | </div> |
105 | </div> | 105 | </div> |
106 | 106 | ||
@@ -111,12 +111,10 @@ | @@ -111,12 +111,10 @@ | ||
111 | {% module Template(templ[q['type']], i=i, q=q, md=md(q['ref']), debug=debug) %} | 111 | {% module Template(templ[q['type']], i=i, q=q, md=md(q['ref']), debug=debug) %} |
112 | {% end %} | 112 | {% end %} |
113 | 113 | ||
114 | - <div class="form-row"> | ||
115 | - <div class="col-12"> | ||
116 | - <button type="button" class="btn btn-success btn-lg btn-block" data-bs-toggle="modal" data-bs-target="#confirmar" id="form-button-submit"> | ||
117 | - Submeter teste | ||
118 | - </button> | ||
119 | - </div> | 114 | + <div class="d-grid gap-2"> |
115 | + <button type="button" class="btn btn-success btn-lg btn-block" data-bs-toggle="modal" data-bs-target="#confirmar" id="form-button-submit"> | ||
116 | + Submeter teste | ||
117 | + </button> | ||
120 | </div> | 118 | </div> |
121 | </form> | 119 | </form> |
122 | <hr> | 120 | <hr> |