Commit 92211444cd4eb3f4ac9fa4d943f5b802430684fe
1 parent
913dbfb2
Exists in
master
and in
1 other branch
minor updates
updates js libs versions adds new bug reports in BUGS.md
Showing
7 changed files
with
41 additions
and
36 deletions
Show diff stats
BUGS.md
1 | 1 | |
2 | 2 | # BUGS |
3 | 3 | |
4 | +- ensure pip nao funciona no ubuntu?... | |
5 | +- acrescentar logger.conf que sirva de base. | |
6 | +- exception sqlalchemy relacionada com threads. | |
7 | +- quando se clica no texto de uma opcao, salta para outro lado na pagina. | |
8 | +- ordenacao das notas em /admin nao é numerica, é ascii... | |
9 | +- mensagems de erro do assembler aparecem na mesma linha na correcao e nao fazerm rendering do `$t`, ver se servidor faz parse do markdown dessas mensagens. | |
4 | 10 | - impedir os eventos copy/paste. alunos usam isso para trazer codigo ja feito nos computadores. Obrigar a fazer reset? fazer um copy automaticamente? |
5 | 11 | - a revisao do teste não mostra as imagens. |
6 | 12 | - melhorar o botao de autorizar (desliga-se), usar antes um botao? | ... | ... |
demo/questions/questions-tutorial.yaml
package-lock.json
... | ... | @@ -3,19 +3,19 @@ |
3 | 3 | "lockfileVersion": 1, |
4 | 4 | "dependencies": { |
5 | 5 | "@fortawesome/fontawesome-free": { |
6 | - "version": "5.7.1", | |
7 | - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.7.1.tgz", | |
8 | - "integrity": "sha512-gukWJ7Mwf0WXQbkcwcm5zi8+H8aT5MMnphf5hpydOw898H1ibgm2cyejHgk6Km/FTvrPp5ppUHLrlFwt0QxsQw==" | |
6 | + "version": "5.8.1", | |
7 | + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.8.1.tgz", | |
8 | + "integrity": "sha512-GJtx6e55qLEOy2gPOsok2lohjpdWNGrYGtQx0FFT/++K4SYx+Z8LlPHdQBaFzKEwH5IbBB4fNgb//uyZjgYXoA==" | |
9 | 9 | }, |
10 | 10 | "bootstrap": { |
11 | - "version": "4.3.0", | |
12 | - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.0.tgz", | |
13 | - "integrity": "sha512-M0vqY0Z6UDweV2nLFl5dXcb+GIo53EBCGMMVxCGH5vJxl/jsr+HkULBMd4kn9rdpdBZwd3BduCgMOYOwJybo4Q==" | |
11 | + "version": "4.3.1", | |
12 | + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz", | |
13 | + "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==" | |
14 | 14 | }, |
15 | 15 | "codemirror": { |
16 | - "version": "5.43.0", | |
17 | - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.43.0.tgz", | |
18 | - "integrity": "sha512-mljwQWUaWIf85I7QwTBryF2ASaIvmYAL4s5UCanCJFfKeXOKhrqdHWdHiZWAMNT+hjLTCnVx2S/SYTORIgxsgA==" | |
16 | + "version": "5.45.0", | |
17 | + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.45.0.tgz", | |
18 | + "integrity": "sha512-c19j644usCE8gQaXa0jqn2B/HN9MnB2u6qPIrrhrMkB+QAP42y8G4QnTwuwbVSoUS1jEl7JU9HZMGhCDL0nsAw==" | |
19 | 19 | }, |
20 | 20 | "datatables": { |
21 | 21 | "version": "1.10.18", |
... | ... | @@ -36,9 +36,9 @@ |
36 | 36 | "integrity": "sha512-OzsJNitEHAJB3y4IIlPCAvS0yoXwYjlo2Y4kmm9KQzyIBZt2d8yKRalby3uTRNN4fZQiGL2iMXjpdP1u2Rq2DQ==" |
37 | 37 | }, |
38 | 38 | "popper.js": { |
39 | - "version": "1.14.7", | |
40 | - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.7.tgz", | |
41 | - "integrity": "sha512-4q1hNvoUre/8srWsH7hnoSJ5xVmIL4qgz+s4qf2TnJIMyZFUFMGH+9vE7mXynAlHSZ/NdTmmow86muD0myUkVQ==" | |
39 | + "version": "1.15.0", | |
40 | + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz", | |
41 | + "integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==" | |
42 | 42 | } |
43 | 43 | } |
44 | 44 | } | ... | ... |
package.json
... | ... | @@ -2,12 +2,12 @@ |
2 | 2 | "description": "Javascript libraries required to run the server", |
3 | 3 | "email": "mjsb@uevora.pt", |
4 | 4 | "dependencies": { |
5 | - "@fortawesome/fontawesome-free": "^5.7.1", | |
6 | - "bootstrap": "^4.3.0", | |
7 | - "codemirror": "^5.43.0", | |
5 | + "@fortawesome/fontawesome-free": "^5.8.1", | |
6 | + "bootstrap": "^4.3.1", | |
7 | + "codemirror": "^5.45.0", | |
8 | 8 | "datatables": "^1.10.18", |
9 | 9 | "jquery": "^3.3.1", |
10 | 10 | "mathjax": "^2.7.5", |
11 | - "popper.js": "^1.14.7" | |
11 | + "popper.js": "^1.15.0" | |
12 | 12 | } |
13 | 13 | } | ... | ... |
perguntations/app.py
... | ... | @@ -54,8 +54,8 @@ class App(object): |
54 | 54 | yield session |
55 | 55 | session.commit() |
56 | 56 | except Exception: |
57 | - session.rollback() | |
58 | 57 | logger.error('DB rollback!!!') |
58 | + session.rollback() | |
59 | 59 | finally: |
60 | 60 | session.close() |
61 | 61 | |
... | ... | @@ -262,7 +262,11 @@ class App(object): |
262 | 262 | 'start_time': self.online.get(uid, {}).get('test', {}) |
263 | 263 | .get('start_time', ''), |
264 | 264 | 'password_defined': pw != '', |
265 | - 'grades': self.get_student_grades_from_test(uid, self.testfactory['ref']), | |
265 | + 'grades': self.get_student_grades_from_test( | |
266 | + uid, | |
267 | + self.testfactory['ref'] | |
268 | + ), | |
269 | + | |
266 | 270 | # 'focus': self.online.get(uid, {}).get('student', {}).get('focus', True), # FIXME |
267 | 271 | } for uid, name, pw in self.get_all_students()] |
268 | 272 | ... | ... |
perguntations/serve.py
... | ... | @@ -85,8 +85,6 @@ class BaseHandler(tornado.web.RequestHandler): |
85 | 85 | # /login |
86 | 86 | # ---------------------------------------------------------------------------- |
87 | 87 | class LoginHandler(BaseHandler): |
88 | - SUPPORTED_METHODS = ['GET', 'POST'] | |
89 | - | |
90 | 88 | def get(self): |
91 | 89 | self.render('login.html', error='') |
92 | 90 | |
... | ... | @@ -132,8 +130,6 @@ class RootHandler(BaseHandler): |
132 | 130 | # Serves files from the /public subdir of the topics. |
133 | 131 | # ---------------------------------------------------------------------------- |
134 | 132 | class FileHandler(BaseHandler): |
135 | - SUPPORTED_METHODS = ['GET'] | |
136 | - | |
137 | 133 | @tornado.web.authenticated |
138 | 134 | async def get(self): |
139 | 135 | uid = self.current_user |
... | ... | @@ -175,8 +171,6 @@ class FileHandler(BaseHandler): |
175 | 171 | # Test shown to students |
176 | 172 | # ------------------------------------------------------------------------- |
177 | 173 | class TestHandler(BaseHandler): |
178 | - SUPPORTED_METHODS = ['GET', 'POST'] | |
179 | - | |
180 | 174 | _templates = { |
181 | 175 | 'radio': 'question-radio.html', |
182 | 176 | 'checkbox': 'question-checkbox.html', |
... | ... | @@ -229,7 +223,9 @@ class TestHandler(BaseHandler): |
229 | 223 | |
230 | 224 | self.testapp.logout(uid) |
231 | 225 | self.clear_cookie('user') |
232 | - self.render('grade.html', t=t, allgrades=self.testapp.get_student_grades_from_all_tests(uid)) | |
226 | + | |
227 | + allgrades = self.testapp.get_student_grades_from_all_tests(uid) | |
228 | + self.render('grade.html', t=t, allgrades=allgrades) | |
233 | 229 | |
234 | 230 | |
235 | 231 | # ------------------------------------------------------------------------- |
... | ... | @@ -382,7 +378,7 @@ def get_logger_config(debug=False): |
382 | 378 | 'version': 1, |
383 | 379 | 'formatters': { |
384 | 380 | 'standard': { |
385 | - 'format': '%(asctime)s %(name)-22s %(levelname)-8s %(message)s', | |
381 | + 'format': '%(asctime)s %(levelname)-8s %(message)s', | |
386 | 382 | 'datefmt': '%H:%M', |
387 | 383 | }, |
388 | 384 | }, |
... | ... | @@ -419,8 +415,7 @@ def main(): |
419 | 415 | args = parse_cmdline_arguments() |
420 | 416 | |
421 | 417 | # --- Setup logging |
422 | - logger_config = get_logger_config(args.debug) | |
423 | - logging.config.dictConfig(logger_config) | |
418 | + logging.config.dictConfig(get_logger_config(args.debug)) | |
424 | 419 | logging.info('====================== Start Logging ======================') |
425 | 420 | |
426 | 421 | # --- start application |
... | ... | @@ -430,7 +425,7 @@ def main(): |
430 | 425 | 'allow_all': args.allow_all, |
431 | 426 | 'show_ref': args.show_ref, |
432 | 427 | 'review': args.review, |
433 | - } | |
428 | + } | |
434 | 429 | |
435 | 430 | try: |
436 | 431 | testapp = App(config) | ... | ... |
perguntations/templates/login.html
... | ... | @@ -20,22 +20,22 @@ |
20 | 20 | <!-- =================================================================== --> |
21 | 21 | <body> |
22 | 22 | <div class="container-fluid"> |
23 | - <div class="card bg-light border-secondary mb-3"> | |
23 | + <div class="card bg-light border-secondary mt-3"> | |
24 | 24 | <div class="card-body"> |
25 | 25 | <div class="row"> |
26 | 26 | |
27 | - <div class="col-sm-4"> | |
28 | - <img src="/static/logo_horizontal_login.png" class="img-responsive" width="60%" alt="Universidade de Évora"> | |
27 | + <div class="col-sm-9"> | |
28 | + <img src="/static/logo_horizontal_login.png" class="img-responsive mb-3" width="50%" alt="Universidade de Évora"> | |
29 | 29 | </div> |
30 | 30 | |
31 | - <div class="col-sm-8"> | |
31 | + <div class="col-sm-3"> | |
32 | 32 | <h4>Identificação:</h4> |
33 | 33 | |
34 | 34 | <form method="post" action="/login" class="form-signin"> |
35 | 35 | {% module xsrf_form_html() %} |
36 | 36 | <div class="form-group"> |
37 | - <input type="text" name="uid" class="form-control" placeholder="Número" required autofocus> | |
38 | - <input type="password" name="pw" class="form-control" placeholder="Password" required> | |
37 | + <input type="text" name="uid" class="form-control mb-3" placeholder="Número" required autofocus> | |
38 | + <input type="password" name="pw" class="form-control mb-3" placeholder="Password" required> | |
39 | 39 | <p> {{ error }} </p> |
40 | 40 | </div> |
41 | 41 | <button class="btn btn-primary" type="submit"> | ... | ... |