diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 91bd7719c86b5ae5fda50c757bd0a2b3e9af60a0..b6847a7f8dd473addf930b1bdc027f4bb4a70b94 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,20 @@ All notable changes to this project will be documented in this file.
 The format is based on `Keep a Changelog`_,
 and this project adheres to `Semantic Versioning`_.
 
+`2.0rc6`_ - 2021-08-25
+----------------------
+
+Changed
+~~~~~~~
+
+* Translations for German have been updated. 
+
+Fixed
+~~~~~
+
+* Fix problems with displaying dates for events in the week and lesson view.
+* Unique constraint on lesson documentations and personal notes did not work and caused racey duplicates.
+
 `2.0rc5`_ - 2021-08-12
 ----------------------
 
@@ -181,3 +195,4 @@ Fixed
 .. _2.0rc3: https://edugit.org/AlekSIS/Official/AlekSIS-App-Alsijil/-/tags/2.0rc3
 .. _2.0rc4: https://edugit.org/AlekSIS/Official/AlekSIS-App-Alsijil/-/tags/2.0rc4
 .. _2.0rc5: https://edugit.org/AlekSIS/Official/AlekSIS-App-Alsijil/-/tags/2.0rc5
+.. _2.0rc6: https://edugit.org/AlekSIS/Official/AlekSIS-App-Alsijil/-/tags/2.0rc6
diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
index 331729ebc465ea158ae6fda64df94c1eb20b3950..30d41d21868fde3e5aed4655a80ea1b228e4570a 100644
--- a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-08 16:49+0200\n"
+"POT-Creation-Date: 2021-08-28 17:33+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"
@@ -18,35 +18,35 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
 
-#: aleksis/apps/alsijil/actions.py:17
+#: aleksis/apps/alsijil/actions.py:18
 msgid "Mark as excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:24
+#: aleksis/apps/alsijil/actions.py:25
 msgid "Mark as unexcused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:31
+#: aleksis/apps/alsijil/actions.py:32
 #, python-brace-format
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:41 aleksis/apps/alsijil/tables.py:29
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:49 aleksis/apps/alsijil/tables.py:74
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:61
+#: aleksis/apps/alsijil/actions.py:68
 msgid "{} asks you to check some class register entries."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:79
+#: aleksis/apps/alsijil/actions.py:86
 #, python-brace-format
 msgid "We have successfully sent notifications to {count_teachers} persons for {count_items} lessons."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:85
+#: aleksis/apps/alsijil/actions.py:92
 msgid "Ask teacher to check data"
 msgstr ""
 
@@ -110,7 +110,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
 #: aleksis/apps/alsijil/tables.py:107
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
@@ -132,7 +132,7 @@ msgid "Homework for the next lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:292
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr ""
@@ -147,13 +147,13 @@ msgstr ""
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
 #: aleksis/apps/alsijil/models.py:446
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
 #: aleksis/apps/alsijil/models.py:450
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
@@ -168,7 +168,7 @@ msgid "End period"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:148
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:52
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
@@ -177,10 +177,10 @@ msgid "Absent"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:56
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:74
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
@@ -207,16 +207,16 @@ msgstr ""
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:288
+#: aleksis/apps/alsijil/forms.py:290
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:289
+#: aleksis/apps/alsijil/forms.py:291
 msgid "Has lesson documentation"
 msgstr ""
 
 #: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:56
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
@@ -281,7 +281,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
 msgstr ""
@@ -333,8 +333,8 @@ msgstr ""
 #: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
 #: aleksis/apps/alsijil/models.py:413
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:22
 msgid "Name"
 msgstr ""
 
@@ -347,7 +347,7 @@ msgid "Personal note"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:114
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
@@ -356,7 +356,7 @@ msgid "Personal notes"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:149
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:381
@@ -364,7 +364,7 @@ msgid "Lesson topic"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:157
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
@@ -373,7 +373,7 @@ msgid "Homework"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:165
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
@@ -381,8 +381,8 @@ msgid "Group note"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:140
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
 msgid "Lesson documentation"
 msgstr ""
 
@@ -410,7 +410,7 @@ msgid "Group role"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:127
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -554,7 +554,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:115
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr ""
 
@@ -570,31 +570,31 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:27
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:26
 msgid ""
 "\n"
-"                  As the length of this absence is longer than one day,\n"
-"                  please double check the correctness of your entry.\n"
-"                "
+"                As the length of this absence is longer than one day,\n"
+"                please double check the correctness of your entry.\n"
+"              "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:37
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:35
 #, python-format
 msgid " %(count)s affected lessons "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:42
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:40
 msgid ""
 "\n"
 "                  There are no affected lessons. Registering this absence won't have any effect.\n"
 "                "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:59
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:57
 msgid "Reset status to 'not absent'"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:81
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:79
 msgid "Cancel"
 msgstr ""
 
@@ -648,25 +648,25 @@ msgstr ""
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:20
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
 msgid "Back to week view"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:29
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 msgid "My previous lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:38
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
 msgid "My next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:50
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
 #, python-format
 msgid "%(period)s. period"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:85
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
 #, python-format
 msgid ""
 "\n"
@@ -674,7 +674,7 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:95
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
 #, python-format
 msgid ""
 "\n"
@@ -682,11 +682,11 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
 msgid "Previous lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
 msgid "Change history"
 msgstr ""
@@ -717,9 +717,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:34
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:91
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
 msgid "Tardiness"
 msgstr ""
@@ -799,9 +799,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:128
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:10
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:16
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:26
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:69
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:67
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:269
 msgid "Absences"
 msgstr ""
@@ -812,7 +812,7 @@ msgid "thereof"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:142
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:86
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:81
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:283
 msgid "Unexcused"
@@ -844,15 +844,15 @@ msgid "Summed up tardiness"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:94
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:378
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:381
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
 msgid ""
 "\n"
 "            There are no lessons for the selected group or teacher in this week.\n"
@@ -870,13 +870,13 @@ msgstr ""
 msgid "Edit excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:5
-#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:5
+#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:4
+#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:4
 msgid ""
 "\n"
-"      This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
-"      Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
-"    "
+"    This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
+"    Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
@@ -947,12 +947,12 @@ msgstr ""
 msgid "No one assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:42
+#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:41
 msgid ""
 "\n"
-"      You can get some additional actions for each group role assignment if you click on the name of the\n"
-"      corresponding person.\n"
-"    "
+"    You can get some additional actions for each group role assignment if you click on the name of the\n"
+"    corresponding person.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:21
@@ -964,15 +964,15 @@ msgid "Please check if the following class register entries are complete and cor
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:27
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:44
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:42
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:126
 msgid "(e)"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:33
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:48
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:130
 msgid "(u)"
 msgstr ""
@@ -1033,24 +1033,24 @@ msgstr ""
 msgid "Execute"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:7
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:6
 msgid "No students available."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:13
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Primary group"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:43
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:41
 msgid "Sum"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:107
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:105
 msgid "Show more details"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:108
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:106
 msgid "Details"
 msgstr ""
 
@@ -1233,62 +1233,62 @@ msgstr ""
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1029
+#: aleksis/apps/alsijil/views.py:1031
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1050
+#: aleksis/apps/alsijil/views.py:1052
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1072
+#: aleksis/apps/alsijil/views.py:1074
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1084
+#: aleksis/apps/alsijil/views.py:1086
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1095
+#: aleksis/apps/alsijil/views.py:1097
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1116
+#: aleksis/apps/alsijil/views.py:1118
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1128
+#: aleksis/apps/alsijil/views.py:1130
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1139
+#: aleksis/apps/alsijil/views.py:1141
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1160
+#: aleksis/apps/alsijil/views.py:1162
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1172
+#: aleksis/apps/alsijil/views.py:1174
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1183
+#: aleksis/apps/alsijil/views.py:1185
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1216 aleksis/apps/alsijil/views.py:1248
+#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1267
+#: aleksis/apps/alsijil/views.py:1269
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1288
+#: aleksis/apps/alsijil/views.py:1290
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1301
+#: aleksis/apps/alsijil/views.py:1303
 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 928e8b7b62f838796c845ba16d07be450fdae3b2..5be03766fc5fd2402de588d24f214fc62a8bde3a 100644
--- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
@@ -7,10 +7,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-08 16:49+0200\n"
-"PO-Revision-Date: 2021-05-21 16:09+0000\n"
-"Last-Translator: Lloyd Meins <teckids@lloydmeins.de>\n"
-"Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/de/>\n"
+"POT-Creation-Date: 2021-08-28 17:33+0200\n"
+"PO-Revision-Date: 2021-08-28 15:59+0000\n"
+"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
+"Language-Team: German <https://translate.edugit.org/projects/aleksis/"
+"aleksis-app-alsijil/de/>\n"
 "Language: de_DE\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,39 +19,35 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.4\n"
 
-#: aleksis/apps/alsijil/actions.py:17
-#, fuzzy
-#| msgid "Mark as"
+#: aleksis/apps/alsijil/actions.py:18
 msgid "Mark as excused"
-msgstr "Markiere als"
+msgstr "Als entschuldigt markieren"
 
-#: aleksis/apps/alsijil/actions.py:24
-#, fuzzy
-#| msgid "unexcused"
+#: aleksis/apps/alsijil/actions.py:25
 msgid "Mark as unexcused"
-msgstr "unentschuldigt"
+msgstr "Als unentschuldigt markieren"
 
-#: aleksis/apps/alsijil/actions.py:31
+#: aleksis/apps/alsijil/actions.py:32
 #, python-brace-format
 msgid "Mark as {excuse_type.name}"
-msgstr ""
+msgstr "Als {excuse_type.name} markieren"
 
-#: aleksis/apps/alsijil/actions.py:41 aleksis/apps/alsijil/tables.py:29
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:49 aleksis/apps/alsijil/tables.py:74
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr "Löschen"
 
-#: aleksis/apps/alsijil/actions.py:61
+#: aleksis/apps/alsijil/actions.py:68
 msgid "{} asks you to check some class register entries."
 msgstr "{} bittet Sie, einige Klassenbucheinträge zu überprüfen."
 
-#: aleksis/apps/alsijil/actions.py:79
+#: aleksis/apps/alsijil/actions.py:86
 #, python-brace-format
 msgid "We have successfully sent notifications to {count_teachers} persons for {count_items} lessons."
 msgstr "Wir haben erfolgreich Benachrichtigungen an {count_teachers} Personen für {count_items} Stunden gesendet."
 
-#: aleksis/apps/alsijil/actions.py:85
+#: aleksis/apps/alsijil/actions.py:92
 msgid "Ask teacher to check data"
 msgstr "Lehrkraft bitten, die Daten zu überprüfen"
 
@@ -108,13 +105,13 @@ msgstr "Die persönliche Notiz ist als entschuldigt, aber nicht als abwesend mar
 
 #: aleksis/apps/alsijil/filters.py:10
 msgid "After"
-msgstr ""
+msgstr "Nach"
 
 #: aleksis/apps/alsijil/filters.py:11
 msgid "Before"
-msgstr ""
+msgstr "Bevor"
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
 #: aleksis/apps/alsijil/tables.py:107
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
@@ -124,23 +121,19 @@ msgid "Subject"
 msgstr "Fach"
 
 #: aleksis/apps/alsijil/filters.py:16
-#, fuzzy
-#| msgid "Tardiness (in m)"
 msgid "Tardiness is lower than"
-msgstr "Verspätung (in m)"
+msgstr "Verspätung ist geringer als"
 
 #: aleksis/apps/alsijil/filters.py:17
-#, fuzzy
-#| msgid "Tardiness (in m)"
 msgid "Tardiness is bigger than"
-msgstr "Verspätung (in m)"
+msgstr "Verspätung ist größer als"
 
 #: aleksis/apps/alsijil/forms.py:47
 msgid "Homework for the next lesson"
 msgstr "Hausaufgabe zur nächsten Stunde"
 
 #: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:292
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr "Gruppe"
@@ -155,13 +148,13 @@ msgstr "Lehrkraft"
 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:144 aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
 #: aleksis/apps/alsijil/models.py:446
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Startdatum"
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
 #: aleksis/apps/alsijil/models.py:450
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
@@ -176,7 +169,7 @@ msgid "End period"
 msgstr "Endstunde"
 
 #: aleksis/apps/alsijil/forms.py:148
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:52
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
@@ -185,10 +178,10 @@ msgid "Absent"
 msgstr "Abwesend"
 
 #: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:56
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:74
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
@@ -215,16 +208,16 @@ msgstr "Bemerkungen"
 msgid "Person"
 msgstr "Person"
 
-#: aleksis/apps/alsijil/forms.py:288
+#: aleksis/apps/alsijil/forms.py:290
 msgid "School term"
 msgstr "Schuljahr"
 
-#: aleksis/apps/alsijil/forms.py:289
+#: aleksis/apps/alsijil/forms.py:291
 msgid "Has lesson documentation"
 msgstr "Hat eine Stunden-Dokumentation"
 
 #: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:56
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
@@ -289,7 +282,7 @@ msgstr "Entschuldigungsarten"
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
 msgstr "Zusätzliche Markierungen"
@@ -341,8 +334,8 @@ msgstr "Kurzname"
 #: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
 #: aleksis/apps/alsijil/models.py:413
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:22
 msgid "Name"
 msgstr "Name"
 
@@ -355,7 +348,7 @@ msgid "Personal note"
 msgstr "Persönliche Notiz"
 
 #: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:114
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
@@ -364,7 +357,7 @@ msgid "Personal notes"
 msgstr "Persönliche Notizen"
 
 #: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:149
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:381
@@ -372,7 +365,7 @@ msgid "Lesson topic"
 msgstr "Stundenthema"
 
 #: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:157
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
@@ -381,7 +374,7 @@ msgid "Homework"
 msgstr "Hausaufgaben"
 
 #: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:165
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
@@ -389,8 +382,8 @@ msgid "Group note"
 msgstr "Gruppennotiz"
 
 #: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:140
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
 msgid "Lesson documentation"
 msgstr "Stunden-Dokumentation"
 
@@ -418,7 +411,7 @@ msgid "Group role"
 msgstr "Gruppenrolle"
 
 #: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:127
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -465,7 +458,7 @@ msgstr "Blockiere das Hinzufügen von persönlichen Notizen für ausgefallene St
 
 #: aleksis/apps/alsijil/preferences.py:25
 msgid "Allow users to view their own personal notes"
-msgstr "Erlaube Nutzern, ihre eigenen persönlichen Notizen zu sehen"
+msgstr "Erlaube Benutzern, ihre eigenen persönlichen Notizen zu sehen"
 
 #: aleksis/apps/alsijil/preferences.py:34
 msgid "Allow primary group owners to register future absences for students in their groups"
@@ -525,7 +518,7 @@ msgstr "Jede Seite muss mindestens einen Eintrag anzeigen."
 
 #: aleksis/apps/alsijil/preferences.py:134
 msgid "Filter lessons by existence of their lesson documentation on default"
-msgstr ""
+msgstr "Stunden standardmäßig anhand der Existenz ihrer Stundendokumentation filtern"
 
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:43
 #: aleksis/apps/alsijil/tables.py:68
@@ -550,21 +543,19 @@ msgid "Teachers"
 msgstr "Lehrkräfte"
 
 #: aleksis/apps/alsijil/tables.py:110
-#, fuzzy
-#| msgid "Excused"
 msgid "Excuse"
-msgstr "Entschuldigt"
+msgstr "Entschuldigen"
 
 #: aleksis/apps/alsijil/tables.py:147
 #, python-brace-format
 msgid "{value}' late"
-msgstr ""
+msgstr "{value}' verspätet"
 
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:5
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:115
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr "Abwesenheit eintragen"
 
@@ -583,24 +574,24 @@ msgstr ""
 "      Möchten Sie wirklich folgende Abwesenheit eintragen?\n"
 "    "
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:27
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:26
 msgid ""
 "\n"
-"                  As the length of this absence is longer than one day,\n"
-"                  please double check the correctness of your entry.\n"
-"                "
+"                As the length of this absence is longer than one day,\n"
+"                please double check the correctness of your entry.\n"
+"              "
 msgstr ""
 "\n"
-"                  Da diese Abwesenheit über mehr als einen Tag geht, \n"
+"                Da diese Abwesenheit über mehr als einen Tag geht, \n"
 "überprüfen Sie bitte die Richtigkeit Ihres Eintrags erneut.\n"
-"                "
+"              "
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:37
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:35
 #, python-format
 msgid " %(count)s affected lessons "
 msgstr " %(count)s betroffene Stunden "
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:42
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:40
 msgid ""
 "\n"
 "                  There are no affected lessons. Registering this absence won't have any effect.\n"
@@ -610,11 +601,11 @@ msgstr ""
 "                  Es gibt keine betroffenen Stunden. Das Eintragen dieser Abwesenheit wird keinen Effekt haben.\n"
 "                "
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:59
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:57
 msgid "Reset status to 'not absent'"
 msgstr "Status auf \"nicht abwesend\" zurücksetzen"
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:81
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:79
 msgid "Cancel"
 msgstr "Abbrechen"
 
@@ -668,25 +659,25 @@ msgstr "Schülerinnen und Schüler"
 msgid "Lesson"
 msgstr "Unterrichtsstunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:20
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
 msgid "Back to week view"
 msgstr "Zurück zur Wochenübersicht"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:29
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 msgid "My previous lesson"
 msgstr "Meine vorherige Stunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:38
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
 msgid "My next lesson"
 msgstr "Meine nächste Stunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:50
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
 #, python-format
 msgid "%(period)s. period"
 msgstr "%(period)s. Stunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:85
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
 #, python-format
 msgid ""
 "\n"
@@ -697,7 +688,7 @@ msgstr ""
 "            Vorherige %(subject)s-Stunde\n"
 "          "
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:95
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
 #, python-format
 msgid ""
 "\n"
@@ -708,11 +699,11 @@ msgstr ""
 "            Nächste %(subject)s-Stunde\n"
 "          "
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
 msgid "Previous lesson"
 msgstr "Vorherige Unterrichtsstunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
 msgid "Change history"
 msgstr "Veränderungen"
@@ -743,9 +734,9 @@ msgstr "Verspätete Personen:"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:34
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:91
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
 msgid "Tardiness"
 msgstr "Verspätung"
@@ -796,23 +787,19 @@ msgid "Back"
 msgstr "Zurück"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:22
-#, fuzzy, python-format
-#| msgid ""
-#| "\n"
-#| "    Class register overview for %(person)s\n"
-#| "  "
+#, python-format
 msgid ""
 "\n"
 "      Class register overview for %(person)s\n"
 "    "
 msgstr ""
 "\n"
-"    Klassenbuchübersicht für %(person)s\n"
-"  "
+"      Klassenbuchübersicht für %(person)s\n"
+"    "
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:50
 msgid "Statistics"
-msgstr ""
+msgstr "Statistiken"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:65
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:304
@@ -820,24 +807,20 @@ msgid "Relevant personal notes"
 msgstr "Relevante persönliche Notizen"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:68
-#, fuzzy
-#| msgid "Relevant personal notes"
 msgid "Filter personal notes"
-msgstr "Relevante persönliche Notizen"
+msgstr "Persönliche Notizen filtern"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:73
-#, fuzzy
-#| msgid "Personal note filters"
 msgid "Clear all filters"
-msgstr "Filter für persönliche Notizen"
+msgstr "Alle Filter zurücksetzen"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:76
 msgid "Close"
-msgstr ""
+msgstr "Schließen"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
 msgid "Filter"
-msgstr ""
+msgstr "Filtern"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:119
 msgid "Statistics on absences, tardiness and remarks"
@@ -845,9 +828,9 @@ msgstr "Statistiken zu Fehlzeiten, Verspätungen und Bemerkungen"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:128
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:10
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:16
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:26
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:69
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:67
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:269
 msgid "Absences"
 msgstr "Fehlstunden"
@@ -858,7 +841,7 @@ msgid "thereof"
 msgstr "davon"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:142
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:86
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:81
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:283
 msgid "Unexcused"
@@ -892,15 +875,15 @@ msgid "Summed up tardiness"
 msgstr "Summierte Verspätung"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:94
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr "Anzahl der Verspätungen"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:378
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
 msgid "No lessons available"
 msgstr "Keine Stunden verfügbar"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:381
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
 msgid ""
 "\n"
 "            There are no lessons for the selected group or teacher in this week.\n"
@@ -921,18 +904,21 @@ msgstr "Entschuldigungsart erstellen"
 msgid "Edit excuse type"
 msgstr "Entschuldigungsart bearbeiten"
 
-#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:5
-#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:5
+#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:4
+#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:4
 msgid ""
 "\n"
-"      This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
-"      Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
-"    "
+"    This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
+"    Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
+"  "
 msgstr ""
 "\n"
-"      Diese Funktion sollte nur benutzt werden, um Alternativen zur normalen Entschuldigung, welche von sich aus extra gezählt wird, zu definieren.\n"
-"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"
-"    "
+"    Diese Funktion sollte nur benutzt werden, um Alternativen zur normalen "
+"Entschuldigung, welche von sich aus extra gezählt wird, zu definieren.\n"
+"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
@@ -1002,17 +988,18 @@ msgstr "Gruppenrollenzuweisung bearbeiten"
 msgid "No one assigned."
 msgstr "Niemand zugewiesen."
 
-#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:42
+#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:41
 msgid ""
 "\n"
-"      You can get some additional actions for each group role assignment if you click on the name of the\n"
-"      corresponding person.\n"
-"    "
+"    You can get some additional actions for each group role assignment if you click on the name of the\n"
+"    corresponding person.\n"
+"  "
 msgstr ""
 "\n"
-"      Sie können zusätzliche Aktionen für jede Gruppenrollenzuweisung aufrufen, \n"
+"    Sie können zusätzliche Aktionen für jede Gruppenrollenzuweisung "
+"aufrufen, \n"
 "wenn Sie auf den Namen der entsprechenden Person klicken.\n"
-"    "
+"  "
 
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:21
 msgid "Stop"
@@ -1023,15 +1010,15 @@ msgid "Please check if the following class register entries are complete and cor
 msgstr "Bitte prüfen Sie, ob die folgenden Klassenbucheinträge komplett und richtig sind:"
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:27
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:44
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:42
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:126
 msgid "(e)"
 msgstr "(e)"
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:33
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:48
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:130
 msgid "(u)"
 msgstr "(u)"
@@ -1092,24 +1079,24 @@ msgstr "Stundentabelle"
 msgid "Execute"
 msgstr "Ausführen"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:7
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:6
 msgid "No students available."
 msgstr "Keine Schülerinnen und Schüler verfügbar."
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:13
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Primary group"
 msgstr "Primärgruppe"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:43
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:41
 msgid "Sum"
 msgstr "Summe"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:107
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:105
 msgid "Show more details"
 msgstr "Mehr Details anzeigen"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:108
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:106
 msgid "Details"
 msgstr "Details"
 
@@ -1284,7 +1271,7 @@ msgstr "e"
 
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:373
 msgid "Week"
-msgstr "Woche"
+msgstr "KW"
 
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:383
 msgid "Notes"
@@ -1308,63 +1295,63 @@ msgstr "Die Stunden-Dokumentation wurde gespeichert."
 msgid "The personal notes have been saved."
 msgstr "Die persönlichen Notizen wurden gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1029
+#: aleksis/apps/alsijil/views.py:1031
 msgid "The absence has been saved."
 msgstr "Die Abwesenheit wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1050
+#: aleksis/apps/alsijil/views.py:1052
 msgid "The personal note has been deleted."
 msgstr "Die persönliche Notiz wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1072
+#: 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:1084
+#: 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:1095
+#: 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:1116
+#: aleksis/apps/alsijil/views.py:1118
 msgid "The excuse type has been created."
 msgstr "Die Entschuldigungsart wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1128
+#: aleksis/apps/alsijil/views.py:1130
 msgid "The excuse type has been saved."
 msgstr "Die Entschuldigunsart wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1139
+#: aleksis/apps/alsijil/views.py:1141
 msgid "The excuse type has been deleted."
 msgstr "Die Entschuldigungsart wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1160
+#: aleksis/apps/alsijil/views.py:1162
 msgid "The group role has been created."
 msgstr "Die Gruppenrolle wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1172
+#: aleksis/apps/alsijil/views.py:1174
 msgid "The group role has been saved."
 msgstr "Die Gruppenrolle wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1183
+#: aleksis/apps/alsijil/views.py:1185
 msgid "The group role has been deleted."
 msgstr "Die Gruppenrolle wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1216 aleksis/apps/alsijil/views.py:1248
+#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
 msgid "The group role has been assigned."
 msgstr "Die Gruppenrolle wurde zugewiesen."
 
-#: aleksis/apps/alsijil/views.py:1267
+#: aleksis/apps/alsijil/views.py:1269
 msgid "The group role assignment has been saved."
 msgstr "Die Gruppenrollenzuweisung wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1288
+#: aleksis/apps/alsijil/views.py:1290
 msgid "The group role assignment has been stopped."
 msgstr "Die Gruppenrollenzuweisung wurde beendet."
 
-#: aleksis/apps/alsijil/views.py:1301
+#: aleksis/apps/alsijil/views.py:1303
 msgid "The group role assignment has been deleted."
 msgstr "Die Gruppenrollenzuweisung wurde gelöscht."
 
diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
index 0dff823e709924c61a0c1956ac95d722da1d23ee..abffdb41cdf1c23f9ab05a7ca1b612ef9d1a4db1 100644
--- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
@@ -7,48 +7,48 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-08 16:49+0200\n"
-"PO-Revision-Date: 2020-07-26 14:08+0000\n"
-"Last-Translator: Marlene Grundey <grundema@katharineum.de>\n"
+"POT-Creation-Date: 2021-08-28 17:33+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"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.0.1\n"
+"X-Generator: Weblate 4.4\n"
 
-#: aleksis/apps/alsijil/actions.py:17
+#: aleksis/apps/alsijil/actions.py:18
 msgid "Mark as excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:24
+#: aleksis/apps/alsijil/actions.py:25
 #, fuzzy
 #| msgid "unexcused"
 msgid "Mark as unexcused"
 msgstr "Injustifié(e)"
 
-#: aleksis/apps/alsijil/actions.py:31
+#: aleksis/apps/alsijil/actions.py:32
 #, python-brace-format
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:41 aleksis/apps/alsijil/tables.py:29
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:49 aleksis/apps/alsijil/tables.py:74
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:61
+#: aleksis/apps/alsijil/actions.py:68
 msgid "{} asks you to check some class register entries."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:79
+#: aleksis/apps/alsijil/actions.py:86
 #, python-brace-format
 msgid "We have successfully sent notifications to {count_teachers} persons for {count_items} lessons."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:85
+#: aleksis/apps/alsijil/actions.py:92
 msgid "Ask teacher to check data"
 msgstr ""
 
@@ -122,7 +122,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
 #: aleksis/apps/alsijil/tables.py:107
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
@@ -148,28 +148,28 @@ msgid "Homework for the next lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:292
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
-msgstr "Groupe"
+msgstr "groupe"
 
 #: aleksis/apps/alsijil/forms.py:75
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:170
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:201
 msgid "Teacher"
-msgstr "Profs"
+msgstr "prof"
 
 #: aleksis/apps/alsijil/forms.py:90
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
 #: aleksis/apps/alsijil/models.py:446
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Date de début"
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
 #: aleksis/apps/alsijil/models.py:450
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
@@ -188,7 +188,7 @@ msgid "End period"
 msgstr "De la période"
 
 #: aleksis/apps/alsijil/forms.py:148
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:52
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
@@ -197,10 +197,10 @@ msgid "Absent"
 msgstr "Absent(e)"
 
 #: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:56
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:74
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
@@ -229,18 +229,18 @@ msgstr "Remarque"
 msgid "Person"
 msgstr "Personne"
 
-#: aleksis/apps/alsijil/forms.py:288
+#: aleksis/apps/alsijil/forms.py:290
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:289
+#: aleksis/apps/alsijil/forms.py:291
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Has lesson documentation"
 msgstr "Documentation de cours"
 
 #: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:56
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
@@ -313,7 +313,7 @@ msgstr "Excusé"
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
 msgstr ""
@@ -377,8 +377,8 @@ msgstr "Prénom"
 #: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
 #: aleksis/apps/alsijil/models.py:413
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:22
 msgid "Name"
 msgstr ""
 
@@ -393,7 +393,7 @@ msgid "Personal note"
 msgstr "Notes personnelles"
 
 #: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:114
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
@@ -402,7 +402,7 @@ msgid "Personal notes"
 msgstr "Notes personnelles"
 
 #: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:149
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:381
@@ -410,7 +410,7 @@ msgid "Lesson topic"
 msgstr "Sujet de cours"
 
 #: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:157
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
@@ -419,7 +419,7 @@ msgid "Homework"
 msgstr "Devoirs"
 
 #: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:165
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
@@ -429,8 +429,8 @@ msgid "Group note"
 msgstr "Groupe"
 
 #: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:140
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
 msgid "Lesson documentation"
 msgstr "Documentation de cours"
 
@@ -462,7 +462,7 @@ msgid "Group role"
 msgstr "Groupe"
 
 #: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:127
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -620,7 +620,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:115
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr "Registre de Absence"
 
@@ -638,20 +638,20 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:27
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:26
 msgid ""
 "\n"
-"                  As the length of this absence is longer than one day,\n"
-"                  please double check the correctness of your entry.\n"
-"                "
+"                As the length of this absence is longer than one day,\n"
+"                please double check the correctness of your entry.\n"
+"              "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:37
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:35
 #, python-format
 msgid " %(count)s affected lessons "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:42
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:40
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -666,11 +666,11 @@ msgstr ""
 "            Il n' y a pas des cours pour le groupe sélectionné, les profs, le salle ou le temps.\n"
 "          "
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:59
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:57
 msgid "Reset status to 'not absent'"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:81
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:79
 msgid "Cancel"
 msgstr ""
 
@@ -724,32 +724,32 @@ msgstr ""
 msgid "Lesson"
 msgstr "Cours"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:20
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
 #, fuzzy
 #| msgid "Week view"
 msgid "Back to week view"
 msgstr "Vue de semaine"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:29
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 #, fuzzy
 #| msgid "Current lesson"
 msgid "My previous lesson"
 msgstr "Lecon actuelle"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:38
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
 #, fuzzy
 #| msgid "Current lesson"
 msgid "My next lesson"
 msgstr "Lecon actuelle"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:50
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
 #, fuzzy, python-format
 #| msgid "From period"
 msgid "%(period)s. period"
 msgstr "De la période"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:85
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
 #, python-format
 msgid ""
 "\n"
@@ -757,7 +757,7 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:95
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
 #, python-format
 msgid ""
 "\n"
@@ -765,13 +765,13 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
 #, fuzzy
 #| msgid "Current lesson"
 msgid "Previous lesson"
 msgstr "Lecon actuelle"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
 msgid "Change history"
 msgstr "Changement d' histoire"
@@ -804,9 +804,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:34
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:91
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
 msgid "Tardiness"
 msgstr "Retard"
@@ -902,9 +902,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:128
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:10
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:16
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:26
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:69
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:67
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:269
 msgid "Absences"
 msgstr "Absences"
@@ -915,7 +915,7 @@ msgid "thereof"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:142
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:86
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:81
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:283
 msgid "Unexcused"
@@ -947,17 +947,17 @@ msgid "Summed up tardiness"
 msgstr "Résumé des retards"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:94
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 #, fuzzy
 #| msgid "Summed up tardiness"
 msgid "Count of tardiness"
 msgstr "Résumé des retards"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:378
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:381
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -983,13 +983,13 @@ msgstr ""
 msgid "Edit excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:5
-#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:5
+#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:4
+#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:4
 msgid ""
 "\n"
-"      This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
-"      Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
-"    "
+"    This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
+"    Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
@@ -1064,12 +1064,12 @@ msgstr ""
 msgid "No one assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:42
+#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:41
 msgid ""
 "\n"
-"      You can get some additional actions for each group role assignment if you click on the name of the\n"
-"      corresponding person.\n"
-"    "
+"    You can get some additional actions for each group role assignment if you click on the name of the\n"
+"    corresponding person.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:21
@@ -1081,15 +1081,15 @@ msgid "Please check if the following class register entries are complete and cor
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:27
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:44
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:42
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:126
 msgid "(e)"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:33
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:48
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:130
 msgid "(u)"
 msgstr ""
@@ -1160,26 +1160,26 @@ msgstr "Début de cours"
 msgid "Execute"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:7
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:6
 msgid "No students available."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:13
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 #, fuzzy
 #| msgid "Group"
 msgid "Primary group"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:43
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:41
 msgid "Sum"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:107
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:105
 msgid "Show more details"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:108
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:106
 msgid "Details"
 msgstr ""
 
@@ -1370,81 +1370,81 @@ msgstr "Documentation de cours pour la semaine calendrier"
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1029
+#: aleksis/apps/alsijil/views.py:1031
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1050
+#: aleksis/apps/alsijil/views.py:1052
 #, 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:1072
+#: 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:1084
+#: 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:1095
+#: aleksis/apps/alsijil/views.py:1097
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1116
+#: aleksis/apps/alsijil/views.py:1118
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1128
+#: aleksis/apps/alsijil/views.py:1130
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1139
+#: aleksis/apps/alsijil/views.py:1141
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1160
+#: aleksis/apps/alsijil/views.py:1162
 #, 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:1172
+#: aleksis/apps/alsijil/views.py:1174
 #, 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:1183
+#: aleksis/apps/alsijil/views.py:1185
 #, 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:1216 aleksis/apps/alsijil/views.py:1248
+#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
 #, 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:1267
+#: aleksis/apps/alsijil/views.py:1269
 #, 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:1288
+#: aleksis/apps/alsijil/views.py:1290
 #, 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:1301
+#: aleksis/apps/alsijil/views.py:1303
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role assignment has been deleted."
diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
index 44aed60fac7d67d8daed7afe1583a857ecf38d40..629487406bc5de79c6e899c4080e8147f9c7a723 100644
--- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-08 16:49+0200\n"
+"POT-Creation-Date: 2021-08-28 17:33+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"
@@ -18,35 +18,35 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.0.1\n"
 
-#: aleksis/apps/alsijil/actions.py:17
+#: aleksis/apps/alsijil/actions.py:18
 msgid "Mark as excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:24
+#: aleksis/apps/alsijil/actions.py:25
 msgid "Mark as unexcused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:31
+#: aleksis/apps/alsijil/actions.py:32
 #, python-brace-format
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:41 aleksis/apps/alsijil/tables.py:29
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:49 aleksis/apps/alsijil/tables.py:74
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:61
+#: aleksis/apps/alsijil/actions.py:68
 msgid "{} asks you to check some class register entries."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:79
+#: aleksis/apps/alsijil/actions.py:86
 #, python-brace-format
 msgid "We have successfully sent notifications to {count_teachers} persons for {count_items} lessons."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:85
+#: aleksis/apps/alsijil/actions.py:92
 msgid "Ask teacher to check data"
 msgstr ""
 
@@ -110,7 +110,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
 #: aleksis/apps/alsijil/tables.py:107
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
@@ -132,7 +132,7 @@ msgid "Homework for the next lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:292
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr "Grex"
@@ -147,13 +147,13 @@ msgstr ""
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
 #: aleksis/apps/alsijil/models.py:446
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
 #: aleksis/apps/alsijil/models.py:450
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
@@ -168,7 +168,7 @@ msgid "End period"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:148
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:52
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
@@ -177,10 +177,10 @@ msgid "Absent"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:56
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:74
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
@@ -207,16 +207,16 @@ msgstr ""
 msgid "Person"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/forms.py:288
+#: aleksis/apps/alsijil/forms.py:290
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:289
+#: aleksis/apps/alsijil/forms.py:291
 msgid "Has lesson documentation"
 msgstr ""
 
 #: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:56
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
@@ -283,7 +283,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
 msgstr ""
@@ -337,8 +337,8 @@ msgstr "Primus nomen"
 #: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
 #: aleksis/apps/alsijil/models.py:413
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:22
 msgid "Name"
 msgstr ""
 
@@ -353,7 +353,7 @@ msgid "Personal note"
 msgstr "Persona"
 
 #: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:114
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
@@ -362,7 +362,7 @@ msgid "Personal notes"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:149
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:381
@@ -370,7 +370,7 @@ msgid "Lesson topic"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:157
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
@@ -379,7 +379,7 @@ msgid "Homework"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:165
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
@@ -389,8 +389,8 @@ msgid "Group note"
 msgstr "Grex"
 
 #: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:140
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
 msgid "Lesson documentation"
 msgstr ""
 
@@ -420,7 +420,7 @@ msgid "Group role"
 msgstr "Grex"
 
 #: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:127
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -568,7 +568,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:115
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr ""
 
@@ -584,31 +584,31 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:27
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:26
 msgid ""
 "\n"
-"                  As the length of this absence is longer than one day,\n"
-"                  please double check the correctness of your entry.\n"
-"                "
+"                As the length of this absence is longer than one day,\n"
+"                please double check the correctness of your entry.\n"
+"              "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:37
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:35
 #, python-format
 msgid " %(count)s affected lessons "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:42
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:40
 msgid ""
 "\n"
 "                  There are no affected lessons. Registering this absence won't have any effect.\n"
 "                "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:59
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:57
 msgid "Reset status to 'not absent'"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:81
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:79
 msgid "Cancel"
 msgstr ""
 
@@ -662,25 +662,25 @@ msgstr ""
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:20
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
 msgid "Back to week view"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:29
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 msgid "My previous lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:38
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
 msgid "My next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:50
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
 #, python-format
 msgid "%(period)s. period"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:85
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
 #, python-format
 msgid ""
 "\n"
@@ -688,7 +688,7 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:95
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
 #, python-format
 msgid ""
 "\n"
@@ -696,11 +696,11 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
 msgid "Previous lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
 msgid "Change history"
 msgstr ""
@@ -731,9 +731,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:34
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:91
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
 msgid "Tardiness"
 msgstr ""
@@ -815,9 +815,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:128
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:10
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:16
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:26
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:69
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:67
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:269
 msgid "Absences"
 msgstr ""
@@ -828,7 +828,7 @@ msgid "thereof"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:142
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:86
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:81
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:283
 msgid "Unexcused"
@@ -860,15 +860,15 @@ msgid "Summed up tardiness"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:94
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:378
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:381
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
 msgid ""
 "\n"
 "            There are no lessons for the selected group or teacher in this week.\n"
@@ -886,13 +886,13 @@ msgstr ""
 msgid "Edit excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:5
-#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:5
+#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:4
+#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:4
 msgid ""
 "\n"
-"      This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
-"      Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
-"    "
+"    This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
+"    Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
@@ -965,12 +965,12 @@ msgstr ""
 msgid "No one assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:42
+#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:41
 msgid ""
 "\n"
-"      You can get some additional actions for each group role assignment if you click on the name of the\n"
-"      corresponding person.\n"
-"    "
+"    You can get some additional actions for each group role assignment if you click on the name of the\n"
+"    corresponding person.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:21
@@ -982,15 +982,15 @@ msgid "Please check if the following class register entries are complete and cor
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:27
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:44
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:42
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:126
 msgid "(e)"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:33
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:48
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:130
 msgid "(u)"
 msgstr ""
@@ -1051,26 +1051,26 @@ msgstr ""
 msgid "Execute"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:7
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:6
 msgid "No students available."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:13
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 #, fuzzy
 #| msgid "Group"
 msgid "Primary group"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:43
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:41
 msgid "Sum"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:107
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:105
 msgid "Show more details"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:108
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:106
 msgid "Details"
 msgstr ""
 
@@ -1253,63 +1253,63 @@ msgstr ""
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1029
+#: aleksis/apps/alsijil/views.py:1031
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1050
+#: aleksis/apps/alsijil/views.py:1052
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1072
+#: aleksis/apps/alsijil/views.py:1074
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1084
+#: aleksis/apps/alsijil/views.py:1086
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1095
+#: aleksis/apps/alsijil/views.py:1097
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1116
+#: aleksis/apps/alsijil/views.py:1118
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1128
+#: aleksis/apps/alsijil/views.py:1130
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1139
+#: aleksis/apps/alsijil/views.py:1141
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1160
+#: aleksis/apps/alsijil/views.py:1162
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1172
+#: aleksis/apps/alsijil/views.py:1174
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1183
+#: aleksis/apps/alsijil/views.py:1185
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1216 aleksis/apps/alsijil/views.py:1248
+#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1267
+#: aleksis/apps/alsijil/views.py:1269
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1288
+#: aleksis/apps/alsijil/views.py:1290
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1301
+#: aleksis/apps/alsijil/views.py:1303
 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 fd860625832db17abc4d4b256a8234dc2bd10910..c9fcfa46f7015bda5734a25052658daacf71e2fb 100644
--- a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-08 16:49+0200\n"
+"POT-Creation-Date: 2021-08-28 17:33+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"
@@ -17,35 +17,35 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: aleksis/apps/alsijil/actions.py:17
+#: aleksis/apps/alsijil/actions.py:18
 msgid "Mark as excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:24
+#: aleksis/apps/alsijil/actions.py:25
 msgid "Mark as unexcused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:31
+#: aleksis/apps/alsijil/actions.py:32
 #, python-brace-format
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:41 aleksis/apps/alsijil/tables.py:29
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:49 aleksis/apps/alsijil/tables.py:74
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:61
+#: aleksis/apps/alsijil/actions.py:68
 msgid "{} asks you to check some class register entries."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:79
+#: aleksis/apps/alsijil/actions.py:86
 #, python-brace-format
 msgid "We have successfully sent notifications to {count_teachers} persons for {count_items} lessons."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:85
+#: aleksis/apps/alsijil/actions.py:92
 msgid "Ask teacher to check data"
 msgstr ""
 
@@ -109,7 +109,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
 #: aleksis/apps/alsijil/tables.py:107
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
@@ -131,7 +131,7 @@ msgid "Homework for the next lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:292
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr ""
@@ -146,13 +146,13 @@ msgstr ""
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
 #: aleksis/apps/alsijil/models.py:446
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
 #: aleksis/apps/alsijil/models.py:450
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
@@ -167,7 +167,7 @@ msgid "End period"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:148
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:52
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
@@ -176,10 +176,10 @@ msgid "Absent"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:56
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:74
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
@@ -206,16 +206,16 @@ msgstr ""
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:288
+#: aleksis/apps/alsijil/forms.py:290
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:289
+#: aleksis/apps/alsijil/forms.py:291
 msgid "Has lesson documentation"
 msgstr ""
 
 #: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:56
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
@@ -280,7 +280,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
 msgstr ""
@@ -332,8 +332,8 @@ msgstr ""
 #: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
 #: aleksis/apps/alsijil/models.py:413
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:22
 msgid "Name"
 msgstr ""
 
@@ -346,7 +346,7 @@ msgid "Personal note"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:114
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
@@ -355,7 +355,7 @@ msgid "Personal notes"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:149
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:381
@@ -363,7 +363,7 @@ msgid "Lesson topic"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:157
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
@@ -372,7 +372,7 @@ msgid "Homework"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:165
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
@@ -380,8 +380,8 @@ msgid "Group note"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:140
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
 msgid "Lesson documentation"
 msgstr ""
 
@@ -409,7 +409,7 @@ msgid "Group role"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:127
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -553,7 +553,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:115
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr ""
 
@@ -569,31 +569,31 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:27
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:26
 msgid ""
 "\n"
-"                  As the length of this absence is longer than one day,\n"
-"                  please double check the correctness of your entry.\n"
-"                "
+"                As the length of this absence is longer than one day,\n"
+"                please double check the correctness of your entry.\n"
+"              "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:37
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:35
 #, python-format
 msgid " %(count)s affected lessons "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:42
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:40
 msgid ""
 "\n"
 "                  There are no affected lessons. Registering this absence won't have any effect.\n"
 "                "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:59
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:57
 msgid "Reset status to 'not absent'"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:81
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:79
 msgid "Cancel"
 msgstr ""
 
@@ -647,25 +647,25 @@ msgstr ""
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:20
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
 msgid "Back to week view"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:29
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 msgid "My previous lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:38
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
 msgid "My next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:50
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
 #, python-format
 msgid "%(period)s. period"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:85
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
 #, python-format
 msgid ""
 "\n"
@@ -673,7 +673,7 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:95
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
 #, python-format
 msgid ""
 "\n"
@@ -681,11 +681,11 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
 msgid "Previous lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
 msgid "Change history"
 msgstr ""
@@ -716,9 +716,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:34
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:91
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
 msgid "Tardiness"
 msgstr ""
@@ -798,9 +798,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:128
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:10
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:16
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:26
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:69
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:67
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:269
 msgid "Absences"
 msgstr ""
@@ -811,7 +811,7 @@ msgid "thereof"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:142
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:86
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:81
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:283
 msgid "Unexcused"
@@ -843,15 +843,15 @@ msgid "Summed up tardiness"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:94
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:378
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:381
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
 msgid ""
 "\n"
 "            There are no lessons for the selected group or teacher in this week.\n"
@@ -869,13 +869,13 @@ msgstr ""
 msgid "Edit excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:5
-#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:5
+#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:4
+#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:4
 msgid ""
 "\n"
-"      This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
-"      Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
-"    "
+"    This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
+"    Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
@@ -946,12 +946,12 @@ msgstr ""
 msgid "No one assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:42
+#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:41
 msgid ""
 "\n"
-"      You can get some additional actions for each group role assignment if you click on the name of the\n"
-"      corresponding person.\n"
-"    "
+"    You can get some additional actions for each group role assignment if you click on the name of the\n"
+"    corresponding person.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:21
@@ -963,15 +963,15 @@ msgid "Please check if the following class register entries are complete and cor
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:27
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:44
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:42
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:126
 msgid "(e)"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:33
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:48
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:130
 msgid "(u)"
 msgstr ""
@@ -1032,24 +1032,24 @@ msgstr ""
 msgid "Execute"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:7
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:6
 msgid "No students available."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:13
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Primary group"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:43
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:41
 msgid "Sum"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:107
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:105
 msgid "Show more details"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:108
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:106
 msgid "Details"
 msgstr ""
 
@@ -1232,62 +1232,62 @@ msgstr ""
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1029
+#: aleksis/apps/alsijil/views.py:1031
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1050
+#: aleksis/apps/alsijil/views.py:1052
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1072
+#: aleksis/apps/alsijil/views.py:1074
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1084
+#: aleksis/apps/alsijil/views.py:1086
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1095
+#: aleksis/apps/alsijil/views.py:1097
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1116
+#: aleksis/apps/alsijil/views.py:1118
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1128
+#: aleksis/apps/alsijil/views.py:1130
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1139
+#: aleksis/apps/alsijil/views.py:1141
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1160
+#: aleksis/apps/alsijil/views.py:1162
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1172
+#: aleksis/apps/alsijil/views.py:1174
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1183
+#: aleksis/apps/alsijil/views.py:1185
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1216 aleksis/apps/alsijil/views.py:1248
+#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1267
+#: aleksis/apps/alsijil/views.py:1269
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1288
+#: aleksis/apps/alsijil/views.py:1290
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1301
+#: aleksis/apps/alsijil/views.py:1303
 msgid "The group role assignment has been deleted."
 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 fd860625832db17abc4d4b256a8234dc2bd10910..c9fcfa46f7015bda5734a25052658daacf71e2fb 100644
--- a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-08 16:49+0200\n"
+"POT-Creation-Date: 2021-08-28 17:33+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"
@@ -17,35 +17,35 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: aleksis/apps/alsijil/actions.py:17
+#: aleksis/apps/alsijil/actions.py:18
 msgid "Mark as excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:24
+#: aleksis/apps/alsijil/actions.py:25
 msgid "Mark as unexcused"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:31
+#: aleksis/apps/alsijil/actions.py:32
 #, python-brace-format
 msgid "Mark as {excuse_type.name}"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:41 aleksis/apps/alsijil/tables.py:29
+#: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:49 aleksis/apps/alsijil/tables.py:74
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
 msgid "Delete"
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:61
+#: aleksis/apps/alsijil/actions.py:68
 msgid "{} asks you to check some class register entries."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:79
+#: aleksis/apps/alsijil/actions.py:86
 #, python-brace-format
 msgid "We have successfully sent notifications to {count_teachers} persons for {count_items} lessons."
 msgstr ""
 
-#: aleksis/apps/alsijil/actions.py:85
+#: aleksis/apps/alsijil/actions.py:92
 msgid "Ask teacher to check data"
 msgstr ""
 
@@ -109,7 +109,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
 #: aleksis/apps/alsijil/tables.py:107
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
@@ -131,7 +131,7 @@ msgid "Homework for the next lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:292
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr ""
@@ -146,13 +146,13 @@ msgstr ""
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
 #: aleksis/apps/alsijil/models.py:446
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
 #: aleksis/apps/alsijil/models.py:450
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
@@ -167,7 +167,7 @@ msgid "End period"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:148
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:52
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
@@ -176,10 +176,10 @@ msgid "Absent"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:56
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:74
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
@@ -206,16 +206,16 @@ msgstr ""
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:288
+#: aleksis/apps/alsijil/forms.py:290
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:289
+#: aleksis/apps/alsijil/forms.py:291
 msgid "Has lesson documentation"
 msgstr ""
 
 #: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:56
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
@@ -280,7 +280,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
 msgstr ""
@@ -332,8 +332,8 @@ msgstr ""
 #: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
 #: aleksis/apps/alsijil/models.py:413
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:22
 msgid "Name"
 msgstr ""
 
@@ -346,7 +346,7 @@ msgid "Personal note"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:114
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
@@ -355,7 +355,7 @@ msgid "Personal notes"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:149
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:381
@@ -363,7 +363,7 @@ msgid "Lesson topic"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:157
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
@@ -372,7 +372,7 @@ msgid "Homework"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:165
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
@@ -380,8 +380,8 @@ msgid "Group note"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:140
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
 msgid "Lesson documentation"
 msgstr ""
 
@@ -409,7 +409,7 @@ msgid "Group role"
 msgstr ""
 
 #: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:127
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -553,7 +553,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:115
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr ""
 
@@ -569,31 +569,31 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:27
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:26
 msgid ""
 "\n"
-"                  As the length of this absence is longer than one day,\n"
-"                  please double check the correctness of your entry.\n"
-"                "
+"                As the length of this absence is longer than one day,\n"
+"                please double check the correctness of your entry.\n"
+"              "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:37
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:35
 #, python-format
 msgid " %(count)s affected lessons "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:42
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:40
 msgid ""
 "\n"
 "                  There are no affected lessons. Registering this absence won't have any effect.\n"
 "                "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:59
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:57
 msgid "Reset status to 'not absent'"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:81
+#: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:79
 msgid "Cancel"
 msgstr ""
 
@@ -647,25 +647,25 @@ msgstr ""
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:20
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
 msgid "Back to week view"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:29
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
 msgid "My previous lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:38
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
 msgid "My next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:50
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
 #, python-format
 msgid "%(period)s. period"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:85
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
 #, python-format
 msgid ""
 "\n"
@@ -673,7 +673,7 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:95
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
 #, python-format
 msgid ""
 "\n"
@@ -681,11 +681,11 @@ msgid ""
 "          "
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
 msgid "Previous lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
 msgid "Change history"
 msgstr ""
@@ -716,9 +716,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:34
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:91
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
 msgid "Tardiness"
 msgstr ""
@@ -798,9 +798,9 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:128
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:10
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:16
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:26
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:69
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:14
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:24
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:67
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:269
 msgid "Absences"
 msgstr ""
@@ -811,7 +811,7 @@ msgid "thereof"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:142
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:86
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:81
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:283
 msgid "Unexcused"
@@ -843,15 +843,15 @@ msgid "Summed up tardiness"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:94
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:378
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:381
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
 msgid ""
 "\n"
 "            There are no lessons for the selected group or teacher in this week.\n"
@@ -869,13 +869,13 @@ msgstr ""
 msgid "Edit excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:5
-#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:5
+#: aleksis/apps/alsijil/templates/alsijil/excuse_type/warning.html:4
+#: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:4
 msgid ""
 "\n"
-"      This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
-"      Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
-"    "
+"    This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
+"    Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
@@ -946,12 +946,12 @@ msgstr ""
 msgid "No one assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:42
+#: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:41
 msgid ""
 "\n"
-"      You can get some additional actions for each group role assignment if you click on the name of the\n"
-"      corresponding person.\n"
-"    "
+"    You can get some additional actions for each group role assignment if you click on the name of the\n"
+"    corresponding person.\n"
+"  "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:21
@@ -963,15 +963,15 @@ msgid "Please check if the following class register entries are complete and cor
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:27
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:44
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:42
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:126
 msgid "(e)"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:33
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:48
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:130
 msgid "(u)"
 msgstr ""
@@ -1032,24 +1032,24 @@ msgstr ""
 msgid "Execute"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:7
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:6
 msgid "No students available."
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:13
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Primary group"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:43
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:41
 msgid "Sum"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:107
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:105
 msgid "Show more details"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:108
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:106
 msgid "Details"
 msgstr ""
 
@@ -1232,62 +1232,62 @@ msgstr ""
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1029
+#: aleksis/apps/alsijil/views.py:1031
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1050
+#: aleksis/apps/alsijil/views.py:1052
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1072
+#: aleksis/apps/alsijil/views.py:1074
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1084
+#: aleksis/apps/alsijil/views.py:1086
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1095
+#: aleksis/apps/alsijil/views.py:1097
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1116
+#: aleksis/apps/alsijil/views.py:1118
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1128
+#: aleksis/apps/alsijil/views.py:1130
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1139
+#: aleksis/apps/alsijil/views.py:1141
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1160
+#: aleksis/apps/alsijil/views.py:1162
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1172
+#: aleksis/apps/alsijil/views.py:1174
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1183
+#: aleksis/apps/alsijil/views.py:1185
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1216 aleksis/apps/alsijil/views.py:1248
+#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1267
+#: aleksis/apps/alsijil/views.py:1269
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1288
+#: aleksis/apps/alsijil/views.py:1290
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1301
+#: aleksis/apps/alsijil/views.py:1303
 msgid "The group role assignment has been deleted."
 msgstr ""
diff --git a/aleksis/apps/alsijil/migrations/0014_fix_unique_lesson_documentation.py b/aleksis/apps/alsijil/migrations/0014_fix_unique_lesson_documentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ed00ec72a1a23e8bfbde5d765324cd6f59275a3
--- /dev/null
+++ b/aleksis/apps/alsijil/migrations/0014_fix_unique_lesson_documentation.py
@@ -0,0 +1,29 @@
+# Generated by Django 3.2.3 on 2021-08-20 12:38
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('alsijil', '0013_fix_uniqueness_per_site'),
+    ]
+
+    operations = [
+        migrations.RemoveConstraint(
+            model_name='lessondocumentation',
+            name='unique_documentation_per_object',
+        ),
+        migrations.AddConstraint(
+            model_name='lessondocumentation',
+            constraint=models.UniqueConstraint(fields=('week', 'year', 'lesson_period'), name='unique_documentation_per_lp'),
+        ),
+        migrations.AddConstraint(
+            model_name='lessondocumentation',
+            constraint=models.UniqueConstraint(fields=('week', 'year', 'event'), name='unique_documentation_per_ev'),
+        ),
+        migrations.AddConstraint(
+            model_name='lessondocumentation',
+            constraint=models.UniqueConstraint(fields=('week', 'year', 'extra_lesson'), name='unique_documentation_per_el'),
+        ),
+    ]
diff --git a/aleksis/apps/alsijil/migrations/0015_fix_unique_personal_note.py b/aleksis/apps/alsijil/migrations/0015_fix_unique_personal_note.py
new file mode 100644
index 0000000000000000000000000000000000000000..195e0ec80ef43a4d8afe8bb38193d954f833aef1
--- /dev/null
+++ b/aleksis/apps/alsijil/migrations/0015_fix_unique_personal_note.py
@@ -0,0 +1,29 @@
+# Generated by Django 3.2.4 on 2021-08-29 13:31
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('alsijil', '0014_fix_unique_lesson_documentation'),
+    ]
+
+    operations = [
+        migrations.RemoveConstraint(
+            model_name='personalnote',
+            name='unique_personal_note_per_object',
+        ),
+        migrations.AddConstraint(
+            model_name='personalnote',
+            constraint=models.UniqueConstraint(fields=('week', 'year', 'lesson_period', 'person'), name='unique_note_per_lp'),
+        ),
+        migrations.AddConstraint(
+            model_name='personalnote',
+            constraint=models.UniqueConstraint(fields=('week', 'year', 'event', 'person'), name='unique_note_per_ev'),
+        ),
+        migrations.AddConstraint(
+            model_name='personalnote',
+            constraint=models.UniqueConstraint(fields=('week', 'year', 'extra_lesson', 'person'), name='unique_note_per_el'),
+        ),
+    ]
diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index 51857750b434dc03b36c23b7c10f6fcca69ed013..1c9cc995142510570db89f18a85ec9b2eaba9ba5 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -283,8 +283,13 @@ class PersonalNote(RegisterObjectRelatedMixin, ExtensibleModel):
                 check=lesson_related_constraint_q, name="one_relation_only_personal_note"
             ),
             models.UniqueConstraint(
-                fields=("lesson_period", "week", "year", "event", "extra_lesson"),
-                name="unique_personal_note_per_object",
+                fields=("week", "year", "lesson_period", "person"), name="unique_note_per_lp",
+            ),
+            models.UniqueConstraint(
+                fields=("week", "year", "event", "person"), name="unique_note_per_ev",
+            ),
+            models.UniqueConstraint(
+                fields=("week", "year", "extra_lesson", "person"), name="unique_note_per_el",
             ),
         ]
 
@@ -373,8 +378,13 @@ class LessonDocumentation(RegisterObjectRelatedMixin, ExtensibleModel):
                 check=lesson_related_constraint_q, name="one_relation_only_lesson_documentation",
             ),
             models.UniqueConstraint(
-                fields=("lesson_period", "week", "year", "event", "extra_lesson"),
-                name="unique_documentation_per_object",
+                fields=("week", "year", "lesson_period"), name="unique_documentation_per_lp",
+            ),
+            models.UniqueConstraint(
+                fields=("week", "year", "event"), name="unique_documentation_per_ev",
+            ),
+            models.UniqueConstraint(
+                fields=("week", "year", "extra_lesson"), name="unique_documentation_per_el",
             ),
         ]
 
diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
index 0845ecc51c69579a63b716be947de8ca05dfd1ff..7c27f555b113da2e420ad9455ec0b9bfe6e9acf6 100644
--- a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
+++ b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
@@ -179,12 +179,11 @@
           {% with absences=prev_lesson.get_absences tardinesses=prev_lesson.get_tardinesses extra_marks=prev_lesson.get_extra_marks %}
             {% has_perm "alsijil.view_lessondocumentation_rule" user prev_lesson as can_view_prev_lesson_documentation %}
             {% if prev_doc and can_view_prev_lesson_documentation %}
-              {% weekday_to_date prev_lesson.week prev_lesson.period.weekday as prev_date %}
               <div class="col s12" id="previous-lesson">
                 <div class="card">
                   <div class="card-content">
                     <span class="card-title">
-                      {% blocktrans %}Overview: Previous lesson{% endblocktrans %} ({{ prev_date }},
+                      {% blocktrans %}Overview: Previous lesson{% endblocktrans %} ({{ prev_doc.date_formatted }},
                       {% blocktrans with period=prev_lesson.period.period %}{{ period }}. period{% endblocktrans %})
                     </span>
 
diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html
index 82d9fb4b987e8c920cf5768a69bd0d6acd07e83a..1cdab7ff87800a30797da5c8d8c346c919ffecd9 100644
--- a/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html
+++ b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html
@@ -353,10 +353,9 @@
               {% for note in person.personal_notes %}
                 <blockquote>
                   {{ note.remarks }}
-                  {% weekday_to_date week note.register_object.period.weekday as note_date %}
                   <em class="right">
                     <a href="{{ note.register_object.alsijil_url }}">
-                      {{ note.date }}, {{ note.register_object.get_subject.name }}
+                      {{ note.date_formatted }}, {{ note.register_object.get_subject.name }}
                     </a>
                   </em>
                 </blockquote>
diff --git a/poetry.lock b/poetry.lock
index 78e4db6e563fc4d6f93f8bc9bf56eda492e77a08..233ccf12c5c9d20582c57bad9f3393ec2b33cd1f 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -6,6 +6,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "aleksis-app-chronos"
 version = "2.0rc2+20210801140820.175e97fc"
@@ -66,7 +71,7 @@ reference = "gitlab"
 
 [[package]]
 name = "aleksis-core"
-version = "2.1.dev0+20210805205937.c775be2f"
+version = "2.1.dev0+20210819220817.c08aeb1f"
 description = "AlekSIS (School Information System) — Core"
 category = "main"
 optional = false
@@ -79,7 +84,7 @@ Celery = {version = ">=5.0.0,<6.0.0", extras = ["django", "redis"]}
 celery-haystack-ng = ">=0.20,<0.21"
 celery-progress = ">=0.1.0,<0.2.0"
 colour = ">=0.1.5,<0.2.0"
-Django = ">=3.2,<4.0"
+Django = ">=3.2.5,<4.0.0"
 django-allauth = ">=0.45.0,<0.46.0"
 django-any-js = ">=1.1,<2.0"
 django-bleach = ">=0.7.0,<0.8.0"
@@ -102,7 +107,7 @@ django-hattori = ">=0.2,<0.3"
 django-haystack = "3.0"
 django-health-check = ">=3.12.1,<4.0.0"
 django-impersonate = ">=1.4,<2.0"
-django-ipware = ">=3.0,<4.0"
+django-ipware = ">=4.0,<5.0"
 django-js-reverse = ">=0.9.1,<0.10.0"
 django-jsonstore = ">=0.5.0,<0.6.0"
 django-maintenance-mode = ">=0.16.0,<0.17.0"
@@ -158,6 +163,11 @@ python-versions = ">=3.6"
 [package.dependencies]
 vine = "5.0.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "appdirs"
 version = "1.4.4"
@@ -166,6 +176,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "appnope"
 version = "0.1.2"
@@ -174,6 +189,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "asgiref"
 version = "3.4.1"
@@ -185,6 +205,11 @@ python-versions = ">=3.6"
 [package.extras]
 tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "asn1crypto"
 version = "1.4.0"
@@ -193,6 +218,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "atomicwrites"
 version = "1.4.0"
@@ -201,6 +231,11 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "attrs"
 version = "21.2.0"
@@ -215,6 +250,11 @@ docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
 tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
 tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "babel"
 version = "2.9.1"
@@ -226,6 +266,11 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 [package.dependencies]
 pytz = ">=2015.7"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "backcall"
 version = "0.2.0"
@@ -234,6 +279,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "bandit"
 version = "1.7.0"
@@ -249,6 +299,11 @@ PyYAML = ">=5.3.1"
 six = ">=1.10.0"
 stevedore = ">=1.20.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "beautifulsoup4"
 version = "4.9.3"
@@ -264,6 +319,11 @@ soupsieve = {version = ">1.2", markers = "python_version >= \"3.0\""}
 html5lib = ["html5lib"]
 lxml = ["lxml"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "billiard"
 version = "3.6.4.0"
@@ -272,6 +332,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "black"
 version = "19.10b0"
@@ -292,9 +357,14 @@ typed-ast = ">=1.4.0"
 [package.extras]
 d = ["aiohttp (>=3.3.2)", "aiohttp-cors"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "bleach"
-version = "4.0.0"
+version = "4.1.0"
 description = "An easy safelist-based HTML-sanitizing tool."
 category = "main"
 optional = false
@@ -305,6 +375,11 @@ packaging = "*"
 six = ">=1.9.0"
 webencodings = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "boolean.py"
 version = "3.8"
@@ -313,10 +388,15 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "bs4"
 version = "0.0.1"
-description = "Dummy package for Beautiful Soup"
+description = "Screen-scraping library"
 category = "main"
 optional = false
 python-versions = "*"
@@ -324,6 +404,11 @@ python-versions = "*"
 [package.dependencies]
 beautifulsoup4 = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "calendarweek"
 version = "0.5.0"
@@ -335,6 +420,11 @@ python-versions = ">=3.7,<4.0"
 [package.extras]
 django = ["Django (>=2.2,<4.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "celery"
 version = "5.1.2"
@@ -388,6 +478,11 @@ yaml = ["PyYAML (>=3.10)"]
 zookeeper = ["kazoo (>=1.3.1)"]
 zstd = ["zstandard"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "celery-haystack-ng"
 version = "0.20.post2"
@@ -401,6 +496,11 @@ celery = ">=4.0"
 django-appconf = ">=0.4.1"
 django-haystack = ">=2.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "celery-progress"
 version = "0.1.1"
@@ -414,6 +514,11 @@ rabbitmq = ["channels-rabbitmq"]
 redis = ["channels-redis"]
 websockets = ["channels"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "certifi"
 version = "2021.5.30"
@@ -422,6 +527,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "cffi"
 version = "1.14.6"
@@ -433,6 +543,11 @@ python-versions = "*"
 [package.dependencies]
 pycparser = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "charset-normalizer"
 version = "2.0.4"
@@ -444,6 +559,11 @@ python-versions = ">=3.5.0"
 [package.extras]
 unicode_backport = ["unicodedata2"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "click"
 version = "7.1.2"
@@ -452,6 +572,11 @@ category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "click-didyoumean"
 version = "0.0.3"
@@ -463,6 +588,11 @@ python-versions = "*"
 [package.dependencies]
 click = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "click-plugins"
 version = "1.1.1"
@@ -477,6 +607,11 @@ click = ">=4.0"
 [package.extras]
 dev = ["pytest (>=3.6)", "pytest-cov", "wheel", "coveralls"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "click-repl"
 version = "0.2.0"
@@ -490,6 +625,11 @@ click = "*"
 prompt-toolkit = "*"
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "colorama"
 version = "0.4.4"
@@ -498,6 +638,11 @@ category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "colour"
 version = "0.1.5"
@@ -509,6 +654,11 @@ python-versions = "*"
 [package.extras]
 test = ["nose"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "configobj"
 version = "5.0.6"
@@ -520,6 +670,11 @@ python-versions = "*"
 [package.dependencies]
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "coverage"
 version = "5.5"
@@ -531,9 +686,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
 [package.extras]
 toml = ["toml"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "cryptography"
-version = "3.4.7"
+version = "3.4.8"
 description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
 category = "main"
 optional = false
@@ -550,6 +710,11 @@ sdist = ["setuptools-rust (>=0.11.4)"]
 ssh = ["bcrypt (>=3.1.5)"]
 test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "curlylint"
 version = "0.12.2"
@@ -568,6 +733,11 @@ toml = ">=0.9.4"
 [package.extras]
 dev = ["black (==19.10b0)", "flake8 (==3.8.4)", "mypy (==0.812)", "pytest (==6.2.2)", "coverage (==5.4)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "decorator"
 version = "5.0.9"
@@ -576,6 +746,11 @@ category = "main"
 optional = false
 python-versions = ">=3.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "defusedxml"
 version = "0.7.1"
@@ -584,6 +759,11 @@ category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "deprecated"
 version = "1.2.12"
@@ -598,6 +778,11 @@ wrapt = ">=1.10,<2"
 [package.extras]
 dev = ["tox", "bump2version (<1)", "sphinx (<2)", "importlib-metadata (<3)", "importlib-resources (<4)", "configparser (<5)", "sphinxcontrib-websupport (<2)", "zipp (<2)", "PyTest (<5)", "PyTest-Cov (<2.6)", "pytest", "pytest-cov"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "dj-database-url"
 version = "0.5.0"
@@ -606,6 +791,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django"
 version = "3.2.6"
@@ -623,6 +813,11 @@ sqlparse = ">=0.2.2"
 argon2 = ["argon2-cffi (>=19.1.0)"]
 bcrypt = ["bcrypt"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-allauth"
 version = "0.45.0"
@@ -638,6 +833,11 @@ python3-openid = ">=3.0.8"
 requests = "*"
 requests-oauthlib = ">=0.3.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-any-js"
 version = "1.1"
@@ -649,6 +849,11 @@ python-versions = ">=3.7,<4.0"
 [package.dependencies]
 Django = ">=2.2,<4.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-appconf"
 version = "1.0.4"
@@ -660,6 +865,11 @@ python-versions = "*"
 [package.dependencies]
 django = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-bleach"
 version = "0.7.2"
@@ -672,6 +882,11 @@ python-versions = "*"
 bleach = ">=1.5.0"
 Django = ">=1.11"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-bulk-update"
 version = "2.2.0"
@@ -683,9 +898,14 @@ python-versions = "*"
 [package.dependencies]
 Django = ">=1.8"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-cachalot"
-version = "2.4.2"
+version = "2.4.3"
 description = "Caches your Django ORM queries and automatically invalidates them."
 category = "main"
 optional = false
@@ -694,6 +914,11 @@ python-versions = "*"
 [package.dependencies]
 Django = ">=2.2,<3.3"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-cache-memoize"
 version = "0.1.10"
@@ -705,6 +930,11 @@ python-versions = ">=3.5"
 [package.extras]
 dev = ["flake8", "tox", "twine", "therapist", "black"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-celery-beat"
 version = "2.2.1"
@@ -719,6 +949,11 @@ Django = ">=2.2,<4.0"
 django-timezone-field = ">=4.1.0,<5.0"
 python-crontab = ">=2.3.4"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-celery-email"
 version = "3.0.0"
@@ -732,6 +967,11 @@ celery = ">=4.0"
 django = ">=2.2"
 django-appconf = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-celery-results"
 version = "2.2.0"
@@ -743,6 +983,11 @@ python-versions = "*"
 [package.dependencies]
 celery = ">=5.0,<6.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-ckeditor"
 version = "6.1.0"
@@ -754,6 +999,11 @@ python-versions = "*"
 [package.dependencies]
 django-js-asset = ">=1.2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-cleanup"
 version = "5.2.0"
@@ -762,14 +1012,24 @@ category = "main"
 optional = false
 python-versions = "*"
 
-[[package]]
-name = "django-colorfield"
-version = "0.4.2"
-description = "simple color field for your models with a nice color-picker in the admin-interface."
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
+[[package]]
+name = "django-colorfield"
+version = "0.4.2"
+description = "simple color field for your models with a nice color-picker in the admin-interface."
 category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-dbbackup"
 version = "3.3.0"
@@ -783,9 +1043,14 @@ Django = ">=1.5"
 pytz = "*"
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-debug-toolbar"
-version = "3.2.1"
+version = "3.2.2"
 description = "A configurable set of panels that display various debug information about the current request/response."
 category = "main"
 optional = false
@@ -795,6 +1060,11 @@ python-versions = ">=3.6"
 Django = ">=2.2"
 sqlparse = ">=0.2.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-dynamic-preferences"
 version = "1.10.1"
@@ -808,6 +1078,11 @@ django = ">=1.11"
 persisting-theory = ">=0.2.1"
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-extensions"
 version = "3.1.3"
@@ -819,9 +1094,14 @@ python-versions = ">=3.6"
 [package.dependencies]
 Django = ">=2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-favicon-plus-reloaded"
-version = "1.1.2"
+version = "1.1.3"
 description = "simple Django app which allows you to upload a image and it renders a wide variety for html link tags to display the favicon"
 category = "main"
 optional = false
@@ -842,6 +1122,11 @@ python-versions = ">=3.5"
 [package.dependencies]
 Django = ">=2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-formtools"
 version = "2.3"
@@ -853,6 +1138,11 @@ python-versions = ">=3.6"
 [package.dependencies]
 Django = ">=2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-guardian"
 version = "2.4.0"
@@ -864,6 +1154,11 @@ python-versions = ">=3.5"
 [package.dependencies]
 Django = ">=2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-hattori"
 version = "0.2.1"
@@ -879,6 +1174,11 @@ Faker = ">=0.8.13"
 six = "*"
 tqdm = ">=4.23.4"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-haystack"
 version = "3.0"
@@ -890,6 +1190,11 @@ python-versions = "*"
 [package.dependencies]
 Django = ">=2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-health-check"
 version = "3.16.4"
@@ -901,6 +1206,11 @@ python-versions = "*"
 [package.dependencies]
 django = ">=2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-impersonate"
 version = "1.7.3"
@@ -909,14 +1219,24 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-ipware"
-version = "3.0.7"
+version = "4.0.0"
 description = "A Django application to retrieve user's IP address"
 category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-js-asset"
 version = "1.2.2"
@@ -925,6 +1245,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-js-reverse"
 version = "0.9.1"
@@ -936,6 +1261,11 @@ python-versions = "*"
 [package.dependencies]
 Django = ">=1.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-jsonstore"
 version = "0.5.0"
@@ -948,6 +1278,11 @@ python-versions = "*"
 Django = ">=1.11"
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-maintenance-mode"
 version = "0.16.0"
@@ -956,6 +1291,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-material"
 version = "1.9.0"
@@ -967,6 +1307,11 @@ python-versions = "*"
 [package.dependencies]
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-menu-generator-ng"
 version = "1.2.3"
@@ -975,6 +1320,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-model-utils"
 version = "4.1.1"
@@ -986,6 +1336,11 @@ python-versions = "*"
 [package.dependencies]
 Django = ">=2.0.1"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-oauth-toolkit"
 version = "1.5.0"
@@ -1001,6 +1356,11 @@ oauthlib = ">=3.1.0"
 requests = ">=2.13.0"
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-otp"
 version = "1.0.6"
@@ -1015,6 +1375,11 @@ django = ">=2.2"
 [package.extras]
 qrcode = ["qrcode"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-otp-yubikey"
 version = "1.0.0.post1"
@@ -1027,6 +1392,11 @@ python-versions = "*"
 django-otp = ">=1.0.0"
 YubiOTP = ">=0.2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-phonenumber-field"
 version = "5.2.0"
@@ -1043,6 +1413,11 @@ phonenumbers = {version = ">=7.0.2", optional = true, markers = "extra == \"phon
 phonenumbers = ["phonenumbers (>=7.0.2)"]
 phonenumberslite = ["phonenumberslite (>=7.0.2)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-polymorphic"
 version = "3.0.0"
@@ -1054,6 +1429,11 @@ python-versions = "*"
 [package.dependencies]
 Django = ">=2.1"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-prometheus"
 version = "2.1.0"
@@ -1065,6 +1445,11 @@ python-versions = "*"
 [package.dependencies]
 prometheus-client = ">=0.7"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-redis"
 version = "5.0.0"
@@ -1077,6 +1462,11 @@ python-versions = ">=3.6"
 Django = ">=2.2"
 redis = ">=3.0.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-render-block"
 version = "0.8.1"
@@ -1088,6 +1478,11 @@ python-versions = ">=3.5"
 [package.dependencies]
 django = ">=2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-reversion"
 version = "4.0.0"
@@ -1099,6 +1494,11 @@ python-versions = ">=3.6"
 [package.dependencies]
 django = ">=2.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-sass-processor"
 version = "1.0.1"
@@ -1110,6 +1510,11 @@ python-versions = "*"
 [package.extras]
 management_command = ["django-compressor (>=2.4)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-select2"
 version = "7.7.1"
@@ -1125,6 +1530,11 @@ django-appconf = ">=0.6.0"
 [package.extras]
 test = ["pytest", "pytest-cov", "pytest-django", "selenium"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-stubs"
 version = "1.8.0"
@@ -1139,6 +1549,11 @@ django-stubs-ext = "*"
 mypy = ">=0.790"
 typing-extensions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-stubs-ext"
 version = "0.2.0"
@@ -1150,6 +1565,11 @@ python-versions = ">=3.6"
 [package.dependencies]
 django = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-tables2"
 version = "2.4.0"
@@ -1164,6 +1584,11 @@ Django = ">=1.11"
 [package.extras]
 tablib = ["tablib"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-templated-email"
 version = "3.0.0"
@@ -1175,6 +1600,11 @@ python-versions = "*"
 [package.dependencies]
 django-render-block = ">=0.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-timezone-field"
 version = "4.2.1"
@@ -1190,6 +1620,11 @@ pytz = "*"
 [package.extras]
 rest_framework = ["djangorestframework (>=3.0.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-titofisto"
 version = "0.1.2.post1"
@@ -1201,6 +1636,11 @@ python-versions = ">=3.9,<4.0"
 [package.dependencies]
 Django = ">2.2,<4.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-two-factor-auth"
 version = "1.13.1"
@@ -1226,6 +1666,11 @@ phonenumberslite = ["phonenumberslite (>=7.0.9,<8.99)"]
 sms = ["twilio (>=6.0)"]
 yubikey = ["django-otp-yubikey"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-uwsgi-ng"
 version = "1.1.2"
@@ -1237,6 +1682,11 @@ python-versions = "*"
 [package.extras]
 uwsgi = ["uwsgi"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-widget-tweaks"
 version = "1.4.8"
@@ -1245,6 +1695,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "django-yarnpkg"
 version = "6.0.1"
@@ -1257,6 +1712,11 @@ python-versions = "*"
 django = "*"
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "djangorestframework"
 version = "3.12.4"
@@ -1268,6 +1728,11 @@ python-versions = ">=3.5"
 [package.dependencies]
 django = ">=2.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "docutils"
 version = "0.16"
@@ -1276,6 +1741,11 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "dparse"
 version = "0.5.1"
@@ -1292,9 +1762,14 @@ toml = "*"
 [package.extras]
 pipenv = ["pipenv"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "dynaconf"
-version = "3.1.4"
+version = "3.1.5"
 description = "The dynamic configurator for your Python Project"
 category = "main"
 optional = false
@@ -1314,9 +1789,14 @@ toml = ["toml"]
 vault = ["hvac"]
 yaml = ["ruamel.yaml"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "faker"
-version = "8.11.0"
+version = "8.12.1"
 description = "Faker is a Python package that generates fake data for you."
 category = "main"
 optional = false
@@ -1326,6 +1806,11 @@ python-versions = ">=3.6"
 python-dateutil = ">=2.4"
 text-unidecode = "1.3"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8"
 version = "3.9.2"
@@ -1339,6 +1824,11 @@ mccabe = ">=0.6.0,<0.7.0"
 pycodestyle = ">=2.7.0,<2.8.0"
 pyflakes = ">=2.3.0,<2.4.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-bandit"
 version = "2.1.2"
@@ -1353,6 +1843,11 @@ flake8 = "*"
 flake8-polyfill = "*"
 pycodestyle = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-black"
 version = "0.2.3"
@@ -1366,6 +1861,11 @@ black = "*"
 flake8 = ">=3.0.0"
 toml = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-builtins"
 version = "1.5.3"
@@ -1380,6 +1880,11 @@ flake8 = "*"
 [package.extras]
 test = ["coverage", "coveralls", "mock", "pytest", "pytest-cov"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-django"
 version = "1.1.2"
@@ -1391,6 +1896,11 @@ python-versions = ">=3.6,<4.0"
 [package.dependencies]
 flake8 = ">=3.8.4,<4.0.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-docstrings"
 version = "1.6.0"
@@ -1403,6 +1913,11 @@ python-versions = "*"
 flake8 = ">=3"
 pydocstyle = ">=2.1"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-fixme"
 version = "1.1.1"
@@ -1411,6 +1926,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-isort"
 version = "4.0.0"
@@ -1427,6 +1947,11 @@ testfixtures = ">=6.8.0,<7"
 [package.extras]
 test = ["pytest (>=4.0.2,<6)", "toml"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-mypy"
 version = "17.8.0"
@@ -1440,6 +1965,11 @@ attrs = "*"
 flake8 = ">=3.0.0"
 mypy = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-polyfill"
 version = "1.0.2"
@@ -1451,6 +1981,11 @@ python-versions = "*"
 [package.dependencies]
 flake8 = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "flake8-rst-docstrings"
 version = "0.2.3"
@@ -1464,6 +1999,11 @@ flake8 = ">=3.0.0"
 pygments = "*"
 restructuredtext-lint = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "freezegun"
 version = "1.1.0"
@@ -1475,6 +2015,11 @@ python-versions = ">=3.5"
 [package.dependencies]
 python-dateutil = ">=2.7"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "gitdb"
 version = "4.0.7"
@@ -1486,6 +2031,11 @@ python-versions = ">=3.4"
 [package.dependencies]
 smmap = ">=3.0.1,<5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "gitpython"
 version = "3.1.20"
@@ -1498,6 +2048,11 @@ python-versions = ">=3.6"
 gitdb = ">=4.0.1,<5"
 typing-extensions = {version = ">=3.7.4.3", markers = "python_version < \"3.10\""}
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "haystack-redis"
 version = "0.0.1"
@@ -1511,6 +2066,11 @@ django-haystack = "*"
 redis = "*"
 whoosh = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "html2text"
 version = "2020.1.16"
@@ -1519,6 +2079,11 @@ category = "main"
 optional = false
 python-versions = ">=3.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "idna"
 version = "3.2"
@@ -1527,6 +2092,11 @@ category = "main"
 optional = false
 python-versions = ">=3.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "imagesize"
 version = "1.2.0"
@@ -1535,6 +2105,11 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "iniconfig"
 version = "1.1.1"
@@ -1543,6 +2118,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "ipython"
 version = "7.26.0"
@@ -1575,6 +2155,11 @@ parallel = ["ipyparallel"]
 qtconsole = ["qtconsole"]
 test = ["nose (>=0.10.1)", "requests", "testpath", "pygments", "nbformat", "ipykernel", "numpy (>=1.17)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "ipython-genutils"
 version = "0.2.0"
@@ -1583,6 +2168,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "isort"
 version = "5.9.3"
@@ -1592,11 +2182,16 @@ optional = false
 python-versions = ">=3.6.1,<4.0"
 
 [package.extras]
-pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
-requirements_deprecated_finder = ["pipreqs", "pip-api"]
 colors = ["colorama (>=0.4.3,<0.5.0)"]
+requirements_deprecated_finder = ["pip-api", "pipreqs"]
+pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
 plugins = ["setuptools"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "jedi"
 version = "0.18.0"
@@ -1612,6 +2207,11 @@ parso = ">=0.8.0,<0.9.0"
 qa = ["flake8 (==3.8.3)", "mypy (==0.782)"]
 testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<6.0.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "jinja2"
 version = "3.0.1"
@@ -1626,6 +2226,11 @@ MarkupSafe = ">=2.0"
 [package.extras]
 i18n = ["Babel (>=2.7)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "jwcrypto"
 version = "1.0"
@@ -1638,6 +2243,11 @@ python-versions = "*"
 cryptography = ">=2.3"
 deprecated = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "kombu"
 version = "5.1.0"
@@ -1666,6 +2276,11 @@ sqs = ["boto3 (>=1.4.4)", "pycurl (==7.43.0.2)", "urllib3 (<1.26)"]
 yaml = ["PyYAML (>=3.10)"]
 zookeeper = ["kazoo (>=1.3.1)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "libsass"
 version = "0.21.0"
@@ -1677,6 +2292,11 @@ python-versions = "*"
 [package.dependencies]
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "license-expression"
 version = "1.2"
@@ -1688,6 +2308,11 @@ python-versions = "*"
 [package.dependencies]
 "boolean.py" = ">=3.6,<4.0.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "markupsafe"
 version = "2.0.1"
@@ -1696,6 +2321,11 @@ category = "dev"
 optional = false
 python-versions = ">=3.6"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "matplotlib-inline"
 version = "0.1.2"
@@ -1707,6 +2337,11 @@ python-versions = ">=3.5"
 [package.dependencies]
 traitlets = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "mccabe"
 version = "0.6.1"
@@ -1715,6 +2350,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "mypy"
 version = "0.910"
@@ -1732,6 +2372,11 @@ typing-extensions = ">=3.7.4"
 dmypy = ["psutil (>=4.0)"]
 python2 = ["typed-ast (>=1.4.0,<1.5.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "mypy-extensions"
 version = "0.4.3"
@@ -1740,6 +2385,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "oauthlib"
 version = "3.1.1"
@@ -1753,6 +2403,11 @@ rsa = ["cryptography (>=3.0.0,<4)"]
 signals = ["blinker (>=1.4.0)"]
 signedtoken = ["cryptography (>=3.0.0,<4)", "pyjwt (>=2.0.0,<3)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "packaging"
 version = "21.0"
@@ -1764,6 +2419,11 @@ python-versions = ">=3.6"
 [package.dependencies]
 pyparsing = ">=2.0.2"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "parso"
 version = "0.8.2"
@@ -1776,6 +2436,11 @@ python-versions = ">=3.6"
 qa = ["flake8 (==3.8.3)", "mypy (==0.782)"]
 testing = ["docopt", "pytest (<6.0.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "parsy"
 version = "1.1.0"
@@ -1784,6 +2449,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pathspec"
 version = "0.9.0"
@@ -1792,6 +2462,11 @@ category = "dev"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pbr"
 version = "5.6.0"
@@ -1800,6 +2475,11 @@ category = "dev"
 optional = false
 python-versions = ">=2.6"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "persisting-theory"
 version = "0.2.1"
@@ -1808,6 +2488,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pexpect"
 version = "4.8.0"
@@ -1819,6 +2504,11 @@ python-versions = "*"
 [package.dependencies]
 ptyprocess = ">=0.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pg8000"
 version = "1.21.0"
@@ -1830,14 +2520,24 @@ python-versions = ">=3.6"
 [package.dependencies]
 scramp = ">=1.4.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "phonenumbers"
-version = "8.12.29"
+version = "8.12.31"
 description = "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers."
 category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pickleshare"
 version = "0.7.5"
@@ -1846,6 +2546,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pillow"
 version = "8.3.1"
@@ -1854,6 +2559,11 @@ category = "main"
 optional = false
 python-versions = ">=3.6"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pluggy"
 version = "0.13.1"
@@ -1865,6 +2575,11 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 [package.extras]
 dev = ["pre-commit", "tox"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "prometheus-client"
 version = "0.11.0"
@@ -1876,17 +2591,27 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 [package.extras]
 twisted = ["twisted"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "prompt-toolkit"
-version = "3.0.19"
+version = "3.0.20"
 description = "Library for building powerful interactive command lines in Python"
 category = "main"
 optional = false
-python-versions = ">=3.6.1"
+python-versions = ">=3.6.2"
 
 [package.dependencies]
 wcwidth = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "psutil"
 version = "5.8.0"
@@ -1898,6 +2623,11 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 [package.extras]
 test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "psycopg2"
 version = "2.9.1"
@@ -1906,6 +2636,11 @@ category = "main"
 optional = false
 python-versions = ">=3.6"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "ptyprocess"
 version = "0.7.0"
@@ -1914,6 +2649,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "py"
 version = "1.10.0"
@@ -1922,6 +2662,11 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pycodestyle"
 version = "2.7.0"
@@ -1930,6 +2675,11 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pycparser"
 version = "2.20"
@@ -1938,6 +2688,11 @@ category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pycryptodome"
 version = "3.10.1"
@@ -1946,6 +2701,11 @@ category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pydocstyle"
 version = "6.1.1"
@@ -1960,6 +2720,11 @@ snowballstemmer = "*"
 [package.extras]
 toml = ["toml"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pyflakes"
 version = "2.3.1"
@@ -1968,14 +2733,24 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pygments"
-version = "2.9.0"
+version = "2.10.0"
 description = "Pygments is a syntax highlighting package written in Python."
 category = "main"
 optional = false
 python-versions = ">=3.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pyjwt"
 version = "1.7.1"
@@ -1992,6 +2767,11 @@ crypto = ["cryptography (>=1.4)"]
 flake8 = ["flake8", "flake8-import-order", "pep8-naming"]
 test = ["pytest (>=4.0.1,<5.0.0)", "pytest-cov (>=2.6.0,<3.0.0)", "pytest-runner (>=4.2,<5.0.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pyparsing"
 version = "2.4.7"
@@ -2000,6 +2780,11 @@ category = "main"
 optional = false
 python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pytest"
 version = "6.2.4"
@@ -2021,6 +2806,11 @@ toml = "*"
 [package.extras]
 testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pytest-cov"
 version = "2.12.1"
@@ -2037,6 +2827,11 @@ toml = "*"
 [package.extras]
 testing = ["fields", "hunter", "process-tests", "six", "pytest-xdist", "virtualenv"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pytest-django"
 version = "4.4.0"
@@ -2052,6 +2847,11 @@ pytest = ">=5.4.0"
 docs = ["sphinx", "sphinx-rtd-theme"]
 testing = ["django", "django-configurations (>=2.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pytest-django-testing-postgresql"
 version = "0.1.post0"
@@ -2064,6 +2864,11 @@ python-versions = "*"
 dj-database-url = "*"
 "testing.postgresql" = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pytest-sugar"
 version = "0.9.4"
@@ -2077,6 +2882,11 @@ packaging = ">=14.1"
 pytest = ">=2.9"
 termcolor = ">=1.1.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "python-crontab"
 version = "2.5.1"
@@ -2092,6 +2902,11 @@ python-dateutil = "*"
 cron-description = ["cron-descriptor"]
 cron-schedule = ["croniter"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "python-dateutil"
 version = "2.8.2"
@@ -2103,6 +2918,11 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
 [package.dependencies]
 six = ">=1.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "python-gnupg"
 version = "0.4.7"
@@ -2111,6 +2931,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "python3-openid"
 version = "3.2.0"
@@ -2126,6 +2951,11 @@ defusedxml = "*"
 mysql = ["mysql-connector-python"]
 postgresql = ["psycopg2"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pytz"
 version = "2021.1"
@@ -2134,6 +2964,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "pyyaml"
 version = "5.4.1"
@@ -2142,6 +2977,11 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "qrcode"
 version = "6.1"
@@ -2160,6 +3000,11 @@ maintainer = ["zest.releaser"]
 pil = ["pillow"]
 test = ["pytest", "pytest-cov", "mock"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "redis"
 version = "3.5.3"
@@ -2171,14 +3016,24 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 [package.extras]
 hiredis = ["hiredis (>=0.1.3)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "regex"
-version = "2021.8.3"
+version = "2021.8.21"
 description = "Alternative regular expression module, to replace re."
 category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "requests"
 version = "2.26.0"
@@ -2197,6 +3052,11 @@ urllib3 = ">=1.21.1,<1.27"
 socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
 use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "requests-oauthlib"
 version = "1.3.0"
@@ -2212,6 +3072,11 @@ requests = ">=2.0.0"
 [package.extras]
 rsa = ["oauthlib[signedtoken] (>=3.0.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "restructuredtext-lint"
 version = "1.3.2"
@@ -2223,9 +3088,14 @@ python-versions = "*"
 [package.dependencies]
 docutils = ">=0.11,<1.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "ruamel.yaml"
-version = "0.17.10"
+version = "0.17.13"
 description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order"
 category = "main"
 optional = false
@@ -2238,6 +3108,11 @@ python-versions = ">=3"
 docs = ["ryd"]
 jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "ruamel.yaml.clib"
 version = "0.2.6"
@@ -2246,6 +3121,11 @@ category = "main"
 optional = false
 python-versions = ">=3.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "rules"
 version = "2.2"
@@ -2254,6 +3134,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "safety"
 version = "1.10.3"
@@ -2268,6 +3153,11 @@ dparse = ">=0.5.1"
 packaging = "*"
 requests = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "scramp"
 version = "1.4.0"
@@ -2279,6 +3169,11 @@ python-versions = ">=3.6"
 [package.dependencies]
 asn1crypto = "1.4.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "selenium"
 version = "3.141.0"
@@ -2290,6 +3185,11 @@ python-versions = "*"
 [package.dependencies]
 urllib3 = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "six"
 version = "1.16.0"
@@ -2298,6 +3198,11 @@ category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "smmap"
 version = "4.0.0"
@@ -2306,6 +3211,11 @@ category = "dev"
 optional = false
 python-versions = ">=3.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "snowballstemmer"
 version = "2.1.0"
@@ -2314,6 +3224,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "soupsieve"
 version = "2.2.1"
@@ -2322,6 +3237,11 @@ category = "main"
 optional = false
 python-versions = ">=3.6"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "spdx-license-list"
 version = "0.5.2"
@@ -2330,6 +3250,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinx"
 version = "3.5.4"
@@ -2361,6 +3286,11 @@ docs = ["sphinxcontrib-websupport"]
 lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"]
 test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinx-autodoc-typehints"
 version = "1.12.0"
@@ -2376,6 +3306,11 @@ Sphinx = ">=3.0"
 test = ["pytest (>=3.1.0)", "typing-extensions (>=3.5)", "sphobjinv (>=2.0)", "Sphinx (>=3.2.0)", "dataclasses"]
 type_comments = ["typed-ast (>=1.4.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinx-materialdesign-theme"
 version = "0.1.11"
@@ -2384,6 +3319,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinxcontrib-applehelp"
 version = "1.0.2"
@@ -2396,6 +3336,11 @@ python-versions = ">=3.5"
 lint = ["flake8", "mypy", "docutils-stubs"]
 test = ["pytest"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinxcontrib-devhelp"
 version = "1.0.2"
@@ -2408,6 +3353,11 @@ python-versions = ">=3.5"
 lint = ["flake8", "mypy", "docutils-stubs"]
 test = ["pytest"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinxcontrib-django"
 version = "0.5.1"
@@ -2416,6 +3366,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinxcontrib-htmlhelp"
 version = "2.0.0"
@@ -2428,6 +3383,11 @@ python-versions = ">=3.6"
 lint = ["flake8", "mypy", "docutils-stubs"]
 test = ["pytest", "html5lib"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinxcontrib-jsmath"
 version = "1.0.1"
@@ -2439,6 +3399,11 @@ python-versions = ">=3.5"
 [package.extras]
 test = ["pytest", "flake8", "mypy"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinxcontrib-qthelp"
 version = "1.0.3"
@@ -2451,6 +3416,11 @@ python-versions = ">=3.5"
 lint = ["flake8", "mypy", "docutils-stubs"]
 test = ["pytest"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sphinxcontrib-serializinghtml"
 version = "1.1.5"
@@ -2463,6 +3433,11 @@ python-versions = ">=3.5"
 lint = ["flake8", "mypy", "docutils-stubs"]
 test = ["pytest"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "sqlparse"
 version = "0.4.1"
@@ -2471,9 +3446,14 @@ category = "main"
 optional = false
 python-versions = ">=3.5"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "stevedore"
-version = "3.3.0"
+version = "3.4.0"
 description = "Manage dynamic plugins for Python applications"
 category = "dev"
 optional = false
@@ -2482,6 +3462,11 @@ python-versions = ">=3.6"
 [package.dependencies]
 pbr = ">=2.0.0,<2.1.0 || >2.1.0"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "termcolor"
 version = "1.1.0"
@@ -2490,9 +3475,14 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "testfixtures"
-version = "6.18.0"
+version = "6.18.1"
 description = "A collection of helpers and mock objects for unit tests and doc tests."
 category = "dev"
 optional = false
@@ -2503,6 +3493,11 @@ build = ["setuptools-git", "wheel", "twine"]
 docs = ["sphinx", "zope.component", "sybil", "twisted", "mock", "django (<2)", "django"]
 test = ["pytest (>=3.6)", "pytest-cov", "pytest-django", "zope.component", "sybil", "twisted", "mock", "django (<2)", "django"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "testing.common.database"
 version = "2.0.3"
@@ -2514,6 +3509,11 @@ python-versions = "*"
 [package.extras]
 testing = ["nose"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "testing.postgresql"
 version = "1.3.0"
@@ -2529,6 +3529,11 @@ pg8000 = ">=1.10"
 [package.extras]
 testing = ["sqlalchemy", "nose", "psycopg2"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "text-unidecode"
 version = "1.3"
@@ -2537,6 +3542,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "toml"
 version = "0.10.2"
@@ -2545,9 +3555,14 @@ category = "main"
 optional = false
 python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "tqdm"
-version = "4.62.0"
+version = "4.62.2"
 description = "Fast, Extensible Progress Meter"
 category = "main"
 optional = false
@@ -2561,6 +3576,11 @@ dev = ["py-make (>=0.1.0)", "twine", "wheel"]
 notebook = ["ipywidgets (>=6)"]
 telegram = ["requests"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "traitlets"
 version = "5.0.5"
@@ -2575,6 +3595,11 @@ ipython-genutils = "*"
 [package.extras]
 test = ["pytest"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "twilio"
 version = "6.63.0"
@@ -2589,6 +3614,11 @@ pytz = "*"
 requests = {version = ">=2.0.0", markers = "python_version >= \"3.0\""}
 six = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "typed-ast"
 version = "1.4.3"
@@ -2597,6 +3627,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "typing-extensions"
 version = "3.10.0.0"
@@ -2605,6 +3640,11 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "urllib3"
 version = "1.26.6"
@@ -2618,6 +3658,11 @@ brotli = ["brotlipy (>=0.6.0)"]
 secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
 socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "vine"
 version = "5.0.0"
@@ -2626,6 +3671,11 @@ category = "main"
 optional = false
 python-versions = ">=3.6"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "wcwidth"
 version = "0.2.5"
@@ -2634,6 +3684,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "webencodings"
 version = "0.5.1"
@@ -2642,6 +3697,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "whoosh"
 version = "2.7.4"
@@ -2650,6 +3710,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "wrapt"
 version = "1.12.1"
@@ -2658,6 +3723,11 @@ category = "main"
 optional = false
 python-versions = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [[package]]
 name = "yubiotp"
 version = "1.0.0.post1"
@@ -2669,6 +3739,11 @@ python-versions = "*"
 [package.dependencies]
 pycryptodome = "*"
 
+[package.source]
+type = "legacy"
+url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
+reference = "gitlab"
+
 [metadata]
 lock-version = "1.1"
 python-versions = "^3.9"
@@ -2687,8 +3762,8 @@ aleksis-builddeps = [
     {file = "AlekSIS-Builddeps-4.tar.gz", hash = "sha256:aaaa22965228b9b9b7de812e3e7fa9cbfdbf8635bb22d6f3a201dc0cc6d8d307"},
 ]
 aleksis-core = [
-    {file = "AlekSIS-Core-2.1.dev0+20210805205937.c775be2f.tar.gz", hash = "sha256:174623a2bf33a4ea508b0b18951413072ce1ce7edd0d57233d5f9cf09609358a"},
-    {file = "AlekSIS_Core-2.1.dev0+20210805205937.c775be2f-py3-none-any.whl", hash = "sha256:84a7642863d32ce8b87bb6e6ee62e4ad3824632ee7398392cf9956ea2c2f2580"},
+    {file = "AlekSIS-Core-2.1.dev0+20210819220817.c08aeb1f.tar.gz", hash = "sha256:cea2713af78ccf3d375693fe6e31c71fdab231dfce80a14631487ae3925519eb"},
+    {file = "AlekSIS_Core-2.1.dev0+20210819220817.c08aeb1f-py3-none-any.whl", hash = "sha256:576f21a4cab3e817999c450c795cfe630b5b82c540e47094e4df0bc0bb2c4540"},
 ]
 amqp = [
     {file = "amqp-5.0.6-py3-none-any.whl", hash = "sha256:493a2ac6788ce270a2f6a765b017299f60c1998f5a8617908ee9be082f7300fb"},
@@ -2744,8 +3819,7 @@ black = [
     {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"},
 ]
 bleach = [
-    {file = "bleach-4.0.0-py2.py3-none-any.whl", hash = "sha256:c1685a132e6a9a38bf93752e5faab33a9517a6c0bb2f37b785e47bf253bdb51d"},
-    {file = "bleach-4.0.0.tar.gz", hash = "sha256:ffa9221c6ac29399cc50fcc33473366edd0cf8d5e2cbbbb63296dc327fb67cc8"},
+    {file = "bleach-4.1.0.tar.gz", hash = "sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da"},
 ]
 "boolean.py" = [
     {file = "boolean.py-3.8-py2.py3-none-any.whl", hash = "sha256:d75da0fd0354425fa64f6bbc6cec6ae1485d0eec3447b73187ff8cbf9b572e26"},
@@ -2906,18 +3980,23 @@ coverage = [
     {file = "coverage-5.5.tar.gz", hash = "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c"},
 ]
 cryptography = [
-    {file = "cryptography-3.4.7-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:3d8427734c781ea5f1b41d6589c293089704d4759e34597dce91014ac125aad1"},
-    {file = "cryptography-3.4.7-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:8e56e16617872b0957d1c9742a3f94b43533447fd78321514abbe7db216aa250"},
-    {file = "cryptography-3.4.7-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:37340614f8a5d2fb9aeea67fd159bfe4f5f4ed535b1090ce8ec428b2f15a11f2"},
-    {file = "cryptography-3.4.7-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:240f5c21aef0b73f40bb9f78d2caff73186700bf1bc6b94285699aff98cc16c6"},
-    {file = "cryptography-3.4.7-cp36-abi3-manylinux2014_x86_64.whl", hash = "sha256:1e056c28420c072c5e3cb36e2b23ee55e260cb04eee08f702e0edfec3fb51959"},
-    {file = "cryptography-3.4.7-cp36-abi3-win32.whl", hash = "sha256:0f1212a66329c80d68aeeb39b8a16d54ef57071bf22ff4e521657b27372e327d"},
-    {file = "cryptography-3.4.7-cp36-abi3-win_amd64.whl", hash = "sha256:de4e5f7f68220d92b7637fc99847475b59154b7a1b3868fb7385337af54ac9ca"},
-    {file = "cryptography-3.4.7-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:26965837447f9c82f1855e0bc8bc4fb910240b6e0d16a664bb722df3b5b06873"},
-    {file = "cryptography-3.4.7-pp36-pypy36_pp73-manylinux2014_x86_64.whl", hash = "sha256:eb8cc2afe8b05acbd84a43905832ec78e7b3873fb124ca190f574dca7389a87d"},
-    {file = "cryptography-3.4.7-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:7ec5d3b029f5fa2b179325908b9cd93db28ab7b85bb6c1db56b10e0b54235177"},
-    {file = "cryptography-3.4.7-pp37-pypy37_pp73-manylinux2014_x86_64.whl", hash = "sha256:ee77aa129f481be46f8d92a1a7db57269a2f23052d5f2433b4621bb457081cc9"},
-    {file = "cryptography-3.4.7.tar.gz", hash = "sha256:3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713"},
+    {file = "cryptography-3.4.8-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:a00cf305f07b26c351d8d4e1af84ad7501eca8a342dedf24a7acb0e7b7406e14"},
+    {file = "cryptography-3.4.8-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:f44d141b8c4ea5eb4dbc9b3ad992d45580c1d22bf5e24363f2fbf50c2d7ae8a7"},
+    {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0a7dcbcd3f1913f664aca35d47c1331fce738d44ec34b7be8b9d332151b0b01e"},
+    {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"},
+    {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"},
+    {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"},
+    {file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"},
+    {file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"},
+    {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"},
+    {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a305600e7a6b7b855cd798e00278161b681ad6e9b7eca94c721d5f588ab212af"},
+    {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3fa3a7ccf96e826affdf1a0a9432be74dc73423125c8f96a909e3835a5ef194a"},
+    {file = "cryptography-3.4.8-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9ec0e67a14f9d1d48dd87a2531009a9b251c02ea42851c060b25c782516ff06"},
+    {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b0fbfae7ff7febdb74b574055c7466da334a5371f253732d7e2e7525d570498"},
+    {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94fff993ee9bc1b2440d3b7243d488c6a3d9724cc2b09cdb297f6a886d040ef7"},
+    {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:8695456444f277af73a4877db9fc979849cd3ee74c198d04fc0776ebc3db52b9"},
+    {file = "cryptography-3.4.8-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:cd65b60cfe004790c795cc35f272e41a3df4631e2fb6b35aa7ac6ef2859d554e"},
+    {file = "cryptography-3.4.8.tar.gz", hash = "sha256:94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c"},
 ]
 curlylint = [
     {file = "curlylint-0.12.2-py3-none-any.whl", hash = "sha256:98bc15609ce858387dd70a28c7ddda96e82d0f1cb8bf51b8902532ce0fc1a97e"},
@@ -2963,8 +4042,8 @@ django-bulk-update = [
     {file = "django_bulk_update-2.2.0-py2.py3-none-any.whl", hash = "sha256:49a403392ae05ea872494d74fb3dfa3515f8df5c07cc277c3dc94724c0ee6985"},
 ]
 django-cachalot = [
-    {file = "django-cachalot-2.4.2.tar.gz", hash = "sha256:67d3a783a8f61191cf8a1c1db944b08e276e93735434aafdee8d721bfd9e4901"},
-    {file = "django_cachalot-2.4.2-py3-none-any.whl", hash = "sha256:1d5c47e56425afc0b7131696d7894ed5c9d85cb6994282a02fe3d8bc274e1bd3"},
+    {file = "django-cachalot-2.4.3.tar.gz", hash = "sha256:2c81390f53d8c2e0ae6f266cff170b5681dad2416e09266ca7ca25f50e892a53"},
+    {file = "django_cachalot-2.4.3-py3-none-any.whl", hash = "sha256:d56ffa280da8317019959801703659616adcf60e1bf6513bd7e154b0b0851014"},
 ]
 django-cache-memoize = [
     {file = "django-cache-memoize-0.1.10.tar.gz", hash = "sha256:63e8faa245a41c0dbad843807e9f21a6e59eba8e6e50df310fdf6485a6749843"},
@@ -2998,8 +4077,8 @@ django-dbbackup = [
     {file = "django-dbbackup-3.3.0.tar.gz", hash = "sha256:bb109735cae98b64ad084e5b461b7aca2d7b39992f10c9ed9435e3ebb6fb76c8"},
 ]
 django-debug-toolbar = [
-    {file = "django-debug-toolbar-3.2.1.tar.gz", hash = "sha256:a5ff2a54f24bf88286f9872836081078f4baa843dc3735ee88524e89f8821e33"},
-    {file = "django_debug_toolbar-3.2.1-py3-none-any.whl", hash = "sha256:e759e63e3fe2d3110e0e519639c166816368701eab4a47fed75d7de7018467b9"},
+    {file = "django-debug-toolbar-3.2.2.tar.gz", hash = "sha256:8c5b13795d4040008ee69ba82dcdd259c49db346cf7d0de6e561a49d191f0860"},
+    {file = "django_debug_toolbar-3.2.2-py3-none-any.whl", hash = "sha256:d7bab7573fab35b0fd029163371b7182f5826c13da69734beb675c761d06a4d3"},
 ]
 django-dynamic-preferences = [
     {file = "django-dynamic-preferences-1.10.1.tar.gz", hash = "sha256:e4b2bb7b2563c5064ba56dd76441c77e06b850ff1466a386a1cd308909a6c7de"},
@@ -3010,8 +4089,8 @@ django-extensions = [
     {file = "django_extensions-3.1.3-py3-none-any.whl", hash = "sha256:50de8977794a66a91575dd40f87d5053608f679561731845edbd325ceeb387e3"},
 ]
 django-favicon-plus-reloaded = [
-    {file = "django-favicon-plus-reloaded-1.1.2.linux-x86_64.tar.gz", hash = "sha256:35d27ed9f559db3ff933b0020d747a94025b296e29b424c860a374fdfa3cef88"},
-    {file = "django_favicon_plus_reloaded-1.1.2-py3-none-any.whl", hash = "sha256:7c7b68180e59412df2b39fced669b286ba895262fb64116e2db61f20f5c8af29"},
+    {file = "django-favicon-plus-reloaded-1.1.3.tar.gz", hash = "sha256:36c2a1cefc201df8bd132492e2440ccdc3d9ceb8e421b2ca181a4704ebacd190"},
+    {file = "django_favicon_plus_reloaded-1.1.3-py3-none-any.whl", hash = "sha256:a60b438360e82bf7075b856ff6a80bae20c825373a58deac627810e478c42be3"},
 ]
 django-filter = [
     {file = "django-filter-2.4.0.tar.gz", hash = "sha256:84e9d5bb93f237e451db814ed422a3a625751cbc9968b484ecc74964a8696b06"},
@@ -3040,8 +4119,8 @@ django-impersonate = [
     {file = "django-impersonate-1.7.3.tar.gz", hash = "sha256:282003957577c7143fe31e5861f8fffdf6fe0c25557aedb28fcf8b11474eaa23"},
 ]
 django-ipware = [
-    {file = "django-ipware-3.0.7.tar.gz", hash = "sha256:753f8214a16ccaac54ea977349a96e37b582a28a54065e00c1c46d530862c85e"},
-    {file = "django_ipware-3.0.7-py2.py3-none-any.whl", hash = "sha256:a18820ea2b98ff3f87b7530eb6346f5feb65d18e89397606aacc098fa7b93db2"},
+    {file = "django-ipware-4.0.0.tar.gz", hash = "sha256:1294f916f3b3475e40e1b0ec1bd320aa2397978eae672721c81cbc2ed517e9ee"},
+    {file = "django_ipware-4.0.0-py2.py3-none-any.whl", hash = "sha256:116bd0d7940f09bf7ffd465943992e23d87e772a9d6c0d3a57b74040589a383b"},
 ]
 django-js-asset = [
     {file = "django-js-asset-1.2.2.tar.gz", hash = "sha256:c163ae80d2e0b22d8fb598047cd0dcef31f81830e127cfecae278ad574167260"},
@@ -3166,12 +4245,12 @@ dparse = [
     {file = "dparse-0.5.1.tar.gz", hash = "sha256:a1b5f169102e1c894f9a7d5ccf6f9402a836a5d24be80a986c7ce9eaed78f367"},
 ]
 dynaconf = [
-    {file = "dynaconf-3.1.4-py2.py3-none-any.whl", hash = "sha256:e6f383b84150b70fc439c8b2757581a38a58d07962aa14517292dcce1a77e160"},
-    {file = "dynaconf-3.1.4.tar.gz", hash = "sha256:b2f472d83052f809c5925565b8a2ba76a103d5dc1dbb9748b693ed67212781b9"},
+    {file = "dynaconf-3.1.5-py2.py3-none-any.whl", hash = "sha256:98f0e5d861e945c1b06ed33844b9341e6412bc121c1a9ea88668df7891d8f308"},
+    {file = "dynaconf-3.1.5.tar.gz", hash = "sha256:40979cc454d8533fada490dc0945a1dbf5ea96f95dc9113f8a3b3053670fd569"},
 ]
 faker = [
-    {file = "Faker-8.11.0-py3-none-any.whl", hash = "sha256:3e737576ff50cd98dfed643d6b3fd63194eca9df00e7f595960fe7da5220723d"},
-    {file = "Faker-8.11.0.tar.gz", hash = "sha256:b9e81e9da3dda3ac54189e034cfb943de576a259caeb226ccab43fcbcf6a7891"},
+    {file = "Faker-8.12.1-py3-none-any.whl", hash = "sha256:6714c153433086681b26e5c95ee314ee0fcd45ec05f2426097543dd4c70789a6"},
+    {file = "Faker-8.12.1.tar.gz", hash = "sha256:810859626d19e62a2a13aa4a08d59ada131f0522431eec163b09b6df147a25b9"},
 ]
 flake8 = [
     {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"},
@@ -3292,12 +4371,22 @@ license-expression = [
     {file = "license_expression-1.2-py2.py3-none-any.whl", hash = "sha256:6d97906380cecfc758a77f6d38c6760f2afade7e83d2b8295e234fe21f486fb8"},
 ]
 markupsafe = [
+    {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
+    {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
+    {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
+    {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
+    {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
+    {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
+    {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
+    {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
+    {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
+    {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
@@ -3306,14 +4395,21 @@ markupsafe = [
     {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
+    {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
+    {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
+    {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
+    {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
+    {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
+    {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
+    {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
@@ -3323,6 +4419,9 @@ markupsafe = [
     {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
+    {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
+    {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
+    {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
     {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
@@ -3400,8 +4499,8 @@ pg8000 = [
     {file = "pg8000-1.21.0.tar.gz", hash = "sha256:c99108c630b1c468668a8def38be4c91b2fb7cf0154ce7918e7a3912e60652d7"},
 ]
 phonenumbers = [
-    {file = "phonenumbers-8.12.29-py2.py3-none-any.whl", hash = "sha256:885b7b4521bb9105b31a8597d3baa6da11155f819f1231434590db2f130a27cd"},
-    {file = "phonenumbers-8.12.29.tar.gz", hash = "sha256:9a396a4d69ed4cf1f8513114869cbed4f12542644374a5d5f11bc7fd66a2098a"},
+    {file = "phonenumbers-8.12.31-py2.py3-none-any.whl", hash = "sha256:3ede2a2fce9b2ed335c0168e8276546d717fceeffe23761877925dff0a8f54f1"},
+    {file = "phonenumbers-8.12.31.tar.gz", hash = "sha256:091ed2b3158567f12c99f719570a1ccace00179f39b44f1e6b895f59d93dadc8"},
 ]
 pickleshare = [
     {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"},
@@ -3457,8 +4556,8 @@ prometheus-client = [
     {file = "prometheus_client-0.11.0.tar.gz", hash = "sha256:3a8baade6cb80bcfe43297e33e7623f3118d660d41387593758e2fb1ea173a86"},
 ]
 prompt-toolkit = [
-    {file = "prompt_toolkit-3.0.19-py3-none-any.whl", hash = "sha256:7089d8d2938043508aa9420ec18ce0922885304cddae87fb96eebca942299f88"},
-    {file = "prompt_toolkit-3.0.19.tar.gz", hash = "sha256:08360ee3a3148bdb5163621709ee322ec34fc4375099afa4bbf751e9b7b7fa4f"},
+    {file = "prompt_toolkit-3.0.20-py3-none-any.whl", hash = "sha256:6076e46efae19b1e0ca1ec003ed37a933dc94b4d20f486235d436e64771dcd5c"},
+    {file = "prompt_toolkit-3.0.20.tar.gz", hash = "sha256:eb71d5a6b72ce6db177af4a7d4d7085b99756bf656d98ffcc4fecd36850eea6c"},
 ]
 psutil = [
     {file = "psutil-5.8.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:0066a82f7b1b37d334e68697faba68e5ad5e858279fd6351c8ca6024e8d6ba64"},
@@ -3558,8 +4657,8 @@ pyflakes = [
     {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"},
 ]
 pygments = [
-    {file = "Pygments-2.9.0-py3-none-any.whl", hash = "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"},
-    {file = "Pygments-2.9.0.tar.gz", hash = "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f"},
+    {file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"},
+    {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"},
 ]
 pyjwt = [
     {file = "PyJWT-1.7.1-py2.py3-none-any.whl", hash = "sha256:5c6eca3c2940464d106b99ba83b00c6add741c9becaec087fb7ccdefea71350e"},
@@ -3647,39 +4746,47 @@ redis = [
     {file = "redis-3.5.3.tar.gz", hash = "sha256:0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2"},
 ]
 regex = [
-    {file = "regex-2021.8.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8764a78c5464ac6bde91a8c87dd718c27c1cabb7ed2b4beaf36d3e8e390567f9"},
-    {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4551728b767f35f86b8e5ec19a363df87450c7376d7419c3cac5b9ceb4bce576"},
-    {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:577737ec3d4c195c4aef01b757905779a9e9aee608fa1cf0aec16b5576c893d3"},
-    {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c856ec9b42e5af4fe2d8e75970fcc3a2c15925cbcc6e7a9bcb44583b10b95e80"},
-    {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3835de96524a7b6869a6c710b26c90e94558c31006e96ca3cf6af6751b27dca1"},
-    {file = "regex-2021.8.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cea56288eeda8b7511d507bbe7790d89ae7049daa5f51ae31a35ae3c05408531"},
-    {file = "regex-2021.8.3-cp36-cp36m-win32.whl", hash = "sha256:a4eddbe2a715b2dd3849afbdeacf1cc283160b24e09baf64fa5675f51940419d"},
-    {file = "regex-2021.8.3-cp36-cp36m-win_amd64.whl", hash = "sha256:57fece29f7cc55d882fe282d9de52f2f522bb85290555b49394102f3621751ee"},
-    {file = "regex-2021.8.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a5c6dbe09aff091adfa8c7cfc1a0e83fdb8021ddb2c183512775a14f1435fe16"},
-    {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff4a8ad9638b7ca52313d8732f37ecd5fd3c8e3aff10a8ccb93176fd5b3812f6"},
-    {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b63e3571b24a7959017573b6455e05b675050bbbea69408f35f3cb984ec54363"},
-    {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fbc20975eee093efa2071de80df7f972b7b35e560b213aafabcec7c0bd00bd8c"},
-    {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14caacd1853e40103f59571f169704367e79fb78fac3d6d09ac84d9197cadd16"},
-    {file = "regex-2021.8.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bb350eb1060591d8e89d6bac4713d41006cd4d479f5e11db334a48ff8999512f"},
-    {file = "regex-2021.8.3-cp37-cp37m-win32.whl", hash = "sha256:18fdc51458abc0a974822333bd3a932d4e06ba2a3243e9a1da305668bd62ec6d"},
-    {file = "regex-2021.8.3-cp37-cp37m-win_amd64.whl", hash = "sha256:026beb631097a4a3def7299aa5825e05e057de3c6d72b139c37813bfa351274b"},
-    {file = "regex-2021.8.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:16d9eaa8c7e91537516c20da37db975f09ac2e7772a0694b245076c6d68f85da"},
-    {file = "regex-2021.8.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3905c86cc4ab6d71635d6419a6f8d972cab7c634539bba6053c47354fd04452c"},
-    {file = "regex-2021.8.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937b20955806381e08e54bd9d71f83276d1f883264808521b70b33d98e4dec5d"},
-    {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:28e8af338240b6f39713a34e337c3813047896ace09d51593d6907c66c0708ba"},
-    {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c09d88a07483231119f5017904db8f60ad67906efac3f1baa31b9b7f7cca281"},
-    {file = "regex-2021.8.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:85f568892422a0e96235eb8ea6c5a41c8ccbf55576a2260c0160800dbd7c4f20"},
-    {file = "regex-2021.8.3-cp38-cp38-win32.whl", hash = "sha256:bf6d987edd4a44dd2fa2723fca2790f9442ae4de2c8438e53fcb1befdf5d823a"},
-    {file = "regex-2021.8.3-cp38-cp38-win_amd64.whl", hash = "sha256:8fe58d9f6e3d1abf690174fd75800fda9bdc23d2a287e77758dc0e8567e38ce6"},
-    {file = "regex-2021.8.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7976d410e42be9ae7458c1816a416218364e06e162b82e42f7060737e711d9ce"},
-    {file = "regex-2021.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9569da9e78f0947b249370cb8fadf1015a193c359e7e442ac9ecc585d937f08d"},
-    {file = "regex-2021.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bbe342c5b2dec5c5223e7c363f291558bc27982ef39ffd6569e8c082bdc83"},
-    {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4f421e3cdd3a273bace013751c345f4ebeef08f05e8c10757533ada360b51a39"},
-    {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea212df6e5d3f60341aef46401d32fcfded85593af1d82b8b4a7a68cd67fdd6b"},
-    {file = "regex-2021.8.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a3b73390511edd2db2d34ff09aa0b2c08be974c71b4c0505b4a048d5dc128c2b"},
-    {file = "regex-2021.8.3-cp39-cp39-win32.whl", hash = "sha256:f35567470ee6dbfb946f069ed5f5615b40edcbb5f1e6e1d3d2b114468d505fc6"},
-    {file = "regex-2021.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:bfa6a679410b394600eafd16336b2ce8de43e9b13f7fb9247d84ef5ad2b45e91"},
-    {file = "regex-2021.8.3.tar.gz", hash = "sha256:8935937dad2c9b369c3d932b0edbc52a62647c2afb2fafc0c280f14a8bf56a6a"},
+    {file = "regex-2021.8.21-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b0c211c55d4aac4309c3209833c803fada3fc21cdf7b74abedda42a0c9dc3ce"},
+    {file = "regex-2021.8.21-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d5209c3ba25864b1a57461526ebde31483db295fc6195fdfc4f8355e10f7376"},
+    {file = "regex-2021.8.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c835c30f3af5c63a80917b72115e1defb83de99c73bc727bddd979a3b449e183"},
+    {file = "regex-2021.8.21-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:615fb5a524cffc91ab4490b69e10ae76c1ccbfa3383ea2fad72e54a85c7d47dd"},
+    {file = "regex-2021.8.21-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9966337353e436e6ba652814b0a957a517feb492a98b8f9d3b6ba76d22301dcc"},
+    {file = "regex-2021.8.21-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a49f85f0a099a5755d0a2cc6fc337e3cb945ad6390ec892332c691ab0a045882"},
+    {file = "regex-2021.8.21-cp310-cp310-win32.whl", hash = "sha256:f93a9d8804f4cec9da6c26c8cfae2c777028b4fdd9f49de0302e26e00bb86504"},
+    {file = "regex-2021.8.21-cp310-cp310-win_amd64.whl", hash = "sha256:a795829dc522227265d72b25d6ee6f6d41eb2105c15912c230097c8f5bfdbcdc"},
+    {file = "regex-2021.8.21-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:bca14dfcfd9aae06d7d8d7e105539bd77d39d06caaae57a1ce945670bae744e0"},
+    {file = "regex-2021.8.21-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41acdd6d64cd56f857e271009966c2ffcbd07ec9149ca91f71088574eaa4278a"},
+    {file = "regex-2021.8.21-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96f0c79a70642dfdf7e6a018ebcbea7ea5205e27d8e019cad442d2acfc9af267"},
+    {file = "regex-2021.8.21-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:45f97ade892ace20252e5ccecdd7515c7df5feeb42c3d2a8b8c55920c3551c30"},
+    {file = "regex-2021.8.21-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f9974826aeeda32a76648fc677e3125ade379869a84aa964b683984a2dea9f1"},
+    {file = "regex-2021.8.21-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea9753d64cba6f226947c318a923dadaf1e21cd8db02f71652405263daa1f033"},
+    {file = "regex-2021.8.21-cp36-cp36m-win32.whl", hash = "sha256:ef9326c64349e2d718373415814e754183057ebc092261387a2c2f732d9172b2"},
+    {file = "regex-2021.8.21-cp36-cp36m-win_amd64.whl", hash = "sha256:6dbd51c3db300ce9d3171f4106da18fe49e7045232630fe3d4c6e37cb2b39ab9"},
+    {file = "regex-2021.8.21-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a89ca4105f8099de349d139d1090bad387fe2b208b717b288699ca26f179acbe"},
+    {file = "regex-2021.8.21-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6c2b1d78ceceb6741d703508cd0e9197b34f6bf6864dab30f940f8886e04ade"},
+    {file = "regex-2021.8.21-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a34ba9e39f8269fd66ab4f7a802794ffea6d6ac500568ec05b327a862c21ce23"},
+    {file = "regex-2021.8.21-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ecb6e7c45f9cd199c10ec35262b53b2247fb9a408803ed00ee5bb2b54aa626f5"},
+    {file = "regex-2021.8.21-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:330836ad89ff0be756b58758878409f591d4737b6a8cef26a162e2a4961c3321"},
+    {file = "regex-2021.8.21-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:71a904da8c9c02aee581f4452a5a988c3003207cb8033db426f29e5b2c0b7aea"},
+    {file = "regex-2021.8.21-cp37-cp37m-win32.whl", hash = "sha256:b511c6009d50d5c0dd0bab85ed25bc8ad6b6f5611de3a63a59786207e82824bb"},
+    {file = "regex-2021.8.21-cp37-cp37m-win_amd64.whl", hash = "sha256:93f9f720081d97acee38a411e861d4ce84cbc8ea5319bc1f8e38c972c47af49f"},
+    {file = "regex-2021.8.21-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a195e26df1fbb40ebee75865f9b64ba692a5824ecb91c078cc665b01f7a9a36"},
+    {file = "regex-2021.8.21-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06ba444bbf7ede3890a912bd4904bb65bf0da8f0d8808b90545481362c978642"},
+    {file = "regex-2021.8.21-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8d551f1bd60b3e1c59ff55b9e8d74607a5308f66e2916948cafd13480b44a3"},
+    {file = "regex-2021.8.21-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ebbceefbffae118ab954d3cd6bf718f5790db66152f95202ebc231d58ad4e2c2"},
+    {file = "regex-2021.8.21-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccd721f1d4fc42b541b633d6e339018a08dd0290dc67269df79552843a06ca92"},
+    {file = "regex-2021.8.21-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ae87ab669431f611c56e581679db33b9a467f87d7bf197ac384e71e4956b4456"},
+    {file = "regex-2021.8.21-cp38-cp38-win32.whl", hash = "sha256:38600fd58c2996829480de7d034fb2d3a0307110e44dae80b6b4f9b3d2eea529"},
+    {file = "regex-2021.8.21-cp38-cp38-win_amd64.whl", hash = "sha256:61e734c2bcb3742c3f454dfa930ea60ea08f56fd1a0eb52d8cb189a2f6be9586"},
+    {file = "regex-2021.8.21-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b091dcfee169ad8de21b61eb2c3a75f9f0f859f851f64fdaf9320759a3244239"},
+    {file = "regex-2021.8.21-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:640ccca4d0a6fcc6590f005ecd7b16c3d8f5d52174e4854f96b16f34c39d6cb7"},
+    {file = "regex-2021.8.21-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac95101736239260189f426b1e361dc1b704513963357dc474beb0f39f5b7759"},
+    {file = "regex-2021.8.21-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b79dc2b2e313565416c1e62807c7c25c67a6ff0a0f8d83a318df464555b65948"},
+    {file = "regex-2021.8.21-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b623fc429a38a881ab2d9a56ef30e8ea20c72a891c193f5ebbddc016e083ee"},
+    {file = "regex-2021.8.21-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8021dee64899f993f4b5cca323aae65aabc01a546ed44356a0965e29d7893c94"},
+    {file = "regex-2021.8.21-cp39-cp39-win32.whl", hash = "sha256:d6ec4ae13760ceda023b2e5ef1f9bc0b21e4b0830458db143794a117fdbdc044"},
+    {file = "regex-2021.8.21-cp39-cp39-win_amd64.whl", hash = "sha256:03840a07a402576b8e3a6261f17eb88abd653ad4e18ec46ef10c9a63f8c99ebd"},
+    {file = "regex-2021.8.21.tar.gz", hash = "sha256:faf08b0341828f6a29b8f7dd94d5cf8cc7c39bfc3e67b78514c54b494b66915a"},
 ]
 requests = [
     {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"},
@@ -3688,14 +4795,13 @@ requests = [
 requests-oauthlib = [
     {file = "requests-oauthlib-1.3.0.tar.gz", hash = "sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a"},
     {file = "requests_oauthlib-1.3.0-py2.py3-none-any.whl", hash = "sha256:7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d"},
-    {file = "requests_oauthlib-1.3.0-py3.7.egg", hash = "sha256:fa6c47b933f01060936d87ae9327fead68768b69c6c9ea2109c48be30f2d4dbc"},
 ]
 restructuredtext-lint = [
     {file = "restructuredtext_lint-1.3.2.tar.gz", hash = "sha256:d3b10a1fe2ecac537e51ae6d151b223b78de9fafdd50e5eb6b08c243df173c80"},
 ]
 "ruamel.yaml" = [
-    {file = "ruamel.yaml-0.17.10-py3-none-any.whl", hash = "sha256:ffb9b703853e9e8b7861606dfdab1026cf02505bade0653d1880f4b2db47f815"},
-    {file = "ruamel.yaml-0.17.10.tar.gz", hash = "sha256:106bc8d6dc6a0ff7c9196a47570432036f41d556b779c6b4e618085f57e39e67"},
+    {file = "ruamel.yaml-0.17.13-py3-none-any.whl", hash = "sha256:aa1a5b8041bab0d0e8c514949fa8e11b02653061dcbc68365c820b263f8c6ec7"},
+    {file = "ruamel.yaml-0.17.13.tar.gz", hash = "sha256:02f0ed93e98ea32498d25a2952635bbd9fabd553599b8ad67724b4ac88dd8f6c"},
 ]
 "ruamel.yaml.clib" = [
     {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"},
@@ -3799,15 +4905,15 @@ sqlparse = [
     {file = "sqlparse-0.4.1.tar.gz", hash = "sha256:0f91fd2e829c44362cbcfab3e9ae12e22badaa8a29ad5ff599f9ec109f0454e8"},
 ]
 stevedore = [
-    {file = "stevedore-3.3.0-py3-none-any.whl", hash = "sha256:50d7b78fbaf0d04cd62411188fa7eedcb03eb7f4c4b37005615ceebe582aa82a"},
-    {file = "stevedore-3.3.0.tar.gz", hash = "sha256:3a5bbd0652bf552748871eaa73a4a8dc2899786bc497a2aa1fcb4dcdb0debeee"},
+    {file = "stevedore-3.4.0-py3-none-any.whl", hash = "sha256:920ce6259f0b2498aaa4545989536a27e4e4607b8318802d7ddc3a533d3d069e"},
+    {file = "stevedore-3.4.0.tar.gz", hash = "sha256:59b58edb7f57b11897f150475e7bc0c39c5381f0b8e3fa9f5c20ce6c89ec4aa1"},
 ]
 termcolor = [
     {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"},
 ]
 testfixtures = [
-    {file = "testfixtures-6.18.0-py2.py3-none-any.whl", hash = "sha256:9bddf79b2dddb36420a20c25a65c827a8e7398c6ed4e2c75c2697857cb006be9"},
-    {file = "testfixtures-6.18.0.tar.gz", hash = "sha256:d4bd1c4f90eac90a73e1bdc59c31d03943f218d687f3c5a09e48478841a8af5f"},
+    {file = "testfixtures-6.18.1-py2.py3-none-any.whl", hash = "sha256:486be7b01eb71326029811878a3317b7e7994324621c0ec633c8e24499d8d5b3"},
+    {file = "testfixtures-6.18.1.tar.gz", hash = "sha256:0a6422737f6d89b45cdef1e2df5576f52ad0f507956002ce1020daa9f44211d6"},
 ]
 "testing.common.database" = [
     {file = "testing.common.database-2.0.3-py2.py3-none-any.whl", hash = "sha256:e3ed492bf480a87f271f74c53b262caf5d85c8bc09989a8f534fa2283ec52492"},
@@ -3826,8 +4932,8 @@ toml = [
     {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
 ]
 tqdm = [
-    {file = "tqdm-4.62.0-py2.py3-none-any.whl", hash = "sha256:706dea48ee05ba16e936ee91cb3791cd2ea6da348a0e50b46863ff4363ff4340"},
-    {file = "tqdm-4.62.0.tar.gz", hash = "sha256:3642d483b558eec80d3c831e23953582c34d7e4540db86d9e5ed9dad238dabc6"},
+    {file = "tqdm-4.62.2-py2.py3-none-any.whl", hash = "sha256:80aead664e6c1672c4ae20dc50e1cdc5e20eeff9b14aa23ecd426375b28be588"},
+    {file = "tqdm-4.62.2.tar.gz", hash = "sha256:a4d6d112e507ef98513ac119ead1159d286deab17dffedd96921412c2d236ff5"},
 ]
 traitlets = [
     {file = "traitlets-5.0.5-py3-none-any.whl", hash = "sha256:69ff3f9d5351f31a7ad80443c2674b7099df13cc41fc5fa6e2f6d3b0330b0426"},
diff --git a/pyproject.toml b/pyproject.toml
index 808cf3dc4e5c723dfd9af34745b0e30766ab664b..91621b7819f127b38e4799ebb2ff6d7120c3c2ef 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "AlekSIS-App-Alsijil"
-version = "2.0rc5"
+version = "2.0rc6"
 packages = [
     { include = "aleksis" }
 ]