Commit e23fb12240eeb8ce7c0dbba1ab88ab1c59001452
1 parent
9b98821d
Exists in
master
and in
1 other branch
removes the thumbs up on rankings
it was causing problems with sqlalchemy.
Showing
2 changed files
with
8 additions
and
26 deletions
Show diff stats
aprendizations/learnapp.py
@@ -599,7 +599,7 @@ class LearnApp(): | @@ -599,7 +599,7 @@ class LearnApp(): | ||
599 | return self.courses[course_id] | 599 | return self.courses[course_id] |
600 | 600 | ||
601 | # ------------------------------------------------------------------------ | 601 | # ------------------------------------------------------------------------ |
602 | - def get_rankings(self, uid: str, course_id: str) -> Iterable[Tuple[str, str, float, float]]: | 602 | + def get_rankings(self, uid: str, course_id: str) -> Iterable[Tuple[str, str, float]]: |
603 | ''' | 603 | ''' |
604 | Returns rankings for a certain course_id. | 604 | Returns rankings for a certain course_id. |
605 | User where uid have <=2 chars are considered ghosts are hidden from | 605 | User where uid have <=2 chars are considered ghosts are hidden from |
@@ -610,33 +610,19 @@ class LearnApp(): | @@ -610,33 +610,19 @@ class LearnApp(): | ||
610 | ''' | 610 | ''' |
611 | 611 | ||
612 | logger.info('User "%s" rankings for "%s"', uid, course_id) | 612 | logger.info('User "%s" rankings for "%s"', uid, course_id) |
613 | - with Session(self._engine, future=True) as session: | ||
614 | - query_students = select(Student.id, Student.name) | ||
615 | - query_student_topics = select(StudentTopic.student_id, | ||
616 | - StudentTopic.topic_id, | ||
617 | - StudentTopic.level, | ||
618 | - StudentTopic.date) | ||
619 | - query_total = select(Answer.student_id, func.count(Answer.ref)) | ||
620 | - query_right = select(Answer.student_id, func.count(Answer.ref)) \ | ||
621 | - .where(Answer.grade == 1.0) | 613 | + query_students = select(Student.id, Student.name) |
614 | + query_student_topics = select(StudentTopic.student_id, | ||
615 | + StudentTopic.topic_id, | ||
616 | + StudentTopic.level, | ||
617 | + StudentTopic.date) | ||
622 | 618 | ||
619 | + with Session(self._engine, future=True) as session: | ||
623 | # all students in the database FIXME only with answers of this course | 620 | # all students in the database FIXME only with answers of this course |
624 | students = session.execute(query_students).all() | 621 | students = session.execute(query_students).all() |
625 | 622 | ||
626 | # topic levels FIXME only topics of this course | 623 | # topic levels FIXME only topics of this course |
627 | student_topics = session.execute(query_student_topics).all() | 624 | student_topics = session.execute(query_student_topics).all() |
628 | 625 | ||
629 | - # answer performance | ||
630 | - | ||
631 | - # FIXME this does not work when nobody has done anything... | ||
632 | - # FIXME row to dict seems to be deprecated in 1.4+ | ||
633 | - total = dict(session.execute(query_total).all()) | ||
634 | - right = dict(session.execute(query_right).all()) | ||
635 | - | ||
636 | - # compute percentage of right answers | ||
637 | - perf: Dict[str, float] = {u: right.get(u, 0.0) / total[u] | ||
638 | - for u in total} | ||
639 | - | ||
640 | # compute topic progress | 626 | # compute topic progress |
641 | now = datetime.now() | 627 | now = datetime.now() |
642 | goals = self.courses[course_id]['goals'] | 628 | goals = self.courses[course_id]['goals'] |
@@ -647,7 +633,7 @@ class LearnApp(): | @@ -647,7 +633,7 @@ class LearnApp(): | ||
647 | date = datetime.strptime(date, "%Y-%m-%d %H:%M:%S.%f") | 633 | date = datetime.strptime(date, "%Y-%m-%d %H:%M:%S.%f") |
648 | progress[student] += level**(now - date).days / len(goals) | 634 | progress[student] += level**(now - date).days / len(goals) |
649 | 635 | ||
650 | - return sorted(((u, name, progress[u], perf.get(u, 0.0)) | 636 | + return sorted(((u, name, progress[u]) |
651 | for u, name in students | 637 | for u, name in students |
652 | if u in progress and (len(u) > 2 or len(uid) <= 2)), | 638 | if u in progress and (len(u) > 2 or len(uid) <= 2)), |
653 | key=lambda x: x[2], reverse=True) | 639 | key=lambda x: x[2], reverse=True) |
aprendizations/templates/rankings.html
@@ -61,7 +61,6 @@ | @@ -61,7 +61,6 @@ | ||
61 | <tr> | 61 | <tr> |
62 | <th scope="col" class="text-center">Posição</th> | 62 | <th scope="col" class="text-center">Posição</th> |
63 | <th scope="col">Aluno</th> | 63 | <th scope="col">Aluno</th> |
64 | - <th scope="col"></th> | ||
65 | <th scope="col">Progresso</th> | 64 | <th scope="col">Progresso</th> |
66 | </tr> | 65 | </tr> |
67 | </thead> | 66 | </thead> |
@@ -76,9 +75,6 @@ | @@ -76,9 +75,6 @@ | ||
76 | <td> <!-- student name --> | 75 | <td> <!-- student name --> |
77 | {{ ' '.join(r[1].split()[n] for n in (0,-1)) }} | 76 | {{ ' '.join(r[1].split()[n] for n in (0,-1)) }} |
78 | </td> | 77 | </td> |
79 | - <td> <!-- nice --> | ||
80 | - {{ '<i class="far fa-thumbs-up text-success" title="Mais de 75% de respostas correctas"></i>' if r[3] > 0.75 else '' }} | ||
81 | - </td> | ||
82 | <td> <!-- progress --> | 78 | <td> <!-- progress --> |
83 | <div class="progress" style="height: 24px;"> | 79 | <div class="progress" style="height: 24px;"> |
84 | <div class="progress-bar" role="progressbar" style="width: {{ 100*r[2] }}%;" aria-valuenow="{{round(100*r[2])}}%" aria-valuemin="0" aria-valuemax="100">{{round(100*r[2])}}%</div> | 80 | <div class="progress-bar" role="progressbar" style="width: {{ 100*r[2] }}%;" aria-valuenow="{{round(100*r[2])}}%" aria-valuemin="0" aria-valuemax="100">{{round(100*r[2])}}%</div> |