diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
index 48140858293ae7990bfa39c1668d1807e11f51e4..633fede75f97a2761a573e5bd129e74b4faebb62 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: 2024-06-13 11:19+0200\n"
+"POT-Creation-Date: 2024-07-14 16:32+0200\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"
@@ -31,8 +31,8 @@ msgstr ""
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
-#: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:33
+#: aleksis/apps/alsijil/tables.py:58
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:96
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
+#: aleksis/apps/alsijil/models.py:763 aleksis/apps/alsijil/models.py:822
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:891
+#: aleksis/apps/alsijil/models.py:903
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:895
+#: aleksis/apps/alsijil/models.py:907
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
@@ -178,8 +178,8 @@ msgstr ""
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
-#: aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:97
+#: aleksis/apps/alsijil/tables.py:118
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -188,7 +188,7 @@ msgstr ""
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:126
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:135
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
@@ -220,7 +220,7 @@ msgstr ""
 msgid "Has lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:130
+#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:172
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:236
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:311
@@ -277,14 +277,14 @@ msgid "Short name"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
-#: aleksis/apps/alsijil/models.py:855
+#: aleksis/apps/alsijil/models.py:867
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:21
 msgid "Count as absent"
 msgstr ""
 
@@ -304,9 +304,7 @@ msgid "Year"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
-#: aleksis/apps/alsijil/tables.py:120
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
+#: aleksis/apps/alsijil/tables.py:100
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
@@ -382,7 +380,7 @@ msgstr ""
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:91
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
@@ -401,8 +399,8 @@ msgstr ""
 msgid "Participation touched at"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
-#: aleksis/apps/alsijil/models.py:826
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:773
+#: aleksis/apps/alsijil/models.py:829
 msgid "Documentation"
 msgstr ""
 
@@ -410,102 +408,116 @@ msgstr ""
 msgid "Documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:765
+#: aleksis/apps/alsijil/models.py:766
 msgid "Groups of Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:778
+#: aleksis/apps/alsijil/models.py:779
 msgid "Absence Reason"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:790
+#: aleksis/apps/alsijil/models.py:791
 msgid "Base Absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
+#: aleksis/apps/alsijil/models.py:794 aleksis/apps/alsijil/tables.py:98
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
+msgid "Tardiness"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:805 aleksis/apps/alsijil/models.py:806
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:831
+#: aleksis/apps/alsijil/models.py:834
 msgid "Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:833
+#: aleksis/apps/alsijil/models.py:836
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:840
+#: aleksis/apps/alsijil/models.py:843
 msgid "Personal Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:841
+#: aleksis/apps/alsijil/models.py:844
 msgid "Personal Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:856
+#: aleksis/apps/alsijil/models.py:855
+msgid "A person got assigned the same extra mark multiple times per documentation."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:868
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:857
+#: aleksis/apps/alsijil/models.py:869
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
+#: aleksis/apps/alsijil/models.py:875 aleksis/apps/alsijil/models.py:890
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:864
+#: aleksis/apps/alsijil/models.py:876
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:865
+#: aleksis/apps/alsijil/models.py:877
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:884
+#: aleksis/apps/alsijil/models.py:896
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:901 aleksis/apps/alsijil/tables.py:85
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:896
+#: aleksis/apps/alsijil/models.py:908
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:911
+#: aleksis/apps/alsijil/models.py:923
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:912
+#: aleksis/apps/alsijil/models.py:924
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:919
+#: aleksis/apps/alsijil/models.py:931
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:920
+#: aleksis/apps/alsijil/models.py:932
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:921
+#: aleksis/apps/alsijil/models.py:933
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:922
+#: aleksis/apps/alsijil/models.py:934
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:923
+#: aleksis/apps/alsijil/models.py:935
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -610,38 +622,27 @@ msgstr ""
 msgid "Set time range for which documentations may be edited"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
-#: aleksis/apps/alsijil/tables.py:72
+#: aleksis/apps/alsijil/tables.py:27 aleksis/apps/alsijil/tables.py:52
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
 msgid "Edit"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:96
+#: aleksis/apps/alsijil/tables.py:76
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:348
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:99
+#: aleksis/apps/alsijil/tables.py:79
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:122
 msgid "Period"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:118
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
-msgid "Tardiness"
-msgstr ""
-
-#: aleksis/apps/alsijil/tables.py:119
+#: aleksis/apps/alsijil/tables.py:99
 msgid "Excuse"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:156
+#: aleksis/apps/alsijil/tables.py:136
 #, python-brace-format
 msgid "{value}' tardiness"
 msgstr ""
@@ -968,17 +969,6 @@ msgid ""
 "  "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:7
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:14
-msgid "Create extra mark"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:7
-msgid "Edit extra mark"
-msgstr ""
-
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:16
 #, python-format
@@ -1472,98 +1462,86 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:112
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:145
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:264
+#: aleksis/apps/alsijil/views.py:262
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:298
+#: aleksis/apps/alsijil/views.py:296
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:658
+#: aleksis/apps/alsijil/views.py:656
 msgid "Generate full register printout for {}"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:659
+#: aleksis/apps/alsijil/views.py:657
 msgid "Generate full register printout …"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:660
+#: aleksis/apps/alsijil/views.py:658
 msgid "The printout has been generated successfully."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:661
+#: aleksis/apps/alsijil/views.py:659
 msgid "There was a problem while generating the printout."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:664
+#: aleksis/apps/alsijil/views.py:662
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1030
+#: aleksis/apps/alsijil/views.py:1028
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1051
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1074
-msgid "The extra mark has been created."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1086
-msgid "The extra mark has been saved."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1097
-msgid "The extra mark has been deleted."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1072
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1131
+#: aleksis/apps/alsijil/views.py:1084
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1142
+#: aleksis/apps/alsijil/views.py:1095
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1164
+#: aleksis/apps/alsijil/views.py:1117
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1176
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1187
+#: aleksis/apps/alsijil/views.py:1140
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1221 aleksis/apps/alsijil/views.py:1253
+#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1206
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1272
+#: aleksis/apps/alsijil/views.py:1225
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1293
+#: aleksis/apps/alsijil/views.py:1246
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1306
+#: aleksis/apps/alsijil/views.py:1259
 msgid "The group role assignment has been deleted."
 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 14c910ed3a24b89bc09e4cc6438137dfbcc92b5d..783d784f1e4e43b41ee3c764c0244c9d2416ce24 100644
--- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-06-13 11:19+0200\n"
+"POT-Creation-Date: 2024-07-14 16:32+0200\n"
 "PO-Revision-Date: 2024-06-13 09:24+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/de/>\n"
@@ -31,8 +31,8 @@ msgstr "Als unentschuldigt markieren"
 msgid "Mark as {excuse_type.name}"
 msgstr "Als {excuse_type.name} markieren"
 
-#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
-#: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:33
+#: aleksis/apps/alsijil/tables.py:58
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr "Löschen"
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr "Bevor"
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:96
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr "Es kann nur entweder eine Gruppe oder eine Lehrkraft ausgewählt werden."
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
+#: aleksis/apps/alsijil/models.py:763 aleksis/apps/alsijil/models.py:822
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Person"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:891
+#: aleksis/apps/alsijil/models.py:903
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Startdatum"
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:895
+#: aleksis/apps/alsijil/models.py:907
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Enddatum"
@@ -178,8 +178,8 @@ msgstr "Startstunde"
 msgid "End period"
 msgstr "Endstunde"
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
-#: aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:97
+#: aleksis/apps/alsijil/tables.py:118
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -188,7 +188,7 @@ msgstr "Endstunde"
 msgid "Absent"
 msgstr "Abwesend"
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:126
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:135
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
@@ -220,7 +220,7 @@ msgstr "Schuljahr"
 msgid "Has lesson documentation"
 msgstr "Hat eine Stunden-Dokumentation"
 
-#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:130
+#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:172
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:236
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:311
@@ -277,14 +277,14 @@ msgid "Short name"
 msgstr "Kurzname"
 
 #: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
-#: aleksis/apps/alsijil/models.py:855
+#: aleksis/apps/alsijil/models.py:867
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr "Name"
 
-#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:21
 msgid "Count as absent"
 msgstr "Als abwesend zählen"
 
@@ -304,9 +304,7 @@ msgid "Year"
 msgstr "Jahr"
 
 #: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
-#: aleksis/apps/alsijil/tables.py:120
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
+#: aleksis/apps/alsijil/tables.py:100
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
@@ -382,7 +380,7 @@ msgstr "Zusätzliche Markierung"
 msgid "Course"
 msgstr "Kurs"
 
-#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:91
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
@@ -401,8 +399,8 @@ msgstr "Gruppennotiz"
 msgid "Participation touched at"
 msgstr "Teilnahmestatus angelegt am"
 
-#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
-#: aleksis/apps/alsijil/models.py:826
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:773
+#: aleksis/apps/alsijil/models.py:829
 msgid "Documentation"
 msgstr "Dokumentation"
 
@@ -410,102 +408,116 @@ msgstr "Dokumentation"
 msgid "Documentations"
 msgstr "Dokumentationen"
 
-#: aleksis/apps/alsijil/models.py:765
+#: aleksis/apps/alsijil/models.py:766
 msgid "Groups of Person"
 msgstr "Gruppen der Person"
 
-#: aleksis/apps/alsijil/models.py:778
+#: aleksis/apps/alsijil/models.py:779
 msgid "Absence Reason"
 msgstr "Abwesenheitsgrund"
 
-#: aleksis/apps/alsijil/models.py:790
+#: aleksis/apps/alsijil/models.py:791
 msgid "Base Absence"
 msgstr "Basis-Abwesenheit"
 
-#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
+#: aleksis/apps/alsijil/models.py:794 aleksis/apps/alsijil/tables.py:98
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
+msgid "Tardiness"
+msgstr "Verspätung"
+
+#: aleksis/apps/alsijil/models.py:805 aleksis/apps/alsijil/models.py:806
 msgid "Participation Status"
 msgstr "Teilnahmestatus"
 
-#: aleksis/apps/alsijil/models.py:831
+#: aleksis/apps/alsijil/models.py:834
 msgid "Note"
 msgstr "Notiz"
 
-#: aleksis/apps/alsijil/models.py:833
+#: aleksis/apps/alsijil/models.py:836
 msgid "Extra Mark"
 msgstr "Zusätzliche Markierung"
 
-#: aleksis/apps/alsijil/models.py:840
+#: aleksis/apps/alsijil/models.py:843
 msgid "Personal Note"
 msgstr "Persönliche Notiz"
 
-#: aleksis/apps/alsijil/models.py:841
+#: aleksis/apps/alsijil/models.py:844
 msgid "Personal Notes"
 msgstr "Persönliche Notizen"
 
-#: aleksis/apps/alsijil/models.py:856
+#: aleksis/apps/alsijil/models.py:855
+msgid "A person got assigned the same extra mark multiple times per documentation."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:868
 msgid "Icon"
 msgstr "Symbol"
 
-#: aleksis/apps/alsijil/models.py:857
+#: aleksis/apps/alsijil/models.py:869
 msgid "Colour"
 msgstr "Farbe"
 
-#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
+#: aleksis/apps/alsijil/models.py:875 aleksis/apps/alsijil/models.py:890
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Gruppenrolle"
 
-#: aleksis/apps/alsijil/models.py:864
+#: aleksis/apps/alsijil/models.py:876
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr "Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:865
+#: aleksis/apps/alsijil/models.py:877
 msgid "Can assign group role"
 msgstr "Kann Gruppenrolle zuweisen"
 
-#: aleksis/apps/alsijil/models.py:884
+#: aleksis/apps/alsijil/models.py:896
 msgid "Assigned person"
 msgstr "Zugewiesene Person"
 
-#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:901 aleksis/apps/alsijil/tables.py:85
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr "Gruppen"
 
-#: aleksis/apps/alsijil/models.py:896
+#: aleksis/apps/alsijil/models.py:908
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Kann frei gelassen werden, wenn das Enddatum noch nicht feststeht"
 
-#: aleksis/apps/alsijil/models.py:911
+#: aleksis/apps/alsijil/models.py:923
 msgid "Group role assignment"
 msgstr "Zuweisung von Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:912
+#: aleksis/apps/alsijil/models.py:924
 msgid "Group role assignments"
 msgstr "Zuweisungen von Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:919
+#: aleksis/apps/alsijil/models.py:931
 msgid "Can view lesson overview"
 msgstr "Kann die Stundenübersicht sehen"
 
-#: aleksis/apps/alsijil/models.py:920
+#: aleksis/apps/alsijil/models.py:932
 msgid "Can view week overview"
 msgstr "Kann die Wochenübersicht sehen"
 
-#: aleksis/apps/alsijil/models.py:921
+#: aleksis/apps/alsijil/models.py:933
 msgid "Can view full register"
 msgstr "Kann komplettes Klassenbuch sehen"
 
-#: aleksis/apps/alsijil/models.py:922
+#: aleksis/apps/alsijil/models.py:934
 msgid "Can register absence"
 msgstr "Kann eine Absenz registrieren"
 
-#: aleksis/apps/alsijil/models.py:923
+#: aleksis/apps/alsijil/models.py:935
 msgid "Can list all personal note filters"
 msgstr "Kann alle Filter für persönliche Notizen anzeigen"
 
@@ -610,38 +622,27 @@ msgstr "Bearbeiten von allen Dokumentationen bis inklusive zum aktuellen Tag und
 msgid "Set time range for which documentations may be edited"
 msgstr "Zeitraum setzen, in dem Dokumentationen bearbeitet werden dürfen"
 
-#: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
-#: aleksis/apps/alsijil/tables.py:72
+#: aleksis/apps/alsijil/tables.py:27 aleksis/apps/alsijil/tables.py:52
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
 msgid "Edit"
 msgstr "Bearbeiten"
 
-#: aleksis/apps/alsijil/tables.py:96
+#: aleksis/apps/alsijil/tables.py:76
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:348
 msgid "Date"
 msgstr "Datum"
 
-#: aleksis/apps/alsijil/tables.py:99
+#: aleksis/apps/alsijil/tables.py:79
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:122
 msgid "Period"
 msgstr "Stunde"
 
-#: aleksis/apps/alsijil/tables.py:118
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
-msgid "Tardiness"
-msgstr "Verspätung"
-
-#: aleksis/apps/alsijil/tables.py:119
+#: aleksis/apps/alsijil/tables.py:99
 msgid "Excuse"
 msgstr "Entschuldigen"
 
-#: aleksis/apps/alsijil/tables.py:156
+#: aleksis/apps/alsijil/tables.py:136
 #, python-brace-format
 msgid "{value}' tardiness"
 msgstr "{value}' Verspätung"
@@ -993,17 +994,6 @@ msgstr ""
 "Benutzen Sie diese Funktion nicht, um eine Entschuldigungsart für normale Entschuldigungen zu erstellen oder wenn Sie nicht zwischen verschiedenen Entschuldigungsarten unterscheiden möchten.\n"
 "  "
 
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:7
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:14
-msgid "Create extra mark"
-msgstr "Zusätzliche Markierung erstellen"
-
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:7
-msgid "Edit extra mark"
-msgstr "Zusätzliche Markierung bearbeiten"
-
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:16
 #, python-format
@@ -1536,104 +1526,107 @@ msgstr "KW"
 msgid "Notes"
 msgstr "Notizen"
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:112
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 "Sie haben eine ungültige Stunde ausgewählt oder es\n"
 "      läuft momentan keine Stunde."
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:145
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr "Ihnen ist es nicht erlaubt, eine Eintragung für eine Unterrichtsstunde in der Zukunft vorzunehmen."
 
-#: aleksis/apps/alsijil/views.py:264
+#: aleksis/apps/alsijil/views.py:262
 msgid "The lesson documentation has been saved."
 msgstr "Die Stunden-Dokumentation wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:298
+#: aleksis/apps/alsijil/views.py:296
 msgid "The personal notes have been saved."
 msgstr "Die persönlichen Notizen wurden gespeichert."
 
-#: aleksis/apps/alsijil/views.py:658
+#: aleksis/apps/alsijil/views.py:656
 msgid "Generate full register printout for {}"
 msgstr "Vollständigen Klassenbuchausdruck für {} generieren"
 
-#: aleksis/apps/alsijil/views.py:659
+#: aleksis/apps/alsijil/views.py:657
 msgid "Generate full register printout …"
 msgstr "Vollständigen Klassenbuchausdruck generieren …"
 
-#: aleksis/apps/alsijil/views.py:660
+#: aleksis/apps/alsijil/views.py:658
 msgid "The printout has been generated successfully."
 msgstr "Der Ausdruck wurde erfolgreich generiert."
 
-#: aleksis/apps/alsijil/views.py:661
+#: aleksis/apps/alsijil/views.py:659
 msgid "There was a problem while generating the printout."
 msgstr "Es ist ein Fehler beim Generieren des Ausdrucks aufgetreten."
 
-#: aleksis/apps/alsijil/views.py:664
+#: aleksis/apps/alsijil/views.py:662
 msgid "Download PDF"
 msgstr "PDF herunterladen"
 
-#: aleksis/apps/alsijil/views.py:1030
+#: aleksis/apps/alsijil/views.py:1028
 msgid "The absence has been saved."
 msgstr "Die Abwesenheit wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1051
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The personal note has been deleted."
 msgstr "Die persönliche Notiz wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1074
-msgid "The extra mark has been created."
-msgstr "Die zusätzliche Markierung wurde erstellt."
-
-#: aleksis/apps/alsijil/views.py:1086
-msgid "The extra mark has been saved."
-msgstr "Die zusätzliche Markierung wurde gespeichert."
-
-#: aleksis/apps/alsijil/views.py:1097
-msgid "The extra mark has been deleted."
-msgstr "Die zusätzliche Markierung wurde gelöscht."
-
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1072
 msgid "The excuse type has been created."
 msgstr "Die Entschuldigungsart wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1131
+#: aleksis/apps/alsijil/views.py:1084
 msgid "The excuse type has been saved."
 msgstr "Die Entschuldigunsart wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1142
+#: aleksis/apps/alsijil/views.py:1095
 msgid "The excuse type has been deleted."
 msgstr "Die Entschuldigungsart wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1164
+#: aleksis/apps/alsijil/views.py:1117
 msgid "The group role has been created."
 msgstr "Die Gruppenrolle wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1176
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The group role has been saved."
 msgstr "Die Gruppenrolle wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1187
+#: aleksis/apps/alsijil/views.py:1140
 msgid "The group role has been deleted."
 msgstr "Die Gruppenrolle wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1221 aleksis/apps/alsijil/views.py:1253
+#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1206
 msgid "The group role has been assigned."
 msgstr "Die Gruppenrolle wurde zugewiesen."
 
-#: aleksis/apps/alsijil/views.py:1272
+#: aleksis/apps/alsijil/views.py:1225
 msgid "The group role assignment has been saved."
 msgstr "Die Gruppenrollenzuweisung wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1293
+#: aleksis/apps/alsijil/views.py:1246
 msgid "The group role assignment has been stopped."
 msgstr "Die Gruppenrollenzuweisung wurde beendet."
 
-#: aleksis/apps/alsijil/views.py:1306
+#: aleksis/apps/alsijil/views.py:1259
 msgid "The group role assignment has been deleted."
 msgstr "Die Gruppenrollenzuweisung wurde gelöscht."
 
+#~ msgid "Create extra mark"
+#~ msgstr "Zusätzliche Markierung erstellen"
+
+#~ msgid "Edit extra mark"
+#~ msgstr "Zusätzliche Markierung bearbeiten"
+
+#~ msgid "The extra mark has been created."
+#~ msgstr "Die zusätzliche Markierung wurde erstellt."
+
+#~ msgid "The extra mark has been saved."
+#~ msgstr "Die zusätzliche Markierung wurde gespeichert."
+
+#~ msgid "The extra mark has been deleted."
+#~ msgstr "Die zusätzliche Markierung wurde gelöscht."
+
 #~ msgid "Current lesson"
 #~ msgstr "Aktuelle Unterrichtsstunde"
 
diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
index 72c9ebda41b069fb1e4116b336be8aeff1427caa..abc04d591ed842977a0e4e5edee13b3fd2ac7862 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: 2024-06-13 11:19+0200\n"
+"POT-Creation-Date: 2024-07-14 16:32+0200\n"
 "PO-Revision-Date: 2021-06-16 11:59+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/fr/>\n"
@@ -33,8 +33,8 @@ msgstr "Injustifié(e)"
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
-#: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:33
+#: aleksis/apps/alsijil/tables.py:58
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -123,7 +123,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:96
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -168,20 +168,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
+#: aleksis/apps/alsijil/models.py:763 aleksis/apps/alsijil/models.py:822
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Personne"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:891
+#: aleksis/apps/alsijil/models.py:903
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Date de début"
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:895
+#: aleksis/apps/alsijil/models.py:907
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Date de fin"
@@ -198,8 +198,8 @@ msgstr "De la période"
 msgid "End period"
 msgstr "De la période"
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
-#: aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:97
+#: aleksis/apps/alsijil/tables.py:118
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -208,7 +208,7 @@ msgstr "De la période"
 msgid "Absent"
 msgstr "Absent(e)"
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:126
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:135
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
@@ -244,7 +244,7 @@ msgstr ""
 msgid "Has lesson documentation"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:130
+#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:172
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:236
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:311
@@ -313,14 +313,14 @@ msgid "Short name"
 msgstr "Prénom"
 
 #: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
-#: aleksis/apps/alsijil/models.py:855
+#: aleksis/apps/alsijil/models.py:867
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:21
 msgid "Count as absent"
 msgstr ""
 
@@ -342,9 +342,7 @@ msgid "Year"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
-#: aleksis/apps/alsijil/tables.py:120
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
+#: aleksis/apps/alsijil/tables.py:100
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
@@ -426,7 +424,7 @@ msgstr ""
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:91
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
@@ -449,8 +447,8 @@ msgstr "Groupe"
 msgid "Participation touched at"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
-#: aleksis/apps/alsijil/models.py:826
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:773
+#: aleksis/apps/alsijil/models.py:829
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Documentation"
@@ -462,66 +460,80 @@ msgstr "Documentation de cours"
 msgid "Documentations"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:765
+#: aleksis/apps/alsijil/models.py:766
 #, fuzzy
 #| msgid "Group"
 msgid "Groups of Person"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:778
+#: aleksis/apps/alsijil/models.py:779
 #, fuzzy
 #| msgid "Absences"
 msgid "Absence Reason"
 msgstr "Absences"
 
-#: aleksis/apps/alsijil/models.py:790
+#: aleksis/apps/alsijil/models.py:791
 #, fuzzy
 #| msgid "Absences"
 msgid "Base Absence"
 msgstr "Absences"
 
-#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
+#: aleksis/apps/alsijil/models.py:794 aleksis/apps/alsijil/tables.py:98
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
+msgid "Tardiness"
+msgstr "Retard"
+
+#: aleksis/apps/alsijil/models.py:805 aleksis/apps/alsijil/models.py:806
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:831
+#: aleksis/apps/alsijil/models.py:834
 #, fuzzy
 #| msgid "Notes"
 msgid "Note"
 msgstr "Notes"
 
-#: aleksis/apps/alsijil/models.py:833
+#: aleksis/apps/alsijil/models.py:836
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:840
+#: aleksis/apps/alsijil/models.py:843
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal Note"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:841
+#: aleksis/apps/alsijil/models.py:844
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal Notes"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:856
+#: aleksis/apps/alsijil/models.py:855
+msgid "A person got assigned the same extra mark multiple times per documentation."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:868
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:857
+#: aleksis/apps/alsijil/models.py:869
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
+#: aleksis/apps/alsijil/models.py:875 aleksis/apps/alsijil/models.py:890
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 #, fuzzy
 #| msgid "Group"
 msgid "Group role"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:864
+#: aleksis/apps/alsijil/models.py:876
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -530,19 +542,19 @@ msgstr "Groupe"
 msgid "Group roles"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:865
+#: aleksis/apps/alsijil/models.py:877
 #, fuzzy
 #| msgid "Persons in group"
 msgid "Can assign group role"
 msgstr "Personnes en groupe"
 
-#: aleksis/apps/alsijil/models.py:884
+#: aleksis/apps/alsijil/models.py:896
 #, fuzzy
 #| msgid "Absences"
 msgid "Assigned person"
 msgstr "Absences"
 
-#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:901 aleksis/apps/alsijil/tables.py:85
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
@@ -551,41 +563,41 @@ msgstr "Absences"
 msgid "Groups"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:896
+#: aleksis/apps/alsijil/models.py:908
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:911
+#: aleksis/apps/alsijil/models.py:923
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:912
+#: aleksis/apps/alsijil/models.py:924
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:919
+#: aleksis/apps/alsijil/models.py:931
 #, fuzzy
 #| msgid "Personal overview"
 msgid "Can view lesson overview"
 msgstr "Vue d'ensemble personnelle"
 
-#: aleksis/apps/alsijil/models.py:920
+#: aleksis/apps/alsijil/models.py:932
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:921
+#: aleksis/apps/alsijil/models.py:933
 #, fuzzy
 #| msgid "Class register"
 msgid "Can view full register"
 msgstr "Registre de la classe"
 
-#: aleksis/apps/alsijil/models.py:922
+#: aleksis/apps/alsijil/models.py:934
 #, fuzzy
 #| msgid "Register absence"
 msgid "Can register absence"
 msgstr "Registre de Absence"
 
-#: aleksis/apps/alsijil/models.py:923
+#: aleksis/apps/alsijil/models.py:935
 #, fuzzy
 #| msgid "List of all personal note filters"
 msgid "Can list all personal note filters"
@@ -694,40 +706,29 @@ msgstr ""
 msgid "Set time range for which documentations may be edited"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
-#: aleksis/apps/alsijil/tables.py:72
+#: aleksis/apps/alsijil/tables.py:27 aleksis/apps/alsijil/tables.py:52
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
 msgid "Edit"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:96
+#: aleksis/apps/alsijil/tables.py:76
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:348
 msgid "Date"
 msgstr "Date"
 
-#: aleksis/apps/alsijil/tables.py:99
+#: aleksis/apps/alsijil/tables.py:79
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:122
 msgid "Period"
 msgstr "Période"
 
-#: aleksis/apps/alsijil/tables.py:118
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
-msgid "Tardiness"
-msgstr "Retard"
-
-#: aleksis/apps/alsijil/tables.py:119
+#: aleksis/apps/alsijil/tables.py:99
 #, fuzzy
 #| msgid "Excused"
 msgid "Excuse"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/tables.py:156
+#: aleksis/apps/alsijil/tables.py:136
 #, fuzzy, python-brace-format
 #| msgid "Summed up tardiness"
 msgid "{value}' tardiness"
@@ -1105,17 +1106,6 @@ msgid ""
 "  "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:7
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:14
-msgid "Create extra mark"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:7
-msgid "Edit extra mark"
-msgstr ""
-
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:16
 #, python-format
@@ -1650,126 +1640,120 @@ msgstr "Vue de semaine"
 msgid "Notes"
 msgstr "Notes"
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:112
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:145
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:264
+#: aleksis/apps/alsijil/views.py:262
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The lesson documentation has been saved."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:298
+#: aleksis/apps/alsijil/views.py:296
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:658
+#: aleksis/apps/alsijil/views.py:656
 msgid "Generate full register printout for {}"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:659
+#: aleksis/apps/alsijil/views.py:657
 msgid "Generate full register printout …"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:660
+#: aleksis/apps/alsijil/views.py:658
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The printout has been generated successfully."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:661
+#: aleksis/apps/alsijil/views.py:659
 msgid "There was a problem while generating the printout."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:664
+#: aleksis/apps/alsijil/views.py:662
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1030
+#: aleksis/apps/alsijil/views.py:1028
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1051
+#: aleksis/apps/alsijil/views.py:1049
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The personal note has been deleted."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1074
-#, fuzzy
-#| msgid "Lesson documentation for calendar week"
-msgid "The extra mark has been created."
-msgstr "Documentation de cours pour la semaine calendrier"
-
-#: aleksis/apps/alsijil/views.py:1086
-#, fuzzy
-#| msgid "Lesson documentation for calendar week"
-msgid "The extra mark has been saved."
-msgstr "Documentation de cours pour la semaine calendrier"
-
-#: aleksis/apps/alsijil/views.py:1097
-msgid "The extra mark has been deleted."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1072
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1131
+#: aleksis/apps/alsijil/views.py:1084
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1142
+#: aleksis/apps/alsijil/views.py:1095
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1164
+#: aleksis/apps/alsijil/views.py:1117
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role has been created."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1176
+#: aleksis/apps/alsijil/views.py:1129
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role has been saved."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1187
+#: aleksis/apps/alsijil/views.py:1140
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role has been deleted."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1221 aleksis/apps/alsijil/views.py:1253
+#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1206
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role has been assigned."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1272
+#: aleksis/apps/alsijil/views.py:1225
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role assignment has been saved."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1293
+#: aleksis/apps/alsijil/views.py:1246
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role assignment has been stopped."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1306
+#: aleksis/apps/alsijil/views.py:1259
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role assignment has been deleted."
 msgstr "Documentation de cours pour la semaine calendrier"
 
+#, fuzzy
+#~| msgid "Lesson documentation for calendar week"
+#~ msgid "The extra mark has been created."
+#~ msgstr "Documentation de cours pour la semaine calendrier"
+
+#, fuzzy
+#~| msgid "Lesson documentation for calendar week"
+#~ msgid "The extra mark has been saved."
+#~ msgstr "Documentation de cours pour la semaine calendrier"
+
 #~ msgid "Current lesson"
 #~ msgstr "Lecon actuelle"
 
diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
index 474943af086754291a287070770f0e915f2f5c6b..7955aa4f442ce564909b05efe9e5317ea3081721 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: 2024-06-13 11:19+0200\n"
+"POT-Creation-Date: 2024-07-14 16:32+0200\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"
@@ -31,8 +31,8 @@ msgstr ""
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
-#: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:33
+#: aleksis/apps/alsijil/tables.py:58
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:96
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
+#: aleksis/apps/alsijil/models.py:763 aleksis/apps/alsijil/models.py:822
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Persona"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:891
+#: aleksis/apps/alsijil/models.py:903
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:895
+#: aleksis/apps/alsijil/models.py:907
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
@@ -178,8 +178,8 @@ msgstr ""
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
-#: aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:97
+#: aleksis/apps/alsijil/tables.py:118
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -188,7 +188,7 @@ msgstr ""
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:126
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:135
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
@@ -220,7 +220,7 @@ msgstr ""
 msgid "Has lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:130
+#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:172
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:236
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:311
@@ -279,14 +279,14 @@ msgid "Short name"
 msgstr "Primus nomen"
 
 #: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
-#: aleksis/apps/alsijil/models.py:855
+#: aleksis/apps/alsijil/models.py:867
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:21
 msgid "Count as absent"
 msgstr ""
 
@@ -306,9 +306,7 @@ msgid "Year"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
-#: aleksis/apps/alsijil/tables.py:120
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
+#: aleksis/apps/alsijil/tables.py:100
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
@@ -388,7 +386,7 @@ msgstr ""
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:91
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
@@ -409,8 +407,8 @@ msgstr "Grex"
 msgid "Participation touched at"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
-#: aleksis/apps/alsijil/models.py:826
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:773
+#: aleksis/apps/alsijil/models.py:829
 msgid "Documentation"
 msgstr ""
 
@@ -418,60 +416,74 @@ msgstr ""
 msgid "Documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:765
+#: aleksis/apps/alsijil/models.py:766
 #, fuzzy
 #| msgid "Group"
 msgid "Groups of Person"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:778
+#: aleksis/apps/alsijil/models.py:779
 msgid "Absence Reason"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:790
+#: aleksis/apps/alsijil/models.py:791
 msgid "Base Absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
+#: aleksis/apps/alsijil/models.py:794 aleksis/apps/alsijil/tables.py:98
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
+msgid "Tardiness"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:805 aleksis/apps/alsijil/models.py:806
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:831
+#: aleksis/apps/alsijil/models.py:834
 msgid "Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:833
+#: aleksis/apps/alsijil/models.py:836
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:840
+#: aleksis/apps/alsijil/models.py:843
 #, fuzzy
 #| msgid "Person"
 msgid "Personal Note"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/models.py:841
+#: aleksis/apps/alsijil/models.py:844
 #, fuzzy
 #| msgid "Person"
 msgid "Personal Notes"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/models.py:856
+#: aleksis/apps/alsijil/models.py:855
+msgid "A person got assigned the same extra mark multiple times per documentation."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:868
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:857
+#: aleksis/apps/alsijil/models.py:869
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
+#: aleksis/apps/alsijil/models.py:875 aleksis/apps/alsijil/models.py:890
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 #, fuzzy
 #| msgid "Group"
 msgid "Group role"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:864
+#: aleksis/apps/alsijil/models.py:876
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -480,15 +492,15 @@ msgstr "Grex"
 msgid "Group roles"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:865
+#: aleksis/apps/alsijil/models.py:877
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:884
+#: aleksis/apps/alsijil/models.py:896
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:901 aleksis/apps/alsijil/tables.py:85
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
@@ -497,35 +509,35 @@ msgstr ""
 msgid "Groups"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:896
+#: aleksis/apps/alsijil/models.py:908
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:911
+#: aleksis/apps/alsijil/models.py:923
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:912
+#: aleksis/apps/alsijil/models.py:924
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:919
+#: aleksis/apps/alsijil/models.py:931
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:920
+#: aleksis/apps/alsijil/models.py:932
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:921
+#: aleksis/apps/alsijil/models.py:933
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:922
+#: aleksis/apps/alsijil/models.py:934
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:923
+#: aleksis/apps/alsijil/models.py:935
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -630,38 +642,27 @@ msgstr ""
 msgid "Set time range for which documentations may be edited"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
-#: aleksis/apps/alsijil/tables.py:72
+#: aleksis/apps/alsijil/tables.py:27 aleksis/apps/alsijil/tables.py:52
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
 msgid "Edit"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:96
+#: aleksis/apps/alsijil/tables.py:76
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:348
 msgid "Date"
 msgstr "dies"
 
-#: aleksis/apps/alsijil/tables.py:99
+#: aleksis/apps/alsijil/tables.py:79
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:122
 msgid "Period"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:118
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
-msgid "Tardiness"
-msgstr ""
-
-#: aleksis/apps/alsijil/tables.py:119
+#: aleksis/apps/alsijil/tables.py:99
 msgid "Excuse"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:156
+#: aleksis/apps/alsijil/tables.py:136
 #, python-brace-format
 msgid "{value}' tardiness"
 msgstr ""
@@ -996,17 +997,6 @@ msgid ""
 "  "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:7
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:14
-msgid "Create extra mark"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:7
-msgid "Edit extra mark"
-msgstr ""
-
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:16
 #, python-format
@@ -1504,99 +1494,87 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:112
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:145
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:264
+#: aleksis/apps/alsijil/views.py:262
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:298
+#: aleksis/apps/alsijil/views.py:296
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:658
+#: aleksis/apps/alsijil/views.py:656
 msgid "Generate full register printout for {}"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:659
+#: aleksis/apps/alsijil/views.py:657
 msgid "Generate full register printout …"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:660
+#: aleksis/apps/alsijil/views.py:658
 msgid "The printout has been generated successfully."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:661
+#: aleksis/apps/alsijil/views.py:659
 msgid "There was a problem while generating the printout."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:664
+#: aleksis/apps/alsijil/views.py:662
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1030
+#: aleksis/apps/alsijil/views.py:1028
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1051
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1074
-msgid "The extra mark has been created."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1086
-msgid "The extra mark has been saved."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1097
-msgid "The extra mark has been deleted."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1072
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1131
+#: aleksis/apps/alsijil/views.py:1084
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1142
+#: aleksis/apps/alsijil/views.py:1095
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1164
+#: aleksis/apps/alsijil/views.py:1117
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1176
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1187
+#: aleksis/apps/alsijil/views.py:1140
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1221 aleksis/apps/alsijil/views.py:1253
+#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1206
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1272
+#: aleksis/apps/alsijil/views.py:1225
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1293
+#: aleksis/apps/alsijil/views.py:1246
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1306
+#: aleksis/apps/alsijil/views.py:1259
 msgid "The group role assignment has been deleted."
 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 7e8285208907941025f0a6da310079f0e35e214e..ac6d9f2c9e90f79abbff6fad12355fb5219b3af5 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: 2024-06-13 11:19+0200\n"
+"POT-Creation-Date: 2024-07-14 16:32+0200\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"
@@ -30,8 +30,8 @@ msgstr ""
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
-#: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:33
+#: aleksis/apps/alsijil/tables.py:58
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -110,7 +110,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:96
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -151,20 +151,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
+#: aleksis/apps/alsijil/models.py:763 aleksis/apps/alsijil/models.py:822
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:891
+#: aleksis/apps/alsijil/models.py:903
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:895
+#: aleksis/apps/alsijil/models.py:907
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
@@ -177,8 +177,8 @@ msgstr ""
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
-#: aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:97
+#: aleksis/apps/alsijil/tables.py:118
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -187,7 +187,7 @@ msgstr ""
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:126
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:135
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
@@ -219,7 +219,7 @@ msgstr ""
 msgid "Has lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:130
+#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:172
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:236
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:311
@@ -276,14 +276,14 @@ msgid "Short name"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
-#: aleksis/apps/alsijil/models.py:855
+#: aleksis/apps/alsijil/models.py:867
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:21
 msgid "Count as absent"
 msgstr ""
 
@@ -303,9 +303,7 @@ msgid "Year"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
-#: aleksis/apps/alsijil/tables.py:120
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
+#: aleksis/apps/alsijil/tables.py:100
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
@@ -381,7 +379,7 @@ msgstr ""
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:91
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
@@ -400,8 +398,8 @@ msgstr ""
 msgid "Participation touched at"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
-#: aleksis/apps/alsijil/models.py:826
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:773
+#: aleksis/apps/alsijil/models.py:829
 msgid "Documentation"
 msgstr ""
 
@@ -409,102 +407,116 @@ msgstr ""
 msgid "Documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:765
+#: aleksis/apps/alsijil/models.py:766
 msgid "Groups of Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:778
+#: aleksis/apps/alsijil/models.py:779
 msgid "Absence Reason"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:790
+#: aleksis/apps/alsijil/models.py:791
 msgid "Base Absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
+#: aleksis/apps/alsijil/models.py:794 aleksis/apps/alsijil/tables.py:98
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
+msgid "Tardiness"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:805 aleksis/apps/alsijil/models.py:806
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:831
+#: aleksis/apps/alsijil/models.py:834
 msgid "Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:833
+#: aleksis/apps/alsijil/models.py:836
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:840
+#: aleksis/apps/alsijil/models.py:843
 msgid "Personal Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:841
+#: aleksis/apps/alsijil/models.py:844
 msgid "Personal Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:856
+#: aleksis/apps/alsijil/models.py:855
+msgid "A person got assigned the same extra mark multiple times per documentation."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:868
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:857
+#: aleksis/apps/alsijil/models.py:869
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
+#: aleksis/apps/alsijil/models.py:875 aleksis/apps/alsijil/models.py:890
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:864
+#: aleksis/apps/alsijil/models.py:876
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:865
+#: aleksis/apps/alsijil/models.py:877
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:884
+#: aleksis/apps/alsijil/models.py:896
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:901 aleksis/apps/alsijil/tables.py:85
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:896
+#: aleksis/apps/alsijil/models.py:908
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:911
+#: aleksis/apps/alsijil/models.py:923
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:912
+#: aleksis/apps/alsijil/models.py:924
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:919
+#: aleksis/apps/alsijil/models.py:931
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:920
+#: aleksis/apps/alsijil/models.py:932
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:921
+#: aleksis/apps/alsijil/models.py:933
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:922
+#: aleksis/apps/alsijil/models.py:934
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:923
+#: aleksis/apps/alsijil/models.py:935
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -609,38 +621,27 @@ msgstr ""
 msgid "Set time range for which documentations may be edited"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
-#: aleksis/apps/alsijil/tables.py:72
+#: aleksis/apps/alsijil/tables.py:27 aleksis/apps/alsijil/tables.py:52
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
 msgid "Edit"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:96
+#: aleksis/apps/alsijil/tables.py:76
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:348
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:99
+#: aleksis/apps/alsijil/tables.py:79
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:122
 msgid "Period"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:118
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
-msgid "Tardiness"
-msgstr ""
-
-#: aleksis/apps/alsijil/tables.py:119
+#: aleksis/apps/alsijil/tables.py:99
 msgid "Excuse"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:156
+#: aleksis/apps/alsijil/tables.py:136
 #, python-brace-format
 msgid "{value}' tardiness"
 msgstr ""
@@ -967,17 +968,6 @@ msgid ""
 "  "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:7
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:14
-msgid "Create extra mark"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:7
-msgid "Edit extra mark"
-msgstr ""
-
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:16
 #, python-format
@@ -1471,98 +1461,86 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:112
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:145
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:264
+#: aleksis/apps/alsijil/views.py:262
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:298
+#: aleksis/apps/alsijil/views.py:296
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:658
+#: aleksis/apps/alsijil/views.py:656
 msgid "Generate full register printout for {}"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:659
+#: aleksis/apps/alsijil/views.py:657
 msgid "Generate full register printout …"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:660
+#: aleksis/apps/alsijil/views.py:658
 msgid "The printout has been generated successfully."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:661
+#: aleksis/apps/alsijil/views.py:659
 msgid "There was a problem while generating the printout."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:664
+#: aleksis/apps/alsijil/views.py:662
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1030
+#: aleksis/apps/alsijil/views.py:1028
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1051
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1074
-msgid "The extra mark has been created."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1086
-msgid "The extra mark has been saved."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1097
-msgid "The extra mark has been deleted."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1072
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1131
+#: aleksis/apps/alsijil/views.py:1084
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1142
+#: aleksis/apps/alsijil/views.py:1095
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1164
+#: aleksis/apps/alsijil/views.py:1117
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1176
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1187
+#: aleksis/apps/alsijil/views.py:1140
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1221 aleksis/apps/alsijil/views.py:1253
+#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1206
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1272
+#: aleksis/apps/alsijil/views.py:1225
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1293
+#: aleksis/apps/alsijil/views.py:1246
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1306
+#: aleksis/apps/alsijil/views.py:1259
 msgid "The group role assignment has been deleted."
 msgstr ""
diff --git a/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po
index aff00561b86b01e0dfb0862151a83a96fc6741cf..7133ed13476ff5368e850561f793109cfad418f3 100644
--- a/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-06-13 11:19+0200\n"
+"POT-Creation-Date: 2024-07-14 16:32+0200\n"
 "PO-Revision-Date: 2023-05-26 04:38+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
 "Language-Team: Russian <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/ru/>\n"
@@ -31,8 +31,8 @@ msgstr "Отметить без уважительной причины"
 msgid "Mark as {excuse_type.name}"
 msgstr "Отметить как {excuse_type.name}"
 
-#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
-#: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:33
+#: aleksis/apps/alsijil/tables.py:58
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr "Удалить"
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr "До"
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:96
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr "Вы не можете одновременно выбрать группу и преподавателя."
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
+#: aleksis/apps/alsijil/models.py:763 aleksis/apps/alsijil/models.py:822
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Физлицо"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:891
+#: aleksis/apps/alsijil/models.py:903
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Дата начала"
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:895
+#: aleksis/apps/alsijil/models.py:907
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Дата окончания"
@@ -178,8 +178,8 @@ msgstr "Начало уроков"
 msgid "End period"
 msgstr "Окончание уроков"
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
-#: aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:97
+#: aleksis/apps/alsijil/tables.py:118
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -188,7 +188,7 @@ msgstr "Окончание уроков"
 msgid "Absent"
 msgstr "Отсутствует"
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:126
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:135
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
@@ -220,7 +220,7 @@ msgstr "Учебный год"
 msgid "Has lesson documentation"
 msgstr "Имеет в наличии учебный материал"
 
-#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:130
+#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:172
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:236
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:311
@@ -277,14 +277,14 @@ msgid "Short name"
 msgstr "Короткое имя"
 
 #: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
-#: aleksis/apps/alsijil/models.py:855
+#: aleksis/apps/alsijil/models.py:867
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr "Полное имя"
 
-#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:21
 msgid "Count as absent"
 msgstr "Количество отсутствующих"
 
@@ -304,9 +304,7 @@ msgid "Year"
 msgstr "Год"
 
 #: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
-#: aleksis/apps/alsijil/tables.py:120
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
+#: aleksis/apps/alsijil/tables.py:100
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
@@ -382,7 +380,7 @@ msgstr "Дополнительная отметка"
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:91
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
@@ -405,8 +403,8 @@ msgstr "Групповая заметка"
 msgid "Participation touched at"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
-#: aleksis/apps/alsijil/models.py:826
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:773
+#: aleksis/apps/alsijil/models.py:829
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Documentation"
@@ -418,116 +416,130 @@ msgstr "Учебный материал"
 msgid "Documentations"
 msgstr "Учебные материалы"
 
-#: aleksis/apps/alsijil/models.py:765
+#: aleksis/apps/alsijil/models.py:766
 #, fuzzy
 #| msgid "Group roles"
 msgid "Groups of Person"
 msgstr "Роли групп"
 
-#: aleksis/apps/alsijil/models.py:778
+#: aleksis/apps/alsijil/models.py:779
 #, fuzzy
 #| msgid "Absences"
 msgid "Absence Reason"
 msgstr "Пропуски"
 
-#: aleksis/apps/alsijil/models.py:790
+#: aleksis/apps/alsijil/models.py:791
 #, fuzzy
 #| msgid "Absences"
 msgid "Base Absence"
 msgstr "Пропуски"
 
-#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
+#: aleksis/apps/alsijil/models.py:794 aleksis/apps/alsijil/tables.py:98
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
+msgid "Tardiness"
+msgstr "Опоздание"
+
+#: aleksis/apps/alsijil/models.py:805 aleksis/apps/alsijil/models.py:806
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:831
+#: aleksis/apps/alsijil/models.py:834
 #, fuzzy
 #| msgid "Notes"
 msgid "Note"
 msgstr "Заметки"
 
-#: aleksis/apps/alsijil/models.py:833
+#: aleksis/apps/alsijil/models.py:836
 #, fuzzy
 #| msgid "Extra mark"
 msgid "Extra Mark"
 msgstr "Дополнительная отметка"
 
-#: aleksis/apps/alsijil/models.py:840
+#: aleksis/apps/alsijil/models.py:843
 #, fuzzy
 #| msgid "Personal note"
 msgid "Personal Note"
 msgstr "Личная заметка"
 
-#: aleksis/apps/alsijil/models.py:841
+#: aleksis/apps/alsijil/models.py:844
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal Notes"
 msgstr "Личные заметки"
 
-#: aleksis/apps/alsijil/models.py:856
+#: aleksis/apps/alsijil/models.py:855
+msgid "A person got assigned the same extra mark multiple times per documentation."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:868
 msgid "Icon"
 msgstr "Иконка"
 
-#: aleksis/apps/alsijil/models.py:857
+#: aleksis/apps/alsijil/models.py:869
 msgid "Colour"
 msgstr "Цвет"
 
-#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
+#: aleksis/apps/alsijil/models.py:875 aleksis/apps/alsijil/models.py:890
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Роль группы"
 
-#: aleksis/apps/alsijil/models.py:864
+#: aleksis/apps/alsijil/models.py:876
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr "Роли групп"
 
-#: aleksis/apps/alsijil/models.py:865
+#: aleksis/apps/alsijil/models.py:877
 msgid "Can assign group role"
 msgstr "Может назначать роль группы"
 
-#: aleksis/apps/alsijil/models.py:884
+#: aleksis/apps/alsijil/models.py:896
 msgid "Assigned person"
 msgstr "Назначенное физлицо"
 
-#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:901 aleksis/apps/alsijil/tables.py:85
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr "Группы"
 
-#: aleksis/apps/alsijil/models.py:896
+#: aleksis/apps/alsijil/models.py:908
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Если нет точной конечной даты, можно оставить незаполненным"
 
-#: aleksis/apps/alsijil/models.py:911
+#: aleksis/apps/alsijil/models.py:923
 msgid "Group role assignment"
 msgstr "Назначение роли группы"
 
-#: aleksis/apps/alsijil/models.py:912
+#: aleksis/apps/alsijil/models.py:924
 msgid "Group role assignments"
 msgstr "Назначение ролей групп"
 
-#: aleksis/apps/alsijil/models.py:919
+#: aleksis/apps/alsijil/models.py:931
 msgid "Can view lesson overview"
 msgstr "Может просматривать обзор урока"
 
-#: aleksis/apps/alsijil/models.py:920
+#: aleksis/apps/alsijil/models.py:932
 msgid "Can view week overview"
 msgstr "Может просматривать недельный обзор"
 
-#: aleksis/apps/alsijil/models.py:921
+#: aleksis/apps/alsijil/models.py:933
 msgid "Can view full register"
 msgstr "Может просматривать весь журнал"
 
-#: aleksis/apps/alsijil/models.py:922
+#: aleksis/apps/alsijil/models.py:934
 msgid "Can register absence"
 msgstr "Может регистрировать отсутствие"
 
-#: aleksis/apps/alsijil/models.py:923
+#: aleksis/apps/alsijil/models.py:935
 msgid "Can list all personal note filters"
 msgstr "Может просматривать все фильтры личных заметок"
 
@@ -632,38 +644,27 @@ msgstr ""
 msgid "Set time range for which documentations may be edited"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
-#: aleksis/apps/alsijil/tables.py:72
+#: aleksis/apps/alsijil/tables.py:27 aleksis/apps/alsijil/tables.py:52
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
 msgid "Edit"
 msgstr "Редактировать"
 
-#: aleksis/apps/alsijil/tables.py:96
+#: aleksis/apps/alsijil/tables.py:76
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:348
 msgid "Date"
 msgstr "Дата"
 
-#: aleksis/apps/alsijil/tables.py:99
+#: aleksis/apps/alsijil/tables.py:79
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:122
 msgid "Period"
 msgstr "Урок"
 
-#: aleksis/apps/alsijil/tables.py:118
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
-msgid "Tardiness"
-msgstr "Опоздание"
-
-#: aleksis/apps/alsijil/tables.py:119
+#: aleksis/apps/alsijil/tables.py:99
 msgid "Excuse"
 msgstr "Объяснительная"
 
-#: aleksis/apps/alsijil/tables.py:156
+#: aleksis/apps/alsijil/tables.py:136
 #, fuzzy, python-brace-format
 #| msgid "{value}' late"
 msgid "{value}' tardiness"
@@ -1020,17 +1021,6 @@ msgstr ""
 "    Не используйте этот функционал для создания объяснительной по-умолчанию или если не ведёте разделение по типам.\n"
 "  "
 
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:7
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:14
-msgid "Create extra mark"
-msgstr "Создать дополнительную отметку"
-
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:7
-msgid "Edit extra mark"
-msgstr "Редактировать дополнительную отметку"
-
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:16
 #, python-format
@@ -1563,108 +1553,111 @@ msgstr "Неделя"
 msgid "Notes"
 msgstr "Заметки"
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:112
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr "Вы или выбрали неправильный урок, или сейчас урока нет."
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:145
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr "Вам нельзя создавать учебные материалы для уроков в будущем."
 
-#: aleksis/apps/alsijil/views.py:264
+#: aleksis/apps/alsijil/views.py:262
 msgid "The lesson documentation has been saved."
 msgstr "Учебный материал сохранён."
 
-#: aleksis/apps/alsijil/views.py:298
+#: aleksis/apps/alsijil/views.py:296
 msgid "The personal notes have been saved."
 msgstr "Личные заметки сохранены."
 
-#: aleksis/apps/alsijil/views.py:658
+#: aleksis/apps/alsijil/views.py:656
 #, fuzzy
 #| msgid "Generate printout"
 msgid "Generate full register printout for {}"
 msgstr "Подготовить к печати"
 
-#: aleksis/apps/alsijil/views.py:659
+#: aleksis/apps/alsijil/views.py:657
 #, fuzzy
 #| msgid "Generate printout"
 msgid "Generate full register printout …"
 msgstr "Подготовить к печати"
 
-#: aleksis/apps/alsijil/views.py:660
+#: aleksis/apps/alsijil/views.py:658
 #, fuzzy
 #| msgid "The personal note has been deleted."
 msgid "The printout has been generated successfully."
 msgstr "Личная заметка удалена."
 
-#: aleksis/apps/alsijil/views.py:661
+#: aleksis/apps/alsijil/views.py:659
 msgid "There was a problem while generating the printout."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:664
+#: aleksis/apps/alsijil/views.py:662
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1030
+#: aleksis/apps/alsijil/views.py:1028
 msgid "The absence has been saved."
 msgstr "Отсутствие сохранено."
 
-#: aleksis/apps/alsijil/views.py:1051
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The personal note has been deleted."
 msgstr "Личная заметка удалена."
 
-#: aleksis/apps/alsijil/views.py:1074
-msgid "The extra mark has been created."
-msgstr "Дополнительная отметка создана."
-
-#: aleksis/apps/alsijil/views.py:1086
-msgid "The extra mark has been saved."
-msgstr "Дополнительная отметка сохранена."
-
-#: aleksis/apps/alsijil/views.py:1097
-msgid "The extra mark has been deleted."
-msgstr "Дополнительная отметка удалена."
-
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1072
 msgid "The excuse type has been created."
 msgstr "Тип объяснительной создан."
 
-#: aleksis/apps/alsijil/views.py:1131
+#: aleksis/apps/alsijil/views.py:1084
 msgid "The excuse type has been saved."
 msgstr "Тип объяснительной сохранён."
 
-#: aleksis/apps/alsijil/views.py:1142
+#: aleksis/apps/alsijil/views.py:1095
 msgid "The excuse type has been deleted."
 msgstr "Тип объяснительной удалён."
 
-#: aleksis/apps/alsijil/views.py:1164
+#: aleksis/apps/alsijil/views.py:1117
 msgid "The group role has been created."
 msgstr "Роль группы создана."
 
-#: aleksis/apps/alsijil/views.py:1176
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The group role has been saved."
 msgstr "Роль группы сохранена."
 
-#: aleksis/apps/alsijil/views.py:1187
+#: aleksis/apps/alsijil/views.py:1140
 msgid "The group role has been deleted."
 msgstr "Роль группы удалена."
 
-#: aleksis/apps/alsijil/views.py:1221 aleksis/apps/alsijil/views.py:1253
+#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1206
 msgid "The group role has been assigned."
 msgstr "Роль группы назначена."
 
-#: aleksis/apps/alsijil/views.py:1272
+#: aleksis/apps/alsijil/views.py:1225
 msgid "The group role assignment has been saved."
 msgstr "Назначение роли группы сохранено."
 
-#: aleksis/apps/alsijil/views.py:1293
+#: aleksis/apps/alsijil/views.py:1246
 msgid "The group role assignment has been stopped."
 msgstr "Назначение роли группы остановлено."
 
-#: aleksis/apps/alsijil/views.py:1306
+#: aleksis/apps/alsijil/views.py:1259
 msgid "The group role assignment has been deleted."
 msgstr "Назначение роли группы удалено."
 
+#~ msgid "Create extra mark"
+#~ msgstr "Создать дополнительную отметку"
+
+#~ msgid "Edit extra mark"
+#~ msgstr "Редактировать дополнительную отметку"
+
+#~ msgid "The extra mark has been created."
+#~ msgstr "Дополнительная отметка создана."
+
+#~ msgid "The extra mark has been saved."
+#~ msgstr "Дополнительная отметка сохранена."
+
+#~ msgid "The extra mark has been deleted."
+#~ msgstr "Дополнительная отметка удалена."
+
 #~ msgid "Current lesson"
 #~ 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 7e8285208907941025f0a6da310079f0e35e214e..ac6d9f2c9e90f79abbff6fad12355fb5219b3af5 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: 2024-06-13 11:19+0200\n"
+"POT-Creation-Date: 2024-07-14 16:32+0200\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"
@@ -30,8 +30,8 @@ msgstr ""
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
-#: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:33
+#: aleksis/apps/alsijil/tables.py:58
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
@@ -110,7 +110,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:96
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -151,20 +151,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
+#: aleksis/apps/alsijil/models.py:763 aleksis/apps/alsijil/models.py:822
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:891
+#: aleksis/apps/alsijil/models.py:903
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:895
+#: aleksis/apps/alsijil/models.py:907
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
@@ -177,8 +177,8 @@ msgstr ""
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
-#: aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:97
+#: aleksis/apps/alsijil/tables.py:118
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -187,7 +187,7 @@ msgstr ""
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:126
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:135
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
@@ -219,7 +219,7 @@ msgstr ""
 msgid "Has lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:130
+#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:172
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:236
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:311
@@ -276,14 +276,14 @@ msgid "Short name"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
-#: aleksis/apps/alsijil/models.py:855
+#: aleksis/apps/alsijil/models.py:867
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:21
 msgid "Count as absent"
 msgstr ""
 
@@ -303,9 +303,7 @@ msgid "Year"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
-#: aleksis/apps/alsijil/tables.py:120
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
+#: aleksis/apps/alsijil/tables.py:100
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
@@ -381,7 +379,7 @@ msgstr ""
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:91
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
@@ -400,8 +398,8 @@ msgstr ""
 msgid "Participation touched at"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
-#: aleksis/apps/alsijil/models.py:826
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:773
+#: aleksis/apps/alsijil/models.py:829
 msgid "Documentation"
 msgstr ""
 
@@ -409,102 +407,116 @@ msgstr ""
 msgid "Documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:765
+#: aleksis/apps/alsijil/models.py:766
 msgid "Groups of Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:778
+#: aleksis/apps/alsijil/models.py:779
 msgid "Absence Reason"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:790
+#: aleksis/apps/alsijil/models.py:791
 msgid "Base Absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
+#: aleksis/apps/alsijil/models.py:794 aleksis/apps/alsijil/tables.py:98
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
+msgid "Tardiness"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:805 aleksis/apps/alsijil/models.py:806
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:831
+#: aleksis/apps/alsijil/models.py:834
 msgid "Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:833
+#: aleksis/apps/alsijil/models.py:836
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:840
+#: aleksis/apps/alsijil/models.py:843
 msgid "Personal Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:841
+#: aleksis/apps/alsijil/models.py:844
 msgid "Personal Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:856
+#: aleksis/apps/alsijil/models.py:855
+msgid "A person got assigned the same extra mark multiple times per documentation."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:868
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:857
+#: aleksis/apps/alsijil/models.py:869
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
+#: aleksis/apps/alsijil/models.py:875 aleksis/apps/alsijil/models.py:890
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:864
+#: aleksis/apps/alsijil/models.py:876
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:865
+#: aleksis/apps/alsijil/models.py:877
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:884
+#: aleksis/apps/alsijil/models.py:896
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:901 aleksis/apps/alsijil/tables.py:85
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:896
+#: aleksis/apps/alsijil/models.py:908
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:911
+#: aleksis/apps/alsijil/models.py:923
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:912
+#: aleksis/apps/alsijil/models.py:924
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:919
+#: aleksis/apps/alsijil/models.py:931
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:920
+#: aleksis/apps/alsijil/models.py:932
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:921
+#: aleksis/apps/alsijil/models.py:933
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:922
+#: aleksis/apps/alsijil/models.py:934
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:923
+#: aleksis/apps/alsijil/models.py:935
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -609,38 +621,27 @@ msgstr ""
 msgid "Set time range for which documentations may be edited"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
-#: aleksis/apps/alsijil/tables.py:72
+#: aleksis/apps/alsijil/tables.py:27 aleksis/apps/alsijil/tables.py:52
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
 msgid "Edit"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:96
+#: aleksis/apps/alsijil/tables.py:76
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:348
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:99
+#: aleksis/apps/alsijil/tables.py:79
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:122
 msgid "Period"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:118
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
-msgid "Tardiness"
-msgstr ""
-
-#: aleksis/apps/alsijil/tables.py:119
+#: aleksis/apps/alsijil/tables.py:99
 msgid "Excuse"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:156
+#: aleksis/apps/alsijil/tables.py:136
 #, python-brace-format
 msgid "{value}' tardiness"
 msgstr ""
@@ -967,17 +968,6 @@ msgid ""
 "  "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:7
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:14
-msgid "Create extra mark"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:7
-msgid "Edit extra mark"
-msgstr ""
-
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:16
 #, python-format
@@ -1471,98 +1461,86 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:112
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:145
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:264
+#: aleksis/apps/alsijil/views.py:262
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:298
+#: aleksis/apps/alsijil/views.py:296
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:658
+#: aleksis/apps/alsijil/views.py:656
 msgid "Generate full register printout for {}"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:659
+#: aleksis/apps/alsijil/views.py:657
 msgid "Generate full register printout …"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:660
+#: aleksis/apps/alsijil/views.py:658
 msgid "The printout has been generated successfully."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:661
+#: aleksis/apps/alsijil/views.py:659
 msgid "There was a problem while generating the printout."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:664
+#: aleksis/apps/alsijil/views.py:662
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1030
+#: aleksis/apps/alsijil/views.py:1028
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1051
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1074
-msgid "The extra mark has been created."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1086
-msgid "The extra mark has been saved."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1097
-msgid "The extra mark has been deleted."
-msgstr ""
-
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1072
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1131
+#: aleksis/apps/alsijil/views.py:1084
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1142
+#: aleksis/apps/alsijil/views.py:1095
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1164
+#: aleksis/apps/alsijil/views.py:1117
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1176
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1187
+#: aleksis/apps/alsijil/views.py:1140
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1221 aleksis/apps/alsijil/views.py:1253
+#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1206
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1272
+#: aleksis/apps/alsijil/views.py:1225
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1293
+#: aleksis/apps/alsijil/views.py:1246
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1306
+#: aleksis/apps/alsijil/views.py:1259
 msgid "The group role assignment has been deleted."
 msgstr ""
diff --git a/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
index d3663a8befb259e29f630d7b08355882257e5e4a..f4d032ee26c75b151cedccdc4b4eb1ccf9516944 100644
--- a/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-06-13 11:19+0200\n"
+"POT-Creation-Date: 2024-07-14 16:32+0200\n"
 "PO-Revision-Date: 2023-01-25 05:58+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
 "Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/uk/>\n"
@@ -31,8 +31,8 @@ msgstr "Позначити як непояснений"
 msgid "Mark as {excuse_type.name}"
 msgstr "Позначити як {excuse_type.name}"
 
-#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
-#: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:33
+#: aleksis/apps/alsijil/tables.py:58
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr "Видалити"
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr "Перед"
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:96
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr "Ви не можете обрати одночасно групу та викладача."
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
+#: aleksis/apps/alsijil/models.py:763 aleksis/apps/alsijil/models.py:822
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Особа"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:891
+#: aleksis/apps/alsijil/models.py:903
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Дата початку"
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:895
+#: aleksis/apps/alsijil/models.py:907
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Дата закінчення"
@@ -178,8 +178,8 @@ msgstr "Початок уроків"
 msgid "End period"
 msgstr "Закінчення уроків"
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
-#: aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:97
+#: aleksis/apps/alsijil/tables.py:118
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -188,7 +188,7 @@ msgstr "Закінчення уроків"
 msgid "Absent"
 msgstr "Відсутній(-я)"
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:126
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:135
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
@@ -220,7 +220,7 @@ msgstr "Навчальний рік"
 msgid "Has lesson documentation"
 msgstr "Має учбовий матеріал"
 
-#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:130
+#: aleksis/apps/alsijil/managers.py:91 aleksis/apps/alsijil/tables.py:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:172
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:236
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:311
@@ -277,14 +277,14 @@ msgid "Short name"
 msgstr "Коротке ім'я"
 
 #: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
-#: aleksis/apps/alsijil/models.py:855
+#: aleksis/apps/alsijil/models.py:867
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr "Повне ім'я"
 
-#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:21
 msgid "Count as absent"
 msgstr "Кількість відсутніх"
 
@@ -304,9 +304,7 @@ msgid "Year"
 msgstr "Рік"
 
 #: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
-#: aleksis/apps/alsijil/tables.py:120
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
+#: aleksis/apps/alsijil/tables.py:100
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
@@ -382,7 +380,7 @@ msgstr "Додаткова відмітка"
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:91
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
@@ -405,8 +403,8 @@ msgstr "Групова нотатка"
 msgid "Participation touched at"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
-#: aleksis/apps/alsijil/models.py:826
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:773
+#: aleksis/apps/alsijil/models.py:829
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Documentation"
@@ -418,116 +416,130 @@ msgstr "Учбовий матеріал"
 msgid "Documentations"
 msgstr "Учбові матеріали"
 
-#: aleksis/apps/alsijil/models.py:765
+#: aleksis/apps/alsijil/models.py:766
 #, fuzzy
 #| msgid "Group roles"
 msgid "Groups of Person"
 msgstr "Ролі груп"
 
-#: aleksis/apps/alsijil/models.py:778
+#: aleksis/apps/alsijil/models.py:779
 #, fuzzy
 #| msgid "Absences"
 msgid "Absence Reason"
 msgstr "Відсутності"
 
-#: aleksis/apps/alsijil/models.py:790
+#: aleksis/apps/alsijil/models.py:791
 #, fuzzy
 #| msgid "Absences"
 msgid "Base Absence"
 msgstr "Відсутності"
 
-#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
+#: aleksis/apps/alsijil/models.py:794 aleksis/apps/alsijil/tables.py:98
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
+msgid "Tardiness"
+msgstr "Запізнення"
+
+#: aleksis/apps/alsijil/models.py:805 aleksis/apps/alsijil/models.py:806
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:831
+#: aleksis/apps/alsijil/models.py:834
 #, fuzzy
 #| msgid "Notes"
 msgid "Note"
 msgstr "Нотатки"
 
-#: aleksis/apps/alsijil/models.py:833
+#: aleksis/apps/alsijil/models.py:836
 #, fuzzy
 #| msgid "Extra mark"
 msgid "Extra Mark"
 msgstr "Додаткова відмітка"
 
-#: aleksis/apps/alsijil/models.py:840
+#: aleksis/apps/alsijil/models.py:843
 #, fuzzy
 #| msgid "Personal note"
 msgid "Personal Note"
 msgstr "Особиста нотатка"
 
-#: aleksis/apps/alsijil/models.py:841
+#: aleksis/apps/alsijil/models.py:844
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal Notes"
 msgstr "Особисті нотатки"
 
-#: aleksis/apps/alsijil/models.py:856
+#: aleksis/apps/alsijil/models.py:855
+msgid "A person got assigned the same extra mark multiple times per documentation."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:868
 msgid "Icon"
 msgstr "Піктограма"
 
-#: aleksis/apps/alsijil/models.py:857
+#: aleksis/apps/alsijil/models.py:869
 msgid "Colour"
 msgstr "Колір"
 
-#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
+#: aleksis/apps/alsijil/models.py:875 aleksis/apps/alsijil/models.py:890
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Роль групи"
 
-#: aleksis/apps/alsijil/models.py:864
+#: aleksis/apps/alsijil/models.py:876
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr "Ролі груп"
 
-#: aleksis/apps/alsijil/models.py:865
+#: aleksis/apps/alsijil/models.py:877
 msgid "Can assign group role"
 msgstr "Може призначати роль групи"
 
-#: aleksis/apps/alsijil/models.py:884
+#: aleksis/apps/alsijil/models.py:896
 msgid "Assigned person"
 msgstr "Призначена особа"
 
-#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:901 aleksis/apps/alsijil/tables.py:85
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr "Групи"
 
-#: aleksis/apps/alsijil/models.py:896
+#: aleksis/apps/alsijil/models.py:908
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Якщо немає точної кінцевої дати, можна залишити порожнім"
 
-#: aleksis/apps/alsijil/models.py:911
+#: aleksis/apps/alsijil/models.py:923
 msgid "Group role assignment"
 msgstr "Призначення ролі групи"
 
-#: aleksis/apps/alsijil/models.py:912
+#: aleksis/apps/alsijil/models.py:924
 msgid "Group role assignments"
 msgstr "Призначення ролі групи"
 
-#: aleksis/apps/alsijil/models.py:919
+#: aleksis/apps/alsijil/models.py:931
 msgid "Can view lesson overview"
 msgstr "Може бачити огляд уроку"
 
-#: aleksis/apps/alsijil/models.py:920
+#: aleksis/apps/alsijil/models.py:932
 msgid "Can view week overview"
 msgstr "Може бачити огляд тижня"
 
-#: aleksis/apps/alsijil/models.py:921
+#: aleksis/apps/alsijil/models.py:933
 msgid "Can view full register"
 msgstr "Може бачити весь журнал"
 
-#: aleksis/apps/alsijil/models.py:922
+#: aleksis/apps/alsijil/models.py:934
 msgid "Can register absence"
 msgstr "Може реєструвати пропуск"
 
-#: aleksis/apps/alsijil/models.py:923
+#: aleksis/apps/alsijil/models.py:935
 msgid "Can list all personal note filters"
 msgstr "Може бачити усі фільтри особистих нотаток"
 
@@ -632,38 +644,27 @@ msgstr ""
 msgid "Set time range for which documentations may be edited"
 msgstr ""
 
-#: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
-#: aleksis/apps/alsijil/tables.py:72
+#: aleksis/apps/alsijil/tables.py:27 aleksis/apps/alsijil/tables.py:52
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
 msgid "Edit"
 msgstr "Редагувати"
 
-#: aleksis/apps/alsijil/tables.py:96
+#: aleksis/apps/alsijil/tables.py:76
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:348
 msgid "Date"
 msgstr "Дата"
 
-#: aleksis/apps/alsijil/tables.py:99
+#: aleksis/apps/alsijil/tables.py:79
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:122
 msgid "Period"
 msgstr "Урок"
 
-#: aleksis/apps/alsijil/tables.py:118
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:161
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:21
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:46
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:123
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:323
-msgid "Tardiness"
-msgstr "Запізнення"
-
-#: aleksis/apps/alsijil/tables.py:119
+#: aleksis/apps/alsijil/tables.py:99
 msgid "Excuse"
 msgstr "Пояснення"
 
-#: aleksis/apps/alsijil/tables.py:156
+#: aleksis/apps/alsijil/tables.py:136
 #, fuzzy, python-brace-format
 #| msgid "{value}' late"
 msgid "{value}' tardiness"
@@ -1020,17 +1021,6 @@ msgstr ""
 "    Не користуйтеся цим для створення типового пояснення або якщо не розділяєте на типи пояснень.\n"
 "  "
 
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:7
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:14
-msgid "Create extra mark"
-msgstr "Створити додаткову позначку"
-
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:6
-#: aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html:7
-msgid "Edit extra mark"
-msgstr "Редагувати додаткову позначку"
-
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:16
 #, python-format
@@ -1563,108 +1553,111 @@ msgstr "Тиждень"
 msgid "Notes"
 msgstr "Нотатки"
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:112
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr "Або Ви обрали неправильний урок, або зараз уроку немає."
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:145
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr "Вам не дозволено створювати учбові матеріали для уроку у майбутньому."
 
-#: aleksis/apps/alsijil/views.py:264
+#: aleksis/apps/alsijil/views.py:262
 msgid "The lesson documentation has been saved."
 msgstr "Учбовий матеріал збережений."
 
-#: aleksis/apps/alsijil/views.py:298
+#: aleksis/apps/alsijil/views.py:296
 msgid "The personal notes have been saved."
 msgstr "Особисті нотатки збережені."
 
-#: aleksis/apps/alsijil/views.py:658
+#: aleksis/apps/alsijil/views.py:656
 #, fuzzy
 #| msgid "Generate printout"
 msgid "Generate full register printout for {}"
 msgstr "Підготувати для друку"
 
-#: aleksis/apps/alsijil/views.py:659
+#: aleksis/apps/alsijil/views.py:657
 #, fuzzy
 #| msgid "Generate printout"
 msgid "Generate full register printout …"
 msgstr "Підготувати для друку"
 
-#: aleksis/apps/alsijil/views.py:660
+#: aleksis/apps/alsijil/views.py:658
 #, fuzzy
 #| msgid "The personal note has been deleted."
 msgid "The printout has been generated successfully."
 msgstr "Особиста нотатка видалена."
 
-#: aleksis/apps/alsijil/views.py:661
+#: aleksis/apps/alsijil/views.py:659
 msgid "There was a problem while generating the printout."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:664
+#: aleksis/apps/alsijil/views.py:662
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1030
+#: aleksis/apps/alsijil/views.py:1028
 msgid "The absence has been saved."
 msgstr "Пропуск збережений."
 
-#: aleksis/apps/alsijil/views.py:1051
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The personal note has been deleted."
 msgstr "Особиста нотатка видалена."
 
-#: aleksis/apps/alsijil/views.py:1074
-msgid "The extra mark has been created."
-msgstr "Додаткова позначка сторена."
-
-#: aleksis/apps/alsijil/views.py:1086
-msgid "The extra mark has been saved."
-msgstr "Додаткова позначка збережена."
-
-#: aleksis/apps/alsijil/views.py:1097
-msgid "The extra mark has been deleted."
-msgstr "Додаткова позначка видалена."
-
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1072
 msgid "The excuse type has been created."
 msgstr "Тип пояснення створений."
 
-#: aleksis/apps/alsijil/views.py:1131
+#: aleksis/apps/alsijil/views.py:1084
 msgid "The excuse type has been saved."
 msgstr "Тип пояснення збережений."
 
-#: aleksis/apps/alsijil/views.py:1142
+#: aleksis/apps/alsijil/views.py:1095
 msgid "The excuse type has been deleted."
 msgstr "Тип пояснення видалений."
 
-#: aleksis/apps/alsijil/views.py:1164
+#: aleksis/apps/alsijil/views.py:1117
 msgid "The group role has been created."
 msgstr "Роль групи створена."
 
-#: aleksis/apps/alsijil/views.py:1176
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The group role has been saved."
 msgstr "Роль групи збережена."
 
-#: aleksis/apps/alsijil/views.py:1187
+#: aleksis/apps/alsijil/views.py:1140
 msgid "The group role has been deleted."
 msgstr "Роль групи видалена."
 
-#: aleksis/apps/alsijil/views.py:1221 aleksis/apps/alsijil/views.py:1253
+#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1206
 msgid "The group role has been assigned."
 msgstr "Роль групи призначена."
 
-#: aleksis/apps/alsijil/views.py:1272
+#: aleksis/apps/alsijil/views.py:1225
 msgid "The group role assignment has been saved."
 msgstr "Призначення ролі групи збережене."
 
-#: aleksis/apps/alsijil/views.py:1293
+#: aleksis/apps/alsijil/views.py:1246
 msgid "The group role assignment has been stopped."
 msgstr "Призначення ролі групи зупинене."
 
-#: aleksis/apps/alsijil/views.py:1306
+#: aleksis/apps/alsijil/views.py:1259
 msgid "The group role assignment has been deleted."
 msgstr "Призначення ролі групи видалене."
 
+#~ msgid "Create extra mark"
+#~ msgstr "Створити додаткову позначку"
+
+#~ msgid "Edit extra mark"
+#~ msgstr "Редагувати додаткову позначку"
+
+#~ msgid "The extra mark has been created."
+#~ msgstr "Додаткова позначка сторена."
+
+#~ msgid "The extra mark has been saved."
+#~ msgstr "Додаткова позначка збережена."
+
+#~ msgid "The extra mark has been deleted."
+#~ msgstr "Додаткова позначка видалена."
+
 #~ msgid "Current lesson"
 #~ msgstr "Поточний урок"