diff --git a/aleksis/apps/alsijil/actions.py b/aleksis/apps/alsijil/actions.py
index 8c672da4f5c8ae70ced965e45d11672d34c688a8..ec80a8cf510c579ab09171e29f0d3163618f9522 100644
--- a/aleksis/apps/alsijil/actions.py
+++ b/aleksis/apps/alsijil/actions.py
@@ -27,7 +27,7 @@ def send_request_to_check_entry(modeladmin, request: HttpRequest, selected_items
     for teacher, items in grouped_by_teachers.items():
         msg = template.render({"items": items})
 
-        title = _("{} wants you to check some class register entries.").format(
+        title = _("{} asks you to check some class register entries.").format(
             request.user.person.addressing_name
         )
 
@@ -51,4 +51,4 @@ def send_request_to_check_entry(modeladmin, request: HttpRequest, selected_items
     )
 
 
-send_request_to_check_entry.short_description = _("Notify teacher to check data")
+send_request_to_check_entry.short_description = _("Ask teacher to check data")
diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
index 16d99115744d1c93554b7536757d12c3dab364f5..b5ad8e4119ee7698a5ea81258b708ecd4266a2fd 100644
--- a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-03-18 14:33+0100\n"
+"POT-Creation-Date: 2021-03-21 14:38+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,7 +19,7 @@ msgstr ""
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
 
 #: actions.py:30
-msgid "{} wants you to check some class register entries."
+msgid "{} asks you to check some class register entries."
 msgstr ""
 
 #: actions.py:48
@@ -28,7 +28,7 @@ msgid "We have successfully sent notifications to {count_teachers} persons for {
 msgstr ""
 
 #: actions.py:54
-msgid "Notify teacher to check data"
+msgid "Ask teacher to check data"
 msgstr ""
 
 #: data_checks.py:12
@@ -121,7 +121,7 @@ msgstr ""
 
 #: forms.py:142 templates/alsijil/absences/register_confirm.html:52
 #: templates/alsijil/class_register/lesson.html:261
-#: templates/alsijil/class_register/person.html:235
+#: templates/alsijil/class_register/person.html:234
 #: templates/alsijil/class_register/week_view.html:342
 #: templates/alsijil/print/full_register.html:75
 #: templates/alsijil/print/full_register.html:312
@@ -131,7 +131,7 @@ msgstr ""
 #: forms.py:143 templates/alsijil/absences/register_confirm.html:56
 #: templates/alsijil/class_register/lesson.html:263
 #: templates/alsijil/class_register/person.html:113
-#: templates/alsijil/class_register/person.html:243
+#: templates/alsijil/class_register/person.html:242
 #: templates/alsijil/partials/mark_as_buttons.html:2
 #: templates/alsijil/partials/mark_as_buttons.html:3
 #: templates/alsijil/partials/persons_with_stats.html:74
@@ -451,7 +451,7 @@ msgid "Edit"
 msgstr ""
 
 #: tables.py:25 tables.py:45 tables.py:70
-#: templates/alsijil/class_register/person.html:277
+#: templates/alsijil/class_register/person.html:276
 #: templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -573,7 +573,7 @@ msgid "%(period)s. period"
 msgstr ""
 
 #: templates/alsijil/class_register/lesson.html:56
-#: templates/alsijil/class_register/person.html:207
+#: templates/alsijil/class_register/person.html:206
 #: templates/alsijil/class_register/week_view.html:151
 #: templates/alsijil/class_register/week_view.html:214
 #: templates/alsijil/class_register/week_view.html:268
@@ -692,17 +692,17 @@ msgstr ""
 
 #: templates/alsijil/class_register/person.html:61
 #: templates/alsijil/class_register/person.html:80
-#: templates/alsijil/class_register/person.html:218
-#: templates/alsijil/class_register/person.html:265
+#: templates/alsijil/class_register/person.html:217
+#: templates/alsijil/class_register/person.html:264
 msgid "Mark as"
 msgstr ""
 
 #: templates/alsijil/class_register/person.html:64
 #: templates/alsijil/class_register/person.html:83
-#: templates/alsijil/class_register/person.html:221
-#: templates/alsijil/class_register/person.html:227
-#: templates/alsijil/class_register/person.html:268
-#: templates/alsijil/class_register/person.html:274
+#: templates/alsijil/class_register/person.html:220
+#: templates/alsijil/class_register/person.html:226
+#: templates/alsijil/class_register/person.html:267
+#: templates/alsijil/class_register/person.html:273
 msgid "Delete note"
 msgstr ""
 
@@ -742,17 +742,15 @@ msgstr ""
 
 #: templates/alsijil/class_register/person.html:158
 #, python-format
-msgid ""
-"Week\n"
-"                        %(week)s"
+msgid "Week %(week)s"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:167
-#: templates/alsijil/class_register/person.html:185
+#: templates/alsijil/class_register/person.html:166
+#: templates/alsijil/class_register/person.html:184
 msgid "Mark all as"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:250
+#: templates/alsijil/class_register/person.html:249
 #, python-format
 msgid "%(late)s' late"
 msgstr ""
diff --git a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
index 4e1d850fa592d07c4f28a75f868e261933b99d62..5247bd092a59ccad53f8068a2af2377227cf17c8 100644
--- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-03-18 14:33+0100\n"
-"PO-Revision-Date: 2021-02-24 18:54+0000\n"
+"POT-Creation-Date: 2021-03-21 14:38+0100\n"
+"PO-Revision-Date: 2021-03-18 14:35+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/de/>\n"
 "Language: de_DE\n"
@@ -19,17 +19,21 @@ msgstr ""
 "X-Generator: Weblate 4.4\n"
 
 #: actions.py:30
-msgid "{} wants you to check some class register entries."
-msgstr ""
+#, fuzzy
+#| msgid "{} wants you to check some class register entries."
+msgid "{} asks you to check some class register entries."
+msgstr "{} bittet Sie, einige Klassenbucheinträge zu überprüfen."
 
 #: actions.py:48
 #, python-brace-format
 msgid "We have successfully sent notifications to {count_teachers} persons for {count_items} lessons."
-msgstr ""
+msgstr "Wir haben erfolgreich Benachrichtigungen an {count_teachers} Personen für {count_items} Stunden gesendet."
 
 #: actions.py:54
-msgid "Notify teacher to check data"
-msgstr ""
+#, fuzzy
+#| msgid "Notify teacher to check data"
+msgid "Ask teacher to check data"
+msgstr "Lehrkraft bitten, die Daten zu überprüfen"
 
 #: data_checks.py:12
 msgid "Delete object"
@@ -121,7 +125,7 @@ msgstr "Endstunde"
 
 #: forms.py:142 templates/alsijil/absences/register_confirm.html:52
 #: templates/alsijil/class_register/lesson.html:261
-#: templates/alsijil/class_register/person.html:235
+#: templates/alsijil/class_register/person.html:234
 #: templates/alsijil/class_register/week_view.html:342
 #: templates/alsijil/print/full_register.html:75
 #: templates/alsijil/print/full_register.html:312
@@ -131,7 +135,7 @@ msgstr "Abwesend"
 #: forms.py:143 templates/alsijil/absences/register_confirm.html:56
 #: templates/alsijil/class_register/lesson.html:263
 #: templates/alsijil/class_register/person.html:113
-#: templates/alsijil/class_register/person.html:243
+#: templates/alsijil/class_register/person.html:242
 #: templates/alsijil/partials/mark_as_buttons.html:2
 #: templates/alsijil/partials/mark_as_buttons.html:3
 #: templates/alsijil/partials/persons_with_stats.html:74
@@ -160,13 +164,11 @@ msgstr "Person"
 
 #: forms.py:270
 msgid "School term"
-msgstr ""
+msgstr "Schuljahr"
 
 #: forms.py:271
-#, fuzzy
-#| msgid "Lesson documentation"
 msgid "Has lesson documentation"
-msgstr "Stunden-Dokumentation"
+msgstr "Hat eine Stunden-Dokumentation"
 
 #: forms.py:273 templates/alsijil/class_register/week_view.html:106
 #: templates/alsijil/class_register/week_view.html:202
@@ -208,10 +210,8 @@ msgstr "Gruppenrolle zuweisen"
 
 #: menus.py:82 templates/alsijil/class_register/all_objects.html:5
 #: templates/alsijil/class_register/all_objects.html:8
-#, fuzzy
-#| msgid "All assignments"
 msgid "All lessons"
-msgstr "Alle Zuweisungen"
+msgstr "Alle Stunden"
 
 #: menus.py:93 models.py:63 templates/alsijil/excuse_type/list.html:8
 #: templates/alsijil/excuse_type/list.html:9
@@ -399,7 +399,7 @@ msgstr "Erlaube Primärgruppeninhabern Absenzen in der Zukunft für Mitglieder i
 
 #: preferences.py:43
 msgid "Allow original teachers to edit their lessons although they are substituted"
-msgstr ""
+msgstr "Erlaube den Ursprungslehrkräften, ihre Stunden zu bearbeiten, obwohl sie vertreten worden sind"
 
 #: preferences.py:52
 msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods"
@@ -443,11 +443,11 @@ msgstr "Zugewiesene Gruppenrollen in der Stundenansicht anzeigen"
 
 #: preferences.py:122
 msgid "Items per page in lessons table"
-msgstr ""
+msgstr "Einträge pro Seite in der Stundentabelle"
 
 #: preferences.py:126
 msgid "Each page must show at least one item."
-msgstr ""
+msgstr "Jede Seite muss mindestens einen Eintrag anzeigen."
 
 #: tables.py:19 tables.py:39 tables.py:64
 #: templates/alsijil/group_role/partials/assignment_options.html:13
@@ -455,7 +455,7 @@ msgid "Edit"
 msgstr "Bearbeiten"
 
 #: tables.py:25 tables.py:45 tables.py:70
-#: templates/alsijil/class_register/person.html:277
+#: templates/alsijil/class_register/person.html:276
 #: templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr "Löschen"
@@ -587,7 +587,7 @@ msgid "%(period)s. period"
 msgstr "%(period)s. Stunde"
 
 #: templates/alsijil/class_register/lesson.html:56
-#: templates/alsijil/class_register/person.html:207
+#: templates/alsijil/class_register/person.html:206
 #: templates/alsijil/class_register/week_view.html:151
 #: templates/alsijil/class_register/week_view.html:214
 #: templates/alsijil/class_register/week_view.html:268
@@ -724,17 +724,17 @@ msgstr "Unentschuldigte Fehlzeiten"
 
 #: templates/alsijil/class_register/person.html:61
 #: templates/alsijil/class_register/person.html:80
-#: templates/alsijil/class_register/person.html:218
-#: templates/alsijil/class_register/person.html:265
+#: templates/alsijil/class_register/person.html:217
+#: templates/alsijil/class_register/person.html:264
 msgid "Mark as"
 msgstr "Markiere als"
 
 #: templates/alsijil/class_register/person.html:64
 #: templates/alsijil/class_register/person.html:83
-#: templates/alsijil/class_register/person.html:221
-#: templates/alsijil/class_register/person.html:227
-#: templates/alsijil/class_register/person.html:268
-#: templates/alsijil/class_register/person.html:274
+#: templates/alsijil/class_register/person.html:220
+#: templates/alsijil/class_register/person.html:226
+#: templates/alsijil/class_register/person.html:267
+#: templates/alsijil/class_register/person.html:273
 msgid "Delete note"
 msgstr "Notiz löschen"
 
@@ -774,17 +774,15 @@ msgstr "Relevante persönliche Notizen"
 
 #: templates/alsijil/class_register/person.html:158
 #, python-format
-msgid ""
-"Week\n"
-"                        %(week)s"
-msgstr ""
+msgid "Week %(week)s"
+msgstr "Woche %(week)s"
 
-#: templates/alsijil/class_register/person.html:167
-#: templates/alsijil/class_register/person.html:185
+#: templates/alsijil/class_register/person.html:166
+#: templates/alsijil/class_register/person.html:184
 msgid "Mark all as"
 msgstr "Alle als markieren"
 
-#: templates/alsijil/class_register/person.html:250
+#: templates/alsijil/class_register/person.html:249
 #, python-format
 msgid "%(late)s' late"
 msgstr "%(late)s' verspätet"
@@ -954,7 +952,7 @@ msgstr "Beenden"
 
 #: templates/alsijil/notifications/check.html:1
 msgid "Please check if the following class register entries are complete and correct:"
-msgstr ""
+msgstr "Bitte prüfen Sie, ob die folgenden Klassenbucheinträge komplett und richtig sind:"
 
 #: templates/alsijil/partials/absences.html:6
 #: templates/alsijil/partials/persons_with_stats.html:27
@@ -1014,26 +1012,20 @@ msgid "e"
 msgstr "e"
 
 #: templates/alsijil/partials/objects_table.html:4
-#, fuzzy
-#| msgid "Lesson start"
 msgid "Lesson filter"
-msgstr "Unterrichtsbeginn"
+msgstr "Stundenfilter"
 
 #: templates/alsijil/partials/objects_table.html:9
-#, fuzzy
-#| msgid "Add filter"
 msgid "Update filters"
-msgstr "Filter hinzufügen"
+msgstr "Filter aktualisieren"
 
 #: templates/alsijil/partials/objects_table.html:22
-#, fuzzy
-#| msgid "Lesson start"
 msgid "Lesson table"
-msgstr "Unterrichtsbeginn"
+msgstr "Stundentabelle"
 
 #: templates/alsijil/partials/objects_table.html:31
 msgid "Execute"
-msgstr ""
+msgstr "Ausführen"
 
 #: templates/alsijil/partials/persons_with_stats.html:7
 msgid "No students available."
@@ -1224,10 +1216,8 @@ msgid "Yes"
 msgstr "Ja"
 
 #: templates/alsijil/print/full_register.html:373
-#, fuzzy
-#| msgid "Week view"
 msgid "Week"
-msgstr "Wochenansicht"
+msgstr "Woche"
 
 #: templates/alsijil/print/full_register.html:383
 msgid "Notes"
@@ -1319,8 +1309,12 @@ msgstr "Die Gruppenrollenzuweisung wurde beendet."
 msgid "The group role assignment has been deleted."
 msgstr "Die Gruppenrollenzuweisung wurde gelöscht."
 
-#~ msgid "Week %(week)s"
-#~ msgstr "Woche %(week)s"
+#~ msgid ""
+#~ "Week\n"
+#~ "                        %(week)s"
+#~ msgstr ""
+#~ "Woche \n"
+#~ "%(week)s"
 
 #~ msgid "Lesson documentation for week"
 #~ msgstr "Unterrichtsdokumentation für Woche"
diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
index f54044d30e4bb531327b9d593136b55a51f57424..dc04646f1e122369278568740845251cb865c206 100644
--- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-03-18 14:33+0100\n"
+"POT-Creation-Date: 2021-03-21 14:38+0100\n"
 "PO-Revision-Date: 2020-07-26 14:08+0000\n"
 "Last-Translator: Marlene Grundey <grundema@katharineum.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/fr/>\n"
@@ -19,7 +19,7 @@ msgstr ""
 "X-Generator: Weblate 4.0.1\n"
 
 #: actions.py:30
-msgid "{} wants you to check some class register entries."
+msgid "{} asks you to check some class register entries."
 msgstr ""
 
 #: actions.py:48
@@ -28,7 +28,7 @@ msgid "We have successfully sent notifications to {count_teachers} persons for {
 msgstr ""
 
 #: actions.py:54
-msgid "Notify teacher to check data"
+msgid "Ask teacher to check data"
 msgstr ""
 
 #: data_checks.py:12
@@ -135,7 +135,7 @@ msgstr "De la période"
 
 #: forms.py:142 templates/alsijil/absences/register_confirm.html:52
 #: templates/alsijil/class_register/lesson.html:261
-#: templates/alsijil/class_register/person.html:235
+#: templates/alsijil/class_register/person.html:234
 #: templates/alsijil/class_register/week_view.html:342
 #: templates/alsijil/print/full_register.html:75
 #: templates/alsijil/print/full_register.html:312
@@ -145,7 +145,7 @@ msgstr "Absent(e)"
 #: forms.py:143 templates/alsijil/absences/register_confirm.html:56
 #: templates/alsijil/class_register/lesson.html:263
 #: templates/alsijil/class_register/person.html:113
-#: templates/alsijil/class_register/person.html:243
+#: templates/alsijil/class_register/person.html:242
 #: templates/alsijil/partials/mark_as_buttons.html:2
 #: templates/alsijil/partials/mark_as_buttons.html:3
 #: templates/alsijil/partials/persons_with_stats.html:74
@@ -509,7 +509,7 @@ msgid "Edit"
 msgstr ""
 
 #: tables.py:25 tables.py:45 tables.py:70
-#: templates/alsijil/class_register/person.html:277
+#: templates/alsijil/class_register/person.html:276
 #: templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -648,7 +648,7 @@ msgid "%(period)s. period"
 msgstr "De la période"
 
 #: templates/alsijil/class_register/lesson.html:56
-#: templates/alsijil/class_register/person.html:207
+#: templates/alsijil/class_register/person.html:206
 #: templates/alsijil/class_register/week_view.html:151
 #: templates/alsijil/class_register/week_view.html:214
 #: templates/alsijil/class_register/week_view.html:268
@@ -785,17 +785,17 @@ msgstr "injustifié(e)"
 
 #: templates/alsijil/class_register/person.html:61
 #: templates/alsijil/class_register/person.html:80
-#: templates/alsijil/class_register/person.html:218
-#: templates/alsijil/class_register/person.html:265
+#: templates/alsijil/class_register/person.html:217
+#: templates/alsijil/class_register/person.html:264
 msgid "Mark as"
 msgstr ""
 
 #: templates/alsijil/class_register/person.html:64
 #: templates/alsijil/class_register/person.html:83
-#: templates/alsijil/class_register/person.html:221
-#: templates/alsijil/class_register/person.html:227
-#: templates/alsijil/class_register/person.html:268
-#: templates/alsijil/class_register/person.html:274
+#: templates/alsijil/class_register/person.html:220
+#: templates/alsijil/class_register/person.html:226
+#: templates/alsijil/class_register/person.html:267
+#: templates/alsijil/class_register/person.html:273
 msgid "Delete note"
 msgstr ""
 
@@ -835,17 +835,15 @@ msgstr "Notes personnelles importantes"
 
 #: templates/alsijil/class_register/person.html:158
 #, python-format
-msgid ""
-"Week\n"
-"                        %(week)s"
+msgid "Week %(week)s"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:167
-#: templates/alsijil/class_register/person.html:185
+#: templates/alsijil/class_register/person.html:166
+#: templates/alsijil/class_register/person.html:184
 msgid "Mark all as"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:250
+#: templates/alsijil/class_register/person.html:249
 #, python-format
 msgid "%(late)s' late"
 msgstr ""
diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
index ee4c6fdd4cda12d20f66a70621d5b62fbfe6f557..1876deb1661e1ead85c5ba1be9828bc06feb04ef 100644
--- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-03-18 14:33+0100\n"
+"POT-Creation-Date: 2021-03-21 14:38+0100\n"
 "PO-Revision-Date: 2020-07-26 14:08+0000\n"
 "Last-Translator: Julian <leuckerj@gmail.com>\n"
 "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/la/>\n"
@@ -19,7 +19,7 @@ msgstr ""
 "X-Generator: Weblate 4.0.1\n"
 
 #: actions.py:30
-msgid "{} wants you to check some class register entries."
+msgid "{} asks you to check some class register entries."
 msgstr ""
 
 #: actions.py:48
@@ -28,7 +28,7 @@ msgid "We have successfully sent notifications to {count_teachers} persons for {
 msgstr ""
 
 #: actions.py:54
-msgid "Notify teacher to check data"
+msgid "Ask teacher to check data"
 msgstr ""
 
 #: data_checks.py:12
@@ -121,7 +121,7 @@ msgstr ""
 
 #: forms.py:142 templates/alsijil/absences/register_confirm.html:52
 #: templates/alsijil/class_register/lesson.html:261
-#: templates/alsijil/class_register/person.html:235
+#: templates/alsijil/class_register/person.html:234
 #: templates/alsijil/class_register/week_view.html:342
 #: templates/alsijil/print/full_register.html:75
 #: templates/alsijil/print/full_register.html:312
@@ -131,7 +131,7 @@ msgstr ""
 #: forms.py:143 templates/alsijil/absences/register_confirm.html:56
 #: templates/alsijil/class_register/lesson.html:263
 #: templates/alsijil/class_register/person.html:113
-#: templates/alsijil/class_register/person.html:243
+#: templates/alsijil/class_register/person.html:242
 #: templates/alsijil/partials/mark_as_buttons.html:2
 #: templates/alsijil/partials/mark_as_buttons.html:3
 #: templates/alsijil/partials/persons_with_stats.html:74
@@ -465,7 +465,7 @@ msgid "Edit"
 msgstr ""
 
 #: tables.py:25 tables.py:45 tables.py:70
-#: templates/alsijil/class_register/person.html:277
+#: templates/alsijil/class_register/person.html:276
 #: templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -587,7 +587,7 @@ msgid "%(period)s. period"
 msgstr ""
 
 #: templates/alsijil/class_register/lesson.html:56
-#: templates/alsijil/class_register/person.html:207
+#: templates/alsijil/class_register/person.html:206
 #: templates/alsijil/class_register/week_view.html:151
 #: templates/alsijil/class_register/week_view.html:214
 #: templates/alsijil/class_register/week_view.html:268
@@ -706,17 +706,17 @@ msgstr ""
 
 #: templates/alsijil/class_register/person.html:61
 #: templates/alsijil/class_register/person.html:80
-#: templates/alsijil/class_register/person.html:218
-#: templates/alsijil/class_register/person.html:265
+#: templates/alsijil/class_register/person.html:217
+#: templates/alsijil/class_register/person.html:264
 msgid "Mark as"
 msgstr ""
 
 #: templates/alsijil/class_register/person.html:64
 #: templates/alsijil/class_register/person.html:83
-#: templates/alsijil/class_register/person.html:221
-#: templates/alsijil/class_register/person.html:227
-#: templates/alsijil/class_register/person.html:268
-#: templates/alsijil/class_register/person.html:274
+#: templates/alsijil/class_register/person.html:220
+#: templates/alsijil/class_register/person.html:226
+#: templates/alsijil/class_register/person.html:267
+#: templates/alsijil/class_register/person.html:273
 msgid "Delete note"
 msgstr ""
 
@@ -756,17 +756,15 @@ msgstr ""
 
 #: templates/alsijil/class_register/person.html:158
 #, python-format
-msgid ""
-"Week\n"
-"                        %(week)s"
+msgid "Week %(week)s"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:167
-#: templates/alsijil/class_register/person.html:185
+#: templates/alsijil/class_register/person.html:166
+#: templates/alsijil/class_register/person.html:184
 msgid "Mark all as"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:250
+#: templates/alsijil/class_register/person.html:249
 #, python-format
 msgid "%(late)s' late"
 msgstr ""
diff --git a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
index b624779a115d105311b06ccfe867aefbc04faaee..2bf61f8695e2f97b8d0f8581ffd9b2c1c63def34 100644
--- a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-03-18 14:33+0100\n"
+"POT-Creation-Date: 2021-03-21 14:38+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: actions.py:30
-msgid "{} wants you to check some class register entries."
+msgid "{} asks you to check some class register entries."
 msgstr ""
 
 #: actions.py:48
@@ -27,7 +27,7 @@ msgid "We have successfully sent notifications to {count_teachers} persons for {
 msgstr ""
 
 #: actions.py:54
-msgid "Notify teacher to check data"
+msgid "Ask teacher to check data"
 msgstr ""
 
 #: data_checks.py:12
@@ -120,7 +120,7 @@ msgstr ""
 
 #: forms.py:142 templates/alsijil/absences/register_confirm.html:52
 #: templates/alsijil/class_register/lesson.html:261
-#: templates/alsijil/class_register/person.html:235
+#: templates/alsijil/class_register/person.html:234
 #: templates/alsijil/class_register/week_view.html:342
 #: templates/alsijil/print/full_register.html:75
 #: templates/alsijil/print/full_register.html:312
@@ -130,7 +130,7 @@ msgstr ""
 #: forms.py:143 templates/alsijil/absences/register_confirm.html:56
 #: templates/alsijil/class_register/lesson.html:263
 #: templates/alsijil/class_register/person.html:113
-#: templates/alsijil/class_register/person.html:243
+#: templates/alsijil/class_register/person.html:242
 #: templates/alsijil/partials/mark_as_buttons.html:2
 #: templates/alsijil/partials/mark_as_buttons.html:3
 #: templates/alsijil/partials/persons_with_stats.html:74
@@ -450,7 +450,7 @@ msgid "Edit"
 msgstr ""
 
 #: tables.py:25 tables.py:45 tables.py:70
-#: templates/alsijil/class_register/person.html:277
+#: templates/alsijil/class_register/person.html:276
 #: templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -572,7 +572,7 @@ msgid "%(period)s. period"
 msgstr ""
 
 #: templates/alsijil/class_register/lesson.html:56
-#: templates/alsijil/class_register/person.html:207
+#: templates/alsijil/class_register/person.html:206
 #: templates/alsijil/class_register/week_view.html:151
 #: templates/alsijil/class_register/week_view.html:214
 #: templates/alsijil/class_register/week_view.html:268
@@ -691,17 +691,17 @@ msgstr ""
 
 #: templates/alsijil/class_register/person.html:61
 #: templates/alsijil/class_register/person.html:80
-#: templates/alsijil/class_register/person.html:218
-#: templates/alsijil/class_register/person.html:265
+#: templates/alsijil/class_register/person.html:217
+#: templates/alsijil/class_register/person.html:264
 msgid "Mark as"
 msgstr ""
 
 #: templates/alsijil/class_register/person.html:64
 #: templates/alsijil/class_register/person.html:83
-#: templates/alsijil/class_register/person.html:221
-#: templates/alsijil/class_register/person.html:227
-#: templates/alsijil/class_register/person.html:268
-#: templates/alsijil/class_register/person.html:274
+#: templates/alsijil/class_register/person.html:220
+#: templates/alsijil/class_register/person.html:226
+#: templates/alsijil/class_register/person.html:267
+#: templates/alsijil/class_register/person.html:273
 msgid "Delete note"
 msgstr ""
 
@@ -741,17 +741,15 @@ msgstr ""
 
 #: templates/alsijil/class_register/person.html:158
 #, python-format
-msgid ""
-"Week\n"
-"                        %(week)s"
+msgid "Week %(week)s"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:167
-#: templates/alsijil/class_register/person.html:185
+#: templates/alsijil/class_register/person.html:166
+#: templates/alsijil/class_register/person.html:184
 msgid "Mark all as"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:250
+#: templates/alsijil/class_register/person.html:249
 #, python-format
 msgid "%(late)s' late"
 msgstr ""
diff --git a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
index b624779a115d105311b06ccfe867aefbc04faaee..2bf61f8695e2f97b8d0f8581ffd9b2c1c63def34 100644
--- a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-03-18 14:33+0100\n"
+"POT-Creation-Date: 2021-03-21 14:38+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: actions.py:30
-msgid "{} wants you to check some class register entries."
+msgid "{} asks you to check some class register entries."
 msgstr ""
 
 #: actions.py:48
@@ -27,7 +27,7 @@ msgid "We have successfully sent notifications to {count_teachers} persons for {
 msgstr ""
 
 #: actions.py:54
-msgid "Notify teacher to check data"
+msgid "Ask teacher to check data"
 msgstr ""
 
 #: data_checks.py:12
@@ -120,7 +120,7 @@ msgstr ""
 
 #: forms.py:142 templates/alsijil/absences/register_confirm.html:52
 #: templates/alsijil/class_register/lesson.html:261
-#: templates/alsijil/class_register/person.html:235
+#: templates/alsijil/class_register/person.html:234
 #: templates/alsijil/class_register/week_view.html:342
 #: templates/alsijil/print/full_register.html:75
 #: templates/alsijil/print/full_register.html:312
@@ -130,7 +130,7 @@ msgstr ""
 #: forms.py:143 templates/alsijil/absences/register_confirm.html:56
 #: templates/alsijil/class_register/lesson.html:263
 #: templates/alsijil/class_register/person.html:113
-#: templates/alsijil/class_register/person.html:243
+#: templates/alsijil/class_register/person.html:242
 #: templates/alsijil/partials/mark_as_buttons.html:2
 #: templates/alsijil/partials/mark_as_buttons.html:3
 #: templates/alsijil/partials/persons_with_stats.html:74
@@ -450,7 +450,7 @@ msgid "Edit"
 msgstr ""
 
 #: tables.py:25 tables.py:45 tables.py:70
-#: templates/alsijil/class_register/person.html:277
+#: templates/alsijil/class_register/person.html:276
 #: templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -572,7 +572,7 @@ msgid "%(period)s. period"
 msgstr ""
 
 #: templates/alsijil/class_register/lesson.html:56
-#: templates/alsijil/class_register/person.html:207
+#: templates/alsijil/class_register/person.html:206
 #: templates/alsijil/class_register/week_view.html:151
 #: templates/alsijil/class_register/week_view.html:214
 #: templates/alsijil/class_register/week_view.html:268
@@ -691,17 +691,17 @@ msgstr ""
 
 #: templates/alsijil/class_register/person.html:61
 #: templates/alsijil/class_register/person.html:80
-#: templates/alsijil/class_register/person.html:218
-#: templates/alsijil/class_register/person.html:265
+#: templates/alsijil/class_register/person.html:217
+#: templates/alsijil/class_register/person.html:264
 msgid "Mark as"
 msgstr ""
 
 #: templates/alsijil/class_register/person.html:64
 #: templates/alsijil/class_register/person.html:83
-#: templates/alsijil/class_register/person.html:221
-#: templates/alsijil/class_register/person.html:227
-#: templates/alsijil/class_register/person.html:268
-#: templates/alsijil/class_register/person.html:274
+#: templates/alsijil/class_register/person.html:220
+#: templates/alsijil/class_register/person.html:226
+#: templates/alsijil/class_register/person.html:267
+#: templates/alsijil/class_register/person.html:273
 msgid "Delete note"
 msgstr ""
 
@@ -741,17 +741,15 @@ msgstr ""
 
 #: templates/alsijil/class_register/person.html:158
 #, python-format
-msgid ""
-"Week\n"
-"                        %(week)s"
+msgid "Week %(week)s"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:167
-#: templates/alsijil/class_register/person.html:185
+#: templates/alsijil/class_register/person.html:166
+#: templates/alsijil/class_register/person.html:184
 msgid "Mark all as"
 msgstr ""
 
-#: templates/alsijil/class_register/person.html:250
+#: templates/alsijil/class_register/person.html:249
 #, python-format
 msgid "%(late)s' late"
 msgstr ""
diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html
index 96729befb2851ba6194c29ce1b1280d04033d6bd..65c38961a07a425c5b611e0b94683bf73b608cd6 100644
--- a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html
+++ b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html
@@ -155,8 +155,7 @@
 
                   {% ifchanged note.week %}
                     <li class="collection-item">
-                      <strong>{% blocktrans with week=note.calendar_week.week %}Week
-                        {{ week }}{% endblocktrans %}</strong>
+                      <strong>{% blocktrans with week=note.calendar_week.week %}Week {{ week }}{% endblocktrans %}</strong>
                     </li>
                   {% endifchanged %}
                   {% ifchanged note.date %}
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 39f31d2e7411d84cac881e46f63e49667e7db7e6..92583ba9688cc0363a0e5f94f261827457d1299a 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -4,7 +4,7 @@ from datetime import date, datetime, timedelta
 from typing import Any, Dict, Optional
 
 from django.core.exceptions import PermissionDenied
-from django.db.models import Count, Exists, OuterRef, Prefetch, Q, Subquery, Sum
+from django.db.models import Count, Exists, FilteredRelation, OuterRef, Prefetch, Q, Sum
 from django.db.models.expressions import Case, When
 from django.db.models.functions import Extract
 from django.http import Http404, HttpRequest, HttpResponse, HttpResponseNotFound
@@ -404,46 +404,39 @@ def week_view(
         checker.prefetch_perms(persons_qs)
         checker.prefetch_perms(Group.objects.filter(members__in=persons_qs))
 
-        personal_notes_q = (
-            Q(
-                personal_notes__week=wanted_week.week,
-                personal_notes__year=wanted_week.year,
-                personal_notes__lesson_period__in=lesson_periods_pk,
-            )
-            | Q(
-                personal_notes__event__date_start__lte=wanted_week[6],
-                personal_notes__event__date_end__gte=wanted_week[0],
-                personal_notes__event__in=events_pk,
-            )
-            | Q(
-                personal_notes__extra_lesson__week=wanted_week.week,
-                personal_notes__extra_lesson__year=wanted_week.year,
-                personal_notes__extra_lesson__in=extra_lessons_pk,
+        persons_qs = (
+            Person.objects.filter(pk__in=persons_qs)
+            .select_related("primary_group")
+            .prefetch_related("primary_group__owners")
+            .annotate(
+                filtered_personal_notes=FilteredRelation(
+                    "personal_notes",
+                    condition=(
+                        Q(personal_notes__event__in=events_pk)
+                        | Q(
+                            personal_notes__week=wanted_week.week,
+                            personal_notes__year=wanted_week.year,
+                            personal_notes__lesson_period__in=lesson_periods_pk,
+                        )
+                        | Q(personal_notes__extra_lesson__in=extra_lessons_pk)
+                    ),
+                )
             )
-        )
-
-        persons_qs = persons_qs.distinct().prefetch_related(
-            Prefetch(
-                "personal_notes",
-                queryset=PersonalNote.objects.filter(
-                    Q(
-                        week=wanted_week.week,
-                        year=wanted_week.year,
-                        lesson_period__in=lesson_periods_pk,
-                    )
-                    | Q(
-                        event__date_start__lte=wanted_week[6],
-                        event__date_end__gte=wanted_week[0],
-                        event__in=events_pk,
-                    )
-                    | Q(
-                        extra_lesson__week=wanted_week.week,
-                        extra_lesson__year=wanted_week.year,
-                        extra_lesson__in=extra_lessons_pk,
-                    )
+            .prefetch_related(
+                Prefetch(
+                    "personal_notes",
+                    queryset=PersonalNote.objects.filter(
+                        Q(event__in=events_pk)
+                        | Q(
+                            week=wanted_week.week,
+                            year=wanted_week.year,
+                            lesson_period__in=lesson_periods_pk,
+                        )
+                        | Q(extra_lesson__in=extra_lessons_pk)
+                    ),
                 ),
-            ),
-            "member_of__owners",
+                "member_of__owners",
+            )
         )
 
         # Annotate group roles
@@ -456,27 +449,17 @@ def week_view(
             )
         persons_qs = persons_qs.annotate(
             absences_count=Count(
-                "personal_notes",
-                filter=personal_notes_q & Q(personal_notes__absent=True,),
-                distinct=True,
+                "filtered_personal_notes", filter=Q(filtered_personal_notes__absent=True),
             ),
             unexcused_count=Count(
-                "personal_notes",
-                filter=personal_notes_q
-                & Q(personal_notes__absent=True, personal_notes__excused=False,),
-                distinct=True,
-            ),
-            tardiness_sum=Subquery(
-                Person.objects.filter(personal_notes_q)
-                .filter(pk=OuterRef("pk"),)
-                .distinct()
-                .annotate(tardiness_sum=Sum("personal_notes__late"))
-                .values("tardiness_sum")
+                "filtered_personal_notes",
+                filter=Q(
+                    filtered_personal_notes__absent=True, filtered_personal_notes__excused=False
+                ),
             ),
+            tardiness_sum=Sum("filtered_personal_notes__late"),
             tardiness_count=Count(
-                "personal_notes",
-                filter=personal_notes_q & ~Q(personal_notes__late=0),
-                distinct=True,
+                "filtered_personal_notes", filter=Q(filtered_personal_notes__late__gt=0),
             ),
         )
 
@@ -484,9 +467,8 @@ def week_view(
             persons_qs = persons_qs.annotate(
                 **{
                     extra_mark.count_label: Count(
-                        "personal_notes",
-                        filter=personal_notes_q & Q(personal_notes__extra_marks=extra_mark,),
-                        distinct=True,
+                        "filtered_personal_notes",
+                        filter=Q(filtered_personal_notes__extra_marks=extra_mark),
                     )
                 }
             )