Skip to content
Snippets Groups Projects
Verified Commit 49718f69 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

[Lesson overview] Show extra marks of previous lesson

parent 2197e680
No related branches found
No related tags found
1 merge request!68Resolve "Add option to configure extra marks for personal notes"
Pipeline #3065 passed
from datetime import date from datetime import date
from typing import Optional, Union from typing import Dict, Optional, Union
from django.db.models import Exists, OuterRef, QuerySet from django.db.models import Exists, OuterRef, QuerySet
...@@ -8,7 +8,7 @@ from calendarweek import CalendarWeek ...@@ -8,7 +8,7 @@ from calendarweek import CalendarWeek
from aleksis.apps.chronos.models import LessonPeriod from aleksis.apps.chronos.models import LessonPeriod
from aleksis.core.models import Group, Person from aleksis.core.models import Group, Person
from .models import LessonDocumentation, PersonalNote from .models import ExtraMark, LessonDocumentation, PersonalNote
@Person.method @Person.method
...@@ -150,3 +150,20 @@ def get_tardinesses(self, week: Optional[CalendarWeek] = None) -> QuerySet: ...@@ -150,3 +150,20 @@ def get_tardinesses(self, week: Optional[CalendarWeek] = None) -> QuerySet:
if not week: if not week:
week = self.week week = self.week
return self.personal_notes.filter(week=week.week, late__gt=0) return self.personal_notes.filter(week=week.week, late__gt=0)
@LessonPeriod.method
def get_extra_marks(
self, week: Optional[CalendarWeek] = None
) -> Dict[ExtraMark, QuerySet]:
"""Get all statistics on extra marks for this lesson."""
if not week:
week = self.week
stats = {}
for extra_mark in ExtraMark.objects.all():
qs = self.personal_notes.filter(week=week.week, extra_marks=extra_mark)
if qs:
stats[extra_mark] = qs
return stats
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
<div class="row"> <div class="row">
<div class="col s12 m12 l6 xl8"> <div class="col s12 m12 l6 xl8">
{% with prev_lesson=lesson_period.prev prev_doc=prev_lesson.get_lesson_documentation %} {% with prev_lesson=lesson_period.prev prev_doc=prev_lesson.get_lesson_documentation %}
{% with prev_doc=prev_lesson.get_lesson_documentation absences=prev_lesson.get_absences tardinesses=prev_lesson.get_tardinesses %} {% with prev_doc=prev_lesson.get_lesson_documentation absences=prev_lesson.get_absences tardinesses=prev_lesson.get_tardinesses extra_marks=prev_lesson.get_extra_marks %}
{% if prev_doc %} {% if prev_doc %}
{% weekday_to_date prev_lesson.week prev_lesson.period.weekday as prev_date %} {% weekday_to_date prev_lesson.week prev_lesson.period.weekday as prev_date %}
...@@ -99,6 +99,18 @@ ...@@ -99,6 +99,18 @@
<td>{% include "alsijil/partials/tardinesses.html" with notes=tardinesses %}</td> <td>{% include "alsijil/partials/tardinesses.html" with notes=tardinesses %}</td>
</tr> </tr>
{% endif %} {% endif %}
{% for extra_mark, notes in extra_marks.items %}
<tr>
<th>{{ extra_mark.name }}</th>
<td>
{% for note in notes %}
<span>{{ note.person }}{% if not forloop.last %},{% endif %}</span>
{% endfor %}
</td>
</tr>
{% endfor %}
</table> </table>
</div> </div>
</div> </div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment