Commit 550cab021b5e8af13d107af860865288f492eaa8
1 parent
2327acae
Exists in
master
and in
1 other branch
- /results now shows only the best result from each student.
Showing
3 changed files
with
13 additions
and
7 deletions
Show diff stats
database.py
@@ -15,9 +15,18 @@ class Database(object): | @@ -15,9 +15,18 @@ class Database(object): | ||
15 | # return list of students and their results for a given test | 15 | # return list of students and their results for a given test |
16 | def test_grades(self, test_id): | 16 | def test_grades(self, test_id): |
17 | with sqlite3.connect(self.db) as c: | 17 | with sqlite3.connect(self.db) as c: |
18 | - cmd = 'SELECT student_id,name,grade FROM students INNER JOIN tests ON students.number=tests.student_id WHERE test_id==? ORDER BY grade DESC;' | ||
19 | - results = c.execute(cmd, [test_id]) | ||
20 | - return results.fetchall() | 18 | + # with all tests done by each student: |
19 | + # cmd = 'SELECT student_id,name,grade FROM students INNER JOIN tests ON students.number=tests.student_id WHERE test_id==? ORDER BY grade DESC;' | ||
20 | + | ||
21 | + # only the best result for each student | ||
22 | + cmd = ''' | ||
23 | + SELECT student_id, name, MAX(grade) | ||
24 | + FROM students INNER JOIN tests | ||
25 | + ON students.number=tests.student_id | ||
26 | + WHERE test_id==? | ||
27 | + GROUP BY student_id | ||
28 | + ORDER BY grade DESC;''' | ||
29 | + return c.execute(cmd, [test_id]).fetchall() | ||
21 | 30 | ||
22 | # get list of students in the database | 31 | # get list of students in the database |
23 | def get_students(self): | 32 | def get_students(self): |
serve.py
@@ -23,8 +23,7 @@ class Root(object): | @@ -23,8 +23,7 @@ class Root(object): | ||
23 | self.database = database.Database(testconf['database']) | 23 | self.database = database.Database(testconf['database']) |
24 | self.auth = AuthController(database=testconf['database']) | 24 | self.auth = AuthController(database=testconf['database']) |
25 | self.templates = TemplateLookup(directories=['templates'], input_encoding='utf-8') | 25 | self.templates = TemplateLookup(directories=['templates'], input_encoding='utf-8') |
26 | - self.tags = {'online': set(), 'finished': set()} | ||
27 | - # self.loggedin = set() # students currently logged in | 26 | + self.tags = {'online': set(), 'finished': set()} # should be in application, not server |
28 | 27 | ||
29 | # --- DEFAULT ------------------------------------------------------------ | 28 | # --- DEFAULT ------------------------------------------------------------ |
30 | # any path, e.g. /xpto/aargh is redirected to the test | 29 | # any path, e.g. /xpto/aargh is redirected to the test |
templates/students.html
@@ -63,9 +63,7 @@ | @@ -63,9 +63,7 @@ | ||
63 | <div class="input-group"> | 63 | <div class="input-group"> |
64 | <input type="password" class="form-control" placeholder="${r[2][:8]}" name="${r[0]}"> | 64 | <input type="password" class="form-control" placeholder="${r[2][:8]}" name="${r[0]}"> |
65 | <span class="input-group-btn"> | 65 | <span class="input-group-btn"> |
66 | - <!-- <button class="btn btn-danger" type="submit">reset</button> --> | ||
67 | <button form="${r[0]}" type="submit" value="submit" class="btn btn-danger">reset</button> | 66 | <button form="${r[0]}" type="submit" value="submit" class="btn btn-danger">reset</button> |
68 | - | ||
69 | </span> | 67 | </span> |
70 | </div><!-- /input-group --> | 68 | </div><!-- /input-group --> |
71 | </form> | 69 | </form> |