diff --git a/.gitignore b/.gitignore
index b7f983def7a1bfd21715a5e2e7d976a28ae586e1..11164f0193906b0be7a568b29a8a04444705ebf7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,3 +53,6 @@ db.sqlite3
 
 # Sphinx
 docs/_build/
+
+# Test
+.tox/
diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py
index 975dd5d2af3f65f1a503b87b5bfdffe4d30b011b..167a73dbc378e01b1189db08508a4d1828fc6ca2 100644
--- a/aleksis/apps/alsijil/forms.py
+++ b/aleksis/apps/alsijil/forms.py
@@ -17,7 +17,7 @@ from .models import ExcuseType, ExtraMark, LessonDocumentation, PersonalNote
 class LessonDocumentationForm(forms.ModelForm):
     class Meta:
         model = LessonDocumentation
-        fields = ["topic", "homework"]
+        fields = ["topic", "homework", "group_note"]
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
index 075f3e3ab07c2dbfead9a64998c893280beb29e0..64943027bfa78a70aa978fbc1252b3062ea6e5d2 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: 2020-04-01 13:20+0200\n"
+"POT-Creation-Date: 2020-07-26 16:10+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"
@@ -16,49 +16,57 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "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"
+"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"
 
-#: forms.py:41
+#: forms.py:25
+msgid "Homework for the next lesson"
+msgstr ""
+
+#: forms.py:50 templates/alsijil/print/full_register.html:181
 msgid "Group"
 msgstr ""
 
-#: forms.py:49 templates/alsijil/print/full_register.html:101
+#: forms.py:56 templates/alsijil/print/full_register.html:152
+#: templates/alsijil/print/full_register.html:183
 msgid "Teacher"
 msgstr ""
 
-#: forms.py:57
-msgid "Room"
+#: forms.py:73
+msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: forms.py:70
+#: forms.py:101
 msgid "Start date"
 msgstr ""
 
-#: forms.py:73
+#: forms.py:102
 msgid "End date"
 msgstr ""
 
-#: forms.py:75
+#: forms.py:103
 msgid "From period"
 msgstr ""
 
-#: forms.py:77 templates/alsijil/lesson.html:58
+#: forms.py:105 templates/alsijil/class_register/lesson.html:150
 msgid "Person"
 msgstr ""
 
-#: forms.py:79 templates/alsijil/lesson.html:59
-#: templates/alsijil/print/full_register.html:223
-#: templates/alsijil/week_view.html:96
+#: forms.py:107 templates/alsijil/class_register/lesson.html:151
+#: templates/alsijil/class_register/week_view.html:93
+#: templates/alsijil/print/full_register.html:75
+#: templates/alsijil/print/full_register.html:305
 msgid "Absent"
 msgstr ""
 
-#: forms.py:80 templates/alsijil/lesson.html:61
+#: forms.py:108 templates/alsijil/class_register/lesson.html:153
+#: templates/alsijil/print/full_register.html:84
+#: templates/alsijil/print/full_register.html:280
 msgid "Excused"
 msgstr ""
 
-#: forms.py:81 templates/alsijil/lesson.html:62
-#: templates/alsijil/print/full_register.html:225
+#: forms.py:109 templates/alsijil/class_register/lesson.html:155
+#: templates/alsijil/class_register/lesson.html:195
+#: templates/alsijil/print/full_register.html:307
 msgid "Remarks"
 msgstr ""
 
@@ -78,306 +86,491 @@ msgstr ""
 msgid "Register absence"
 msgstr ""
 
-#: menus.py:34
+#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8
 msgid "Personal note filters"
 msgstr ""
 
-#: models.py:51 templates/alsijil/print/full_register.html:271
+#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8
+#: templates/alsijil/excuse_type/list.html:9
+msgid "Excuse types"
+msgstr ""
+
+#: models.py:18
+msgid "Short name"
+msgstr ""
+
+#: models.py:20
+msgid "Name"
+msgstr ""
+
+#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154
+#: templates/alsijil/class_register/lesson.html:187
+msgid "Excuse type"
+msgstr ""
+
+#: models.py:70
+msgid "Personal note"
+msgstr ""
+
+#: models.py:71 templates/alsijil/class_register/lesson.html:143
+#: templates/alsijil/class_register/week_view.html:88
+msgid "Personal notes"
+msgstr ""
+
+#: models.py:94 templates/alsijil/print/full_register.html:357
 msgid "Lesson topic"
 msgstr ""
 
-#: models.py:52 templates/alsijil/print/full_register.html:272
+#: models.py:95 templates/alsijil/print/full_register.html:358
 msgid "Homework"
 msgstr ""
 
-#: models.py:68
+#: models.py:96
+msgid "Group note"
+msgstr ""
+
+#: models.py:99 templates/alsijil/class_register/lesson.html:119
+msgid "Lesson documentation"
+msgstr ""
+
+#: models.py:100
+msgid "Lesson documentations"
+msgstr ""
+
+#: models.py:114
 msgid "Identifier"
 msgstr ""
 
-#: models.py:71 templates/alsijil/print/full_register.html:178
+#: models.py:120 templates/alsijil/print/full_register.html:253
 msgid "Description"
 msgstr ""
 
-#: models.py:74
+#: models.py:124
 msgid "Match expression"
 msgstr ""
 
-#: tables.py:14
+#: models.py:128
+msgid "Personal note filter"
+msgstr ""
+
+#: tables.py:17 tables.py:31
 msgid "Edit"
 msgstr ""
 
-#: templates/alsijil/lesson.html:5
+#: tables.py:37
+msgid "Delete"
+msgstr ""
+
+#: templates/alsijil/absences/register.html:5
+#: templates/alsijil/absences/register.html:6
+msgid "Manage absence"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:6
 msgid "Lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:34
-msgid "Lesson documentation"
+#: templates/alsijil/class_register/lesson.html:14
+#: templates/alsijil/class_register/lesson.html:71
+#, python-format
+msgid "%(period)s. period"
 msgstr ""
 
-#: templates/alsijil/lesson.html:43
-msgid "Change history"
+#: templates/alsijil/class_register/lesson.html:38
+msgid "Previous lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91
-msgid "Personal notes"
+#: templates/alsijil/class_register/lesson.html:46
+msgid "Next lesson"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:70
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:77
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:84
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:91
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:98
+msgid "Absent persons:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:105
+msgid "Late persons:"
 msgstr ""
 
-#: templates/alsijil/lesson.html:60
-#: templates/alsijil/print/full_register.html:202
+#: templates/alsijil/class_register/lesson.html:130
+msgid "Change history"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:152
+#: templates/alsijil/print/full_register.html:292
 msgid "Tardiness"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:5
-#: templates/alsijil/manage_personal_note_filter.html:6
-msgid "Manage personal note filter"
+#: templates/alsijil/class_register/lesson.html:173
+msgid "Tardiness (in m)"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:11
-msgid "Delete filter"
+#: templates/alsijil/class_register/week_view.html:6
+msgid "Week view"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:27
+msgid "Select"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:33
+#, python-format
+msgid "CW %(week)s: %(instance)s"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:50
+msgid "Period"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:51
+#: templates/alsijil/print/full_register.html:151
+#: templates/alsijil/print/full_register.html:182
+msgid "Subject"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:52
+msgid "Teachers"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:94
+msgid "unexcused"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:97
+msgid "Summed up tardiness"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:121
+msgid "No lessons available"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:124
+msgid ""
+"\n"
+"            There are no lessons for the selected group or teacher in this week.\n"
+"          "
+msgstr ""
+
+#: templates/alsijil/excuse_type/create.html:6
+#: templates/alsijil/excuse_type/create.html:7
+#: templates/alsijil/excuse_type/list.html:16
+msgid "Create excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/edit.html:6
+#: templates/alsijil/excuse_type/edit.html:7
+msgid "Edit excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/warning.html:5
+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"
+"    "
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:114
+msgid "(e)"
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:118
+msgid "(u)"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:6
+msgid "Data complete"
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:7
-#: templates/alsijil/personal_note_filters.html:8
-msgid "List of all personal note filters"
+#: templates/alsijil/partials/lesson_status_icon.html:12
+msgid "Missing data"
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:12
+#: templates/alsijil/partials/lesson_status_icon.html:14
+msgid "Pending"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:18
+#: templates/alsijil/print/full_register.html:392
+msgid "Lesson cancelled"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:20
+msgid "Substitution"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:7
+msgid "All personal note filters"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:12
 msgid "Add filter"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:22
-#: templates/alsijil/print/full_register.html:54
-msgid "Owners"
+#: templates/alsijil/personal_note_filter/manage.html:7
+#: templates/alsijil/personal_note_filter/manage.html:14
+msgid "Update personal note filter"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/manage.html:9
+#: templates/alsijil/personal_note_filter/manage.html:16
+msgid "Create personal note filter"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/manage.html:29
+msgid "Delete filter"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:6
+msgid "Class register:"
 msgstr ""
 
 #: templates/alsijil/print/full_register.html:26
+#: templates/alsijil/print/full_register.html:59
+msgid "Owners"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:30
 msgid "Printed on"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:34
+#: templates/alsijil/print/full_register.html:38
 msgid ""
 "\n"
-"            This printout is intended for archival purposes. The main copy "
-"of\n"
-"            the class register is stored in the AlekSIS School Information\n"
-"            System.\n"
-"          "
+"        This printout is intended for archival purposes. The main copy of\n"
+"        the class register is stored in the AlekSIS School Information\n"
+"        System.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:41
+#: templates/alsijil/print/full_register.html:45
 msgid ""
 "\n"
-"            Copies of the class register, both digital and as printout, "
-"must\n"
-"            only be kept inside the school and/or on devices authorised by "
-"the\n"
-"            school.\n"
-"          "
+"        Copies of the class register, both digital and as printout, must\n"
+"        only be kept inside the school and/or on devices authorised by the\n"
+"        school.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:48
+#: templates/alsijil/print/full_register.html:52
 msgid ""
 "\n"
-"            The owner of the group and the headteacher confirm the above, "
-"as\n"
-"            well as the correctness of this printout.\n"
-"          "
+"        The owner of the group and the headteacher confirm the above, as\n"
+"        well as the correctness of this printout.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:55
+#: templates/alsijil/print/full_register.html:62
 msgid "Headteacher"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:61
+#: templates/alsijil/print/full_register.html:69
+msgid "Abbreviations"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:71
+msgid "General"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:78
+msgid "Late"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:81
+#: templates/alsijil/print/full_register.html:288
+msgid "Unexcused"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:89
+msgid "Custom excuse types"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:103
 msgid "Persons in group"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:66
+#: templates/alsijil/print/full_register.html:108
 msgid "No."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:67
+#: templates/alsijil/print/full_register.html:109
 msgid "Last name"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:68
+#: templates/alsijil/print/full_register.html:110
 msgid "First name"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:69
+#: templates/alsijil/print/full_register.html:111
 msgid "Sex"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:70
+#: templates/alsijil/print/full_register.html:112
 msgid "Date of birth"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:71
-#: templates/alsijil/print/full_register.html:200
-msgid "Absences"
+#: templates/alsijil/print/full_register.html:113
+msgid "(a)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:72
-#: templates/alsijil/print/full_register.html:201
-msgid "Unexcused"
+#: templates/alsijil/print/full_register.html:119
+msgid "(b)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:73
-#: templates/alsijil/print/full_register.html:224
-msgid "Tard."
-msgstr ""
-
-#: templates/alsijil/print/full_register.html:95
+#: templates/alsijil/print/full_register.html:146
 msgid "Teachers and lessons in group"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:100
-#: templates/alsijil/week_view.html:48
-msgid "Subject"
-msgstr ""
-
-#: templates/alsijil/print/full_register.html:102
+#: templates/alsijil/print/full_register.html:153
+#: templates/alsijil/print/full_register.html:184
 msgid "Lesson start"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:103
+#: templates/alsijil/print/full_register.html:154
+#: templates/alsijil/print/full_register.html:185
 msgid "Lesson end"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:104
+#: templates/alsijil/print/full_register.html:155
+#: templates/alsijil/print/full_register.html:186
 msgid "Per week"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:124
+#: templates/alsijil/print/full_register.html:176
+msgid "Teachers and lessons in child groups"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:209
 msgid "Personal overview"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:126
+#: templates/alsijil/print/full_register.html:211
 msgid "Contact details"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:174
+#: templates/alsijil/print/full_register.html:249
 msgid "Statistics on remarks"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:179
+#: templates/alsijil/print/full_register.html:254
 msgid "Count"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:196
+#: templates/alsijil/print/full_register.html:271
 msgid "Absences and tardiness"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:215
+#: templates/alsijil/print/full_register.html:274
+msgid "Absences"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:279
+msgid "thereof"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:297
 msgid "Relevant personal notes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:219
+#: templates/alsijil/print/full_register.html:301
 msgid "Date"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:220
-#: templates/alsijil/print/full_register.html:268
+#: templates/alsijil/print/full_register.html:302
+#: templates/alsijil/print/full_register.html:355
 msgid "Pe."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:221
-#: templates/alsijil/print/full_register.html:269
+#: templates/alsijil/print/full_register.html:303
+#: templates/alsijil/print/full_register.html:356
 msgid "Subj."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:222
-#: templates/alsijil/print/full_register.html:274
+#: templates/alsijil/print/full_register.html:304
+#: templates/alsijil/print/full_register.html:360
 msgid "Te."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:240
-msgid "Yes"
+#: templates/alsijil/print/full_register.html:306
+msgid "Tard."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:242
-#: templates/alsijil/print/full_register.html:314
-#: templates/alsijil/print/full_register.html:324
-msgid "e"
+#: templates/alsijil/print/full_register.html:322
+msgid "Yes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:262
-msgid "Lesson documentation for calendar week"
+#: templates/alsijil/print/full_register.html:327
+#: templates/alsijil/print/full_register.html:409
+#: templates/alsijil/print/full_register.html:424
+msgid "e"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:270
-msgid "Subs."
+#: templates/alsijil/print/full_register.html:349
+msgid "Lesson documentation for week"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:273
+#: templates/alsijil/print/full_register.html:359
 msgid "Notes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:301
-msgid "Lesson cancelled"
+#: views.py:66
+msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: templates/alsijil/register_absence.html:5
-#: templates/alsijil/register_absence.html:6
-msgid "Manage absence"
+#: views.py:80
+msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: templates/alsijil/week_view.html:6
-msgid "Week view"
+#: views.py:106
+msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:21
-msgid "Select"
+#: views.py:121
+msgid "The personal notes have been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:47
-msgid "Period"
+#: views.py:303
+msgid "There is no current school term."
 msgstr ""
 
-#: templates/alsijil/week_view.html:49
-msgid "Teachers"
-msgstr ""
-
-#: templates/alsijil/week_view.html:97
-msgid "unexcused"
-msgstr ""
-
-#: templates/alsijil/week_view.html:100
-msgid "Summed up tardiness"
-msgstr ""
-
-#: templates/alsijil/week_view.html:122
-msgid "No group selected"
-msgstr ""
-
-#: templates/alsijil/week_view.html:125
-msgid ""
-"\n"
-"            There are no lessons for the selected group, teacher, room or "
-"time.\n"
-"          "
+#: views.py:419
+msgid "The absence has been saved."
 msgstr ""
 
-#: views.py:56
-msgid ""
-"You either selected an invalid lesson or there is currently no lesson in "
-"progress."
+#: views.py:459
+msgid "The filter has been saved"
 msgstr ""
 
-#: views.py:68
-msgid ""
-"You are not allowed to create a lesson documentation for a lesson in the "
-"future."
+#: views.py:474
+msgid "The filter has been deleted."
 msgstr ""
 
-#: views.py:306
-msgid "The absence has been saved."
+#: views.py:497
+msgid "The excuse type has been created."
 msgstr ""
 
-#: views.py:344
-msgid "The filter has been saved"
+#: views.py:508
+msgid "The excuse type has been saved."
 msgstr ""
 
-#: views.py:360
-msgid "The filter has been deleted."
+#: views.py:518
+msgid "The excuse type 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 c91388c7ee373d3a0177a63f06b675a46ad8ed0d..19e781fa15510fb9fd521bd968238f6aa0266521 100644
--- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
@@ -7,58 +7,67 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-01 13:20+0200\n"
-"PO-Revision-Date: 2019-11-24 21:56+0000\n"
-"Last-Translator: Tom Teichler <tom.teichler@teckids.org>\n"
-"Language-Team: German <https://translate.edugit.org/projects/aleksis-sis/"
+"POT-Creation-Date: 2020-07-26 16:10+0200\n"
+"PO-Revision-Date: 2020-07-28 12:51+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"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.8\n"
+"X-Generator: Weblate 4.0.1\n"
 
-#: forms.py:41
+#: forms.py:25
+msgid "Homework for the next lesson"
+msgstr "Hausaufgabe zur nächsten Stunde"
+
+#: forms.py:50 templates/alsijil/print/full_register.html:181
 msgid "Group"
 msgstr "Gruppe"
 
-#: forms.py:49 templates/alsijil/print/full_register.html:101
+#: forms.py:56 templates/alsijil/print/full_register.html:152
+#: templates/alsijil/print/full_register.html:183
 msgid "Teacher"
 msgstr "Lehrkraft"
 
-#: forms.py:57
-msgid "Room"
-msgstr "Raum"
+#: forms.py:73
+msgid "You can't select a group and a teacher both."
+msgstr "Es kann nur entweder eine Gruppe oder eine Lehrkraft ausgewählt werden."
 
-#: forms.py:70
+#: forms.py:101
 msgid "Start date"
 msgstr "Startdatum"
 
-#: forms.py:73
+#: forms.py:102
 msgid "End date"
 msgstr "Enddatum"
 
-#: forms.py:75
+#: forms.py:103
 msgid "From period"
 msgstr "Ab Stunde"
 
-#: forms.py:77 templates/alsijil/lesson.html:58
+#: forms.py:105 templates/alsijil/class_register/lesson.html:150
 msgid "Person"
 msgstr "Person"
 
-#: forms.py:79 templates/alsijil/lesson.html:59
-#: templates/alsijil/print/full_register.html:223
-#: templates/alsijil/week_view.html:96
+#: forms.py:107 templates/alsijil/class_register/lesson.html:151
+#: templates/alsijil/class_register/week_view.html:93
+#: templates/alsijil/print/full_register.html:75
+#: templates/alsijil/print/full_register.html:305
 msgid "Absent"
 msgstr "Abwesend"
 
-#: forms.py:80 templates/alsijil/lesson.html:61
+#: forms.py:108 templates/alsijil/class_register/lesson.html:153
+#: templates/alsijil/print/full_register.html:84
+#: templates/alsijil/print/full_register.html:280
 msgid "Excused"
 msgstr "Entschuldigt"
 
-#: forms.py:81 templates/alsijil/lesson.html:62
-#: templates/alsijil/print/full_register.html:225
+#: forms.py:109 templates/alsijil/class_register/lesson.html:155
+#: templates/alsijil/class_register/lesson.html:195
+#: templates/alsijil/print/full_register.html:307
 msgid "Remarks"
 msgstr "Bemerkungen"
 
@@ -78,341 +87,543 @@ msgstr "Aktuelle Woche"
 msgid "Register absence"
 msgstr "Abwesenheit eintragen"
 
-#: menus.py:34
+#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8
 msgid "Personal note filters"
 msgstr "Filter für persönliche Notizen"
 
-#: models.py:51 templates/alsijil/print/full_register.html:271
+#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8
+#: templates/alsijil/excuse_type/list.html:9
+msgid "Excuse types"
+msgstr "Entschuldigungsarten"
+
+#: models.py:18
+msgid "Short name"
+msgstr "Kurzname"
+
+#: models.py:20
+msgid "Name"
+msgstr "Name"
+
+#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154
+#: templates/alsijil/class_register/lesson.html:187
+msgid "Excuse type"
+msgstr "Entschuldigungsart"
+
+#: models.py:70
+msgid "Personal note"
+msgstr "Persönliche Notiz"
+
+#: models.py:71 templates/alsijil/class_register/lesson.html:143
+#: templates/alsijil/class_register/week_view.html:88
+msgid "Personal notes"
+msgstr "Persönliche Notizen"
+
+#: models.py:94 templates/alsijil/print/full_register.html:357
 msgid "Lesson topic"
 msgstr "Stundenthema"
 
-#: models.py:52 templates/alsijil/print/full_register.html:272
+#: models.py:95 templates/alsijil/print/full_register.html:358
 msgid "Homework"
 msgstr "Hausaufgaben"
 
-#: models.py:68
+#: models.py:96
+msgid "Group note"
+msgstr "Gruppennotiz"
+
+#: models.py:99 templates/alsijil/class_register/lesson.html:119
+msgid "Lesson documentation"
+msgstr "Stunden-Dokumentation"
+
+#: models.py:100
+msgid "Lesson documentations"
+msgstr "Stunden-Dokumentationen"
+
+#: models.py:114
 msgid "Identifier"
 msgstr "Kennung"
 
-#: models.py:71 templates/alsijil/print/full_register.html:178
+#: models.py:120 templates/alsijil/print/full_register.html:253
 msgid "Description"
 msgstr "Beschreibung"
 
-#: models.py:74
+#: models.py:124
 msgid "Match expression"
 msgstr "Suchausdruck"
 
-#: tables.py:14
+#: models.py:128
+msgid "Personal note filter"
+msgstr "Filter für persönliche Notizen"
+
+#: tables.py:17 tables.py:31
 msgid "Edit"
 msgstr "Bearbeiten"
 
-#: templates/alsijil/lesson.html:5
-#, fuzzy
-#| msgid "Lessons"
+#: tables.py:37
+msgid "Delete"
+msgstr "Löschen"
+
+#: templates/alsijil/absences/register.html:5
+#: templates/alsijil/absences/register.html:6
+msgid "Manage absence"
+msgstr "Abwesenheiten verwalten"
+
+#: templates/alsijil/class_register/lesson.html:6
 msgid "Lesson"
-msgstr "Unterrichtsstunden"
+msgstr "Unterrichtsstunde"
 
-#: templates/alsijil/lesson.html:34
-msgid "Lesson documentation"
-msgstr "Stunden-Dokumentation"
+#: templates/alsijil/class_register/lesson.html:14
+#: templates/alsijil/class_register/lesson.html:71
+#, python-format
+msgid "%(period)s. period"
+msgstr "%(period)s. Stunde"
+
+#: templates/alsijil/class_register/lesson.html:38
+msgid "Previous lesson"
+msgstr "Vorherige Unterrichtsstunde"
+
+#: templates/alsijil/class_register/lesson.html:46
+msgid "Next lesson"
+msgstr "Nächste Unterrichtsstunde"
+
+#: templates/alsijil/class_register/lesson.html:70
+msgid "Overview: Previous lesson"
+msgstr "Ãœbersicht: Vorherige Stunde"
+
+#: templates/alsijil/class_register/lesson.html:77
+msgid "Lesson topic of previous lesson:"
+msgstr "Stundenthema der vorherigen Stunde:"
+
+#: templates/alsijil/class_register/lesson.html:84
+msgid "Homework for this lesson:"
+msgstr "Hausaufgaben zu dieser Stunde:"
+
+#: templates/alsijil/class_register/lesson.html:91
+msgid "Group notes for previous lesson:"
+msgstr "Gruppennotizen für die vorherige Stunde:"
+
+#: templates/alsijil/class_register/lesson.html:98
+msgid "Absent persons:"
+msgstr "Abwesende Personen:"
+
+#: templates/alsijil/class_register/lesson.html:105
+msgid "Late persons:"
+msgstr "Verspätete Personen:"
 
-#: templates/alsijil/lesson.html:43
+#: templates/alsijil/class_register/lesson.html:130
 msgid "Change history"
 msgstr "Veränderungen"
 
-#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91
-msgid "Personal notes"
-msgstr "Persönliche Notizen"
-
-#: templates/alsijil/lesson.html:60
-#: templates/alsijil/print/full_register.html:202
+#: templates/alsijil/class_register/lesson.html:152
+#: templates/alsijil/print/full_register.html:292
 msgid "Tardiness"
 msgstr "Verspätung"
 
-#: templates/alsijil/manage_personal_note_filter.html:5
-#: templates/alsijil/manage_personal_note_filter.html:6
-msgid "Manage personal note filter"
-msgstr "Filter für persönliche Notizen verwalten"
+#: templates/alsijil/class_register/lesson.html:173
+msgid "Tardiness (in m)"
+msgstr "Verspätung (in m)"
 
-#: templates/alsijil/manage_personal_note_filter.html:11
-#, fuzzy
-#| msgid "Personal note filters"
-msgid "Delete filter"
-msgstr "Filter für persönliche Notizen"
+#: templates/alsijil/class_register/week_view.html:6
+msgid "Week view"
+msgstr "Wochenansicht"
 
-#: templates/alsijil/personal_note_filters.html:7
-#: templates/alsijil/personal_note_filters.html:8
-msgid "List of all personal note filters"
-msgstr "Liste aller Filter für persönliche Notizen"
+#: templates/alsijil/class_register/week_view.html:27
+msgid "Select"
+msgstr "Auswählen"
 
-#: templates/alsijil/personal_note_filters.html:12
-msgid "Add filter"
+#: templates/alsijil/class_register/week_view.html:33
+#, python-format
+msgid "CW %(week)s: %(instance)s"
+msgstr "KW %(week)s: %(instance)s"
+
+#: templates/alsijil/class_register/week_view.html:50
+msgid "Period"
+msgstr "Stunde"
+
+#: templates/alsijil/class_register/week_view.html:51
+#: templates/alsijil/print/full_register.html:151
+#: templates/alsijil/print/full_register.html:182
+msgid "Subject"
+msgstr "Fach"
+
+#: templates/alsijil/class_register/week_view.html:52
+msgid "Teachers"
+msgstr "Lehrkräfte"
+
+#: templates/alsijil/class_register/week_view.html:94
+msgid "unexcused"
+msgstr "unentschuldigt"
+
+#: templates/alsijil/class_register/week_view.html:97
+msgid "Summed up tardiness"
+msgstr "Summierte Verspätung"
+
+#: templates/alsijil/class_register/week_view.html:121
+msgid "No lessons available"
+msgstr "Keine Stunden verfügbar"
+
+#: templates/alsijil/class_register/week_view.html:124
+msgid ""
+"\n"
+"            There are no lessons for the selected group or teacher in this week.\n"
+"          "
+msgstr ""
+"\n"
+"            Es gibt keine Stunden für die ausgewählte Gruppe oder Lehrkraft "
+"in dieser Woche.\n"
+"          "
+
+#: templates/alsijil/excuse_type/create.html:6
+#: templates/alsijil/excuse_type/create.html:7
+#: templates/alsijil/excuse_type/list.html:16
+msgid "Create excuse type"
+msgstr "Entschuldigungsart erstellen"
+
+#: templates/alsijil/excuse_type/edit.html:6
+#: templates/alsijil/excuse_type/edit.html:7
+msgid "Edit excuse type"
+msgstr "Entschuldigungsart bearbeiten"
+
+#: templates/alsijil/excuse_type/warning.html:5
+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"
+"    "
 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"
+"    "
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:114
+msgid "(e)"
+msgstr "(e)"
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:118
+msgid "(u)"
+msgstr "(u)"
+
+#: templates/alsijil/partials/lesson_status_icon.html:6
+msgid "Data complete"
+msgstr "Daten vollständig"
+
+#: templates/alsijil/partials/lesson_status_icon.html:12
+msgid "Missing data"
+msgstr "Fehlende Daten"
+
+#: templates/alsijil/partials/lesson_status_icon.html:14
+msgid "Pending"
+msgstr "Findet gerade statt"
+
+#: templates/alsijil/partials/lesson_status_icon.html:18
+#: templates/alsijil/print/full_register.html:392
+msgid "Lesson cancelled"
+msgstr "Stunde ist ausgefallen"
+
+#: templates/alsijil/partials/lesson_status_icon.html:20
+msgid "Substitution"
+msgstr "Vertretung"
 
-#: templates/alsijil/print/full_register.html:22
-#: templates/alsijil/print/full_register.html:54
+#: templates/alsijil/personal_note_filter/list.html:7
+msgid "All personal note filters"
+msgstr "Alle Filter für persönliche Notizen"
+
+#: templates/alsijil/personal_note_filter/list.html:12
+msgid "Add filter"
+msgstr "Filter hinzufügen"
+
+#: templates/alsijil/personal_note_filter/manage.html:7
+#: templates/alsijil/personal_note_filter/manage.html:14
+msgid "Update personal note filter"
+msgstr "Filter für persönliche Notizen aktualisieren"
+
+#: templates/alsijil/personal_note_filter/manage.html:9
+#: templates/alsijil/personal_note_filter/manage.html:16
+msgid "Create personal note filter"
+msgstr "Filter für persönliche Notizen erstellen"
+
+#: templates/alsijil/personal_note_filter/manage.html:29
+msgid "Delete filter"
+msgstr "Filter löschen"
+
+#: templates/alsijil/print/full_register.html:6
+msgid "Class register:"
+msgstr "Klassenbuch:"
+
+#: templates/alsijil/print/full_register.html:26
+#: templates/alsijil/print/full_register.html:59
 msgid "Owners"
 msgstr "Leiter/-innen"
 
-#: templates/alsijil/print/full_register.html:26
+#: templates/alsijil/print/full_register.html:30
 msgid "Printed on"
 msgstr "Gedruckt am"
 
-#: templates/alsijil/print/full_register.html:34
+#: templates/alsijil/print/full_register.html:38
 msgid ""
 "\n"
-"            This printout is intended for archival purposes. The main copy "
-"of\n"
-"            the class register is stored in the AlekSIS School Information\n"
-"            System.\n"
-"          "
+"        This printout is intended for archival purposes. The main copy of\n"
+"        the class register is stored in the AlekSIS School Information\n"
+"        System.\n"
+"      "
 msgstr ""
 "\n"
-"            Dieser Ausdruck ist für Archivierungszwecke gedacht. Die "
-"Hauptkopie\n"
-"            des Klassenbusches ist im AlekSIS-Schul-Informations-System "
+"        Dieser Ausdruck ist für Archivierungszwecke gedacht. Die Hauptkopie\n"
+"            des Klassenbuches ist im AlekSIS-Schul-Informations-System "
 "gespeichert.\n"
-"          "
+"      "
 
-#: templates/alsijil/print/full_register.html:41
+#: templates/alsijil/print/full_register.html:45
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "            Copies of the class register, both digital and as printout, must\n"
+#| "            only be kept inside the school and/or on devices authorised by the\n"
+#| "            school.\n"
+#| "          "
 msgid ""
 "\n"
-"            Copies of the class register, both digital and as printout, "
-"must\n"
-"            only be kept inside the school and/or on devices authorised by "
-"the\n"
-"            school.\n"
-"          "
+"        Copies of the class register, both digital and as printout, must\n"
+"        only be kept inside the school and/or on devices authorised by the\n"
+"        school.\n"
+"      "
 msgstr ""
 "\n"
-"            Kopien des Klassenbuches, sowohl digital als auch als Ausdruck, "
+"        Kopien des Klassenbuches, sowohl digital als auch als Ausdruck, "
 "dürfen\n"
 "            ausschließlich in der Schule und/oder auf vonder Schule "
 "autorisierten Geräten\n"
 "            gespeichert werden.\n"
-"          "
+"      "
 
-#: templates/alsijil/print/full_register.html:48
+#: templates/alsijil/print/full_register.html:52
 msgid ""
 "\n"
-"            The owner of the group and the headteacher confirm the above, "
-"as\n"
-"            well as the correctness of this printout.\n"
-"          "
+"        The owner of the group and the headteacher confirm the above, as\n"
+"        well as the correctness of this printout.\n"
+"      "
 msgstr ""
 "\n"
-"            Die Leitung der Gruppe sowie die Schulleitung bestätigen die "
-"obigen Hinweise sowie\n"
+"        Die Leitung der Gruppe sowie die Schulleitung bestätigen die obigen "
+"Hinweise sowie\n"
 "            die Richtigkeit des Ausdrucks.\n"
-"          "
+"      "
 
-#: templates/alsijil/print/full_register.html:55
+#: templates/alsijil/print/full_register.html:62
 msgid "Headteacher"
 msgstr "Schulleitung"
 
-#: templates/alsijil/print/full_register.html:61
+#: templates/alsijil/print/full_register.html:69
+msgid "Abbreviations"
+msgstr "Abkürzungen"
+
+#: templates/alsijil/print/full_register.html:71
+msgid "General"
+msgstr "Allgemein"
+
+#: templates/alsijil/print/full_register.html:78
+msgid "Late"
+msgstr "Verspätet"
+
+#: templates/alsijil/print/full_register.html:81
+#: templates/alsijil/print/full_register.html:288
+msgid "Unexcused"
+msgstr "Unentschuldigt"
+
+#: templates/alsijil/print/full_register.html:89
+msgid "Custom excuse types"
+msgstr "Benutzerdefinierte Entschuldigunsarten"
+
+#: templates/alsijil/print/full_register.html:103
 msgid "Persons in group"
 msgstr "Personen in der Gruppe"
 
-#: templates/alsijil/print/full_register.html:66
+#: templates/alsijil/print/full_register.html:108
 msgid "No."
 msgstr "Nr."
 
-#: templates/alsijil/print/full_register.html:67
+#: templates/alsijil/print/full_register.html:109
 msgid "Last name"
 msgstr "Nachname"
 
-#: templates/alsijil/print/full_register.html:68
+#: templates/alsijil/print/full_register.html:110
 msgid "First name"
 msgstr "Vorname"
 
-#: templates/alsijil/print/full_register.html:69
+#: templates/alsijil/print/full_register.html:111
 msgid "Sex"
 msgstr "Geschlecht"
 
-#: templates/alsijil/print/full_register.html:70
+#: templates/alsijil/print/full_register.html:112
 msgid "Date of birth"
 msgstr "Geburtsdatum"
 
-#: templates/alsijil/print/full_register.html:71
-#: templates/alsijil/print/full_register.html:200
-msgid "Absences"
-msgstr "Abwesenheiten"
-
-#: templates/alsijil/print/full_register.html:72
-#: templates/alsijil/print/full_register.html:201
-msgid "Unexcused"
-msgstr "Unentschuldigt"
+#: templates/alsijil/print/full_register.html:113
+msgid "(a)"
+msgstr "(a)"
 
-#: templates/alsijil/print/full_register.html:73
-#: templates/alsijil/print/full_register.html:224
-msgid "Tard."
-msgstr "Verspät."
+#: templates/alsijil/print/full_register.html:119
+msgid "(b)"
+msgstr "(b)"
 
-#: templates/alsijil/print/full_register.html:95
+#: templates/alsijil/print/full_register.html:146
 msgid "Teachers and lessons in group"
 msgstr "Lehrkräfte und Fächer der Gruppe"
 
-#: templates/alsijil/print/full_register.html:100
-#: templates/alsijil/week_view.html:48
-msgid "Subject"
-msgstr "Fach"
-
-#: templates/alsijil/print/full_register.html:102
+#: templates/alsijil/print/full_register.html:153
+#: templates/alsijil/print/full_register.html:184
 msgid "Lesson start"
 msgstr "Unterrichtsbeginn"
 
-#: templates/alsijil/print/full_register.html:103
+#: templates/alsijil/print/full_register.html:154
+#: templates/alsijil/print/full_register.html:185
 msgid "Lesson end"
 msgstr "Unterrichtsende"
 
-#: templates/alsijil/print/full_register.html:104
+#: templates/alsijil/print/full_register.html:155
+#: templates/alsijil/print/full_register.html:186
 msgid "Per week"
 msgstr "Pro Woche"
 
-#: templates/alsijil/print/full_register.html:124
+#: templates/alsijil/print/full_register.html:176
+msgid "Teachers and lessons in child groups"
+msgstr "Lehrkräfte und Fächer von Untergruppen"
+
+#: templates/alsijil/print/full_register.html:209
 msgid "Personal overview"
 msgstr "Persönliche Übersicht"
 
-#: templates/alsijil/print/full_register.html:126
+#: templates/alsijil/print/full_register.html:211
 msgid "Contact details"
 msgstr "Kontaktdetails"
 
-#: templates/alsijil/print/full_register.html:174
+#: templates/alsijil/print/full_register.html:249
 msgid "Statistics on remarks"
 msgstr "Statistiken zu Bemerkungen"
 
-#: templates/alsijil/print/full_register.html:179
+#: templates/alsijil/print/full_register.html:254
 msgid "Count"
 msgstr "Anzahl"
 
-#: templates/alsijil/print/full_register.html:196
+#: templates/alsijil/print/full_register.html:271
 msgid "Absences and tardiness"
 msgstr "Abwesenheiten und Verspätungen"
 
-#: templates/alsijil/print/full_register.html:215
+#: templates/alsijil/print/full_register.html:274
+msgid "Absences"
+msgstr "Absenzen"
+
+#: templates/alsijil/print/full_register.html:279
+msgid "thereof"
+msgstr "davon"
+
+#: templates/alsijil/print/full_register.html:297
 msgid "Relevant personal notes"
 msgstr "Relevante persönliche Notizen"
 
-#: templates/alsijil/print/full_register.html:219
+#: templates/alsijil/print/full_register.html:301
 msgid "Date"
 msgstr "Datum"
 
-#: templates/alsijil/print/full_register.html:220
-#: templates/alsijil/print/full_register.html:268
+#: templates/alsijil/print/full_register.html:302
+#: templates/alsijil/print/full_register.html:355
 msgid "Pe."
 msgstr "Std."
 
-#: templates/alsijil/print/full_register.html:221
-#: templates/alsijil/print/full_register.html:269
+#: templates/alsijil/print/full_register.html:303
+#: templates/alsijil/print/full_register.html:356
 msgid "Subj."
 msgstr "Fa."
 
-#: templates/alsijil/print/full_register.html:222
-#: templates/alsijil/print/full_register.html:274
+#: templates/alsijil/print/full_register.html:304
+#: templates/alsijil/print/full_register.html:360
 msgid "Te."
 msgstr "Lk."
 
-#: templates/alsijil/print/full_register.html:240
+#: templates/alsijil/print/full_register.html:306
+msgid "Tard."
+msgstr "Verspät."
+
+#: templates/alsijil/print/full_register.html:322
 msgid "Yes"
 msgstr "Ja"
 
-#: templates/alsijil/print/full_register.html:242
-#: templates/alsijil/print/full_register.html:314
-#: templates/alsijil/print/full_register.html:324
+#: templates/alsijil/print/full_register.html:327
+#: templates/alsijil/print/full_register.html:409
+#: templates/alsijil/print/full_register.html:424
 msgid "e"
 msgstr "e"
 
-#: templates/alsijil/print/full_register.html:262
-msgid "Lesson documentation for calendar week"
-msgstr "Unterrichtsdokumentation für Kalenderwoche"
-
-#: templates/alsijil/print/full_register.html:270
-msgid "Subs."
-msgstr "Vertr."
+#: templates/alsijil/print/full_register.html:349
+msgid "Lesson documentation for week"
+msgstr "Unterrichtsdokumentation für Woche"
 
-#: templates/alsijil/print/full_register.html:273
+#: templates/alsijil/print/full_register.html:359
 msgid "Notes"
 msgstr "Notizen"
 
-#: templates/alsijil/print/full_register.html:301
-msgid "Lesson cancelled"
-msgstr "Stunde ist ausgefallen"
+#: views.py:66
+msgid "You either selected an invalid lesson or there is currently no lesson in progress."
+msgstr ""
+"Sie haben eine ungültige Stunde ausgewählt oder es\n"
+"      läuft momentan keine Stunde."
 
-#: templates/alsijil/register_absence.html:5
-#: templates/alsijil/register_absence.html:6
-msgid "Manage absence"
-msgstr "Abwesenheiten verwalten"
+#: views.py:80
+msgid "You are not allowed to create a lesson documentation for a lesson in the future."
+msgstr "Ihnen ist es nicht erlaubt, eine Eintragung für eine Unterrichtsstunde in der Zukunft vorzunehmen."
 
-#: templates/alsijil/week_view.html:6
-#, fuzzy
-#| msgid "Week"
-msgid "Week view"
-msgstr "Woche"
+#: views.py:106
+msgid "The lesson documentation has been saved."
+msgstr "Die Stunden-Dokumentation wurde gespeichert."
 
-#: templates/alsijil/week_view.html:21
-msgid "Select"
-msgstr "Auswählen"
+#: views.py:121
+msgid "The personal notes have been saved."
+msgstr "Die persönlichen Notizen wurden gespeichert."
 
-#: templates/alsijil/week_view.html:47
-msgid "Period"
-msgstr "Stunde"
+#: views.py:303
+msgid "There is no current school term."
+msgstr "Es gibt aktuell kein Schuljahr."
 
-#: templates/alsijil/week_view.html:49
-msgid "Teachers"
-msgstr "Lehrkräfte"
+#: views.py:419
+msgid "The absence has been saved."
+msgstr "Die Abwesenheit wurde gespeichert."
 
-#: templates/alsijil/week_view.html:97
-msgid "unexcused"
-msgstr "unentschuldigt"
+#: views.py:459
+msgid "The filter has been saved"
+msgstr "Der Filter wurde gespeichert"
 
-#: templates/alsijil/week_view.html:100
-msgid "Summed up tardiness"
-msgstr "Summierte Verspätung"
+#: views.py:474
+msgid "The filter has been deleted."
+msgstr "Der Filter wurde gespeichert."
 
-#: templates/alsijil/week_view.html:122
-msgid "No group selected"
-msgstr "Keine Gruppe ausgewählt"
+#: views.py:497
+msgid "The excuse type has been created."
+msgstr "Die Entschuldigungsart wurde erstellt."
 
-#: templates/alsijil/week_view.html:125
-msgid ""
-"\n"
-"            There are no lessons for the selected group, teacher, room or "
-"time.\n"
-"          "
-msgstr ""
-"\n"
-"            Es gibt keine Stunden für die ausgewählte Gruppe, den Lehrer "
-"oder Raum.\n"
-"          "
+#: views.py:508
+msgid "The excuse type has been saved."
+msgstr "Die Entschuldigunsart wurde gespeichert."
 
-#: views.py:56
-msgid ""
-"You either selected an invalid lesson or there is currently no lesson in "
-"progress."
-msgstr ""
-"Sie haben eine ungültige Stunde ausgewählt oder es\n"
-"      läuft momentan keine Stunde."
+#: views.py:518
+msgid "The excuse type has been deleted."
+msgstr "Die Entschuldigungsart wurde gelöscht."
 
-#: views.py:68
-msgid ""
-"You are not allowed to create a lesson documentation for a lesson in the "
-"future."
-msgstr ""
-"Ihnen ist es nicht erlaubt, eine Eintragung für eine Unterrichtsstunde in "
-"der Zukunft vorzunehmen."
+#~ msgid "Room"
+#~ msgstr "Raum"
 
-#: views.py:306
-msgid "The absence has been saved."
-msgstr "Die Abwesenheit wurde gespeichert."
+#~ msgid "List of all personal note filters"
+#~ msgstr "Liste aller Filter für persönliche Notizen"
 
-#: views.py:344
-msgid "The filter has been saved"
-msgstr "Der Filter wurde gespeichert"
+#~ msgid "Subs."
+#~ msgstr "Vertr."
 
-#: views.py:360
-msgid "The filter has been deleted."
-msgstr "Der Filter wurde gespeichert."
+#~ msgid "No group selected"
+#~ msgstr "Keine Gruppe ausgewählt"
 
 #~ msgid "Save"
 #~ msgstr "Speichern"
diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
index c491f8a74e0717b777be7d612eed4eade787bcf7..cf0fdc479b7bc6078c1587307271b709ea49de33 100644
--- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
@@ -3,380 +3,625 @@
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-01 13:20+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"
-"Language: \n"
+"POT-Creation-Date: 2020-07-26 16:10+0200\n"
+"PO-Revision-Date: 2020-07-26 14:08+0000\n"
+"Last-Translator: Marlene Grundey <grundema@katharineum.de>\n"
+"Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/fr/>\n"
+"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"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Generator: Weblate 4.0.1\n"
 
-#: forms.py:41
-msgid "Group"
+#: forms.py:25
+msgid "Homework for the next lesson"
 msgstr ""
 
-#: forms.py:49 templates/alsijil/print/full_register.html:101
+#: forms.py:50 templates/alsijil/print/full_register.html:181
+msgid "Group"
+msgstr "Groupe"
+
+#: forms.py:56 templates/alsijil/print/full_register.html:152
+#: templates/alsijil/print/full_register.html:183
 msgid "Teacher"
-msgstr ""
+msgstr "Profs"
 
-#: forms.py:57
-msgid "Room"
+#: forms.py:73
+msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: forms.py:70
+#: forms.py:101
 msgid "Start date"
-msgstr ""
+msgstr "Date de début"
 
-#: forms.py:73
+#: forms.py:102
 msgid "End date"
-msgstr ""
+msgstr "Date de fin"
 
-#: forms.py:75
+#: forms.py:103
 msgid "From period"
-msgstr ""
+msgstr "De la période"
 
-#: forms.py:77 templates/alsijil/lesson.html:58
+#: forms.py:105 templates/alsijil/class_register/lesson.html:150
 msgid "Person"
-msgstr ""
+msgstr "Personne"
 
-#: forms.py:79 templates/alsijil/lesson.html:59
-#: templates/alsijil/print/full_register.html:223
-#: templates/alsijil/week_view.html:96
+#: forms.py:107 templates/alsijil/class_register/lesson.html:151
+#: templates/alsijil/class_register/week_view.html:93
+#: templates/alsijil/print/full_register.html:75
+#: templates/alsijil/print/full_register.html:305
 msgid "Absent"
-msgstr ""
+msgstr "Absent(e)"
 
-#: forms.py:80 templates/alsijil/lesson.html:61
+#: forms.py:108 templates/alsijil/class_register/lesson.html:153
+#: templates/alsijil/print/full_register.html:84
+#: templates/alsijil/print/full_register.html:280
 msgid "Excused"
-msgstr ""
+msgstr "Excusé"
 
-#: forms.py:81 templates/alsijil/lesson.html:62
-#: templates/alsijil/print/full_register.html:225
+#: forms.py:109 templates/alsijil/class_register/lesson.html:155
+#: templates/alsijil/class_register/lesson.html:195
+#: templates/alsijil/print/full_register.html:307
 msgid "Remarks"
-msgstr ""
+msgstr "Remarque"
 
 #: menus.py:6 templates/alsijil/print/full_register.html:16
 msgid "Class register"
-msgstr ""
+msgstr "Registre de la classe"
 
 #: menus.py:16
 msgid "Current lesson"
-msgstr ""
+msgstr "Lecon actuelle"
 
 #: menus.py:22
 msgid "Current week"
-msgstr ""
+msgstr "Semaine actuelle"
 
 #: menus.py:28
 msgid "Register absence"
-msgstr ""
+msgstr "Registre de Absence"
 
-#: menus.py:34
+#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8
 msgid "Personal note filters"
+msgstr "Filtres de notes personnelles"
+
+#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8
+#: templates/alsijil/excuse_type/list.html:9
+#, fuzzy
+#| msgid "Excused"
+msgid "Excuse types"
+msgstr "Excusé"
+
+#: models.py:18
+#, fuzzy
+#| msgid "First name"
+msgid "Short name"
+msgstr "Prénom"
+
+#: models.py:20
+msgid "Name"
 msgstr ""
 
-#: models.py:51 templates/alsijil/print/full_register.html:271
+#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154
+#: templates/alsijil/class_register/lesson.html:187
+#, fuzzy
+#| msgid "Excused"
+msgid "Excuse type"
+msgstr "Excusé"
+
+#: models.py:70
+#, fuzzy
+#| msgid "Personal notes"
+msgid "Personal note"
+msgstr "Notes personnelles"
+
+#: models.py:71 templates/alsijil/class_register/lesson.html:143
+#: templates/alsijil/class_register/week_view.html:88
+msgid "Personal notes"
+msgstr "Notes personnelles"
+
+#: models.py:94 templates/alsijil/print/full_register.html:357
 msgid "Lesson topic"
-msgstr ""
+msgstr "Sujet de cours"
 
-#: models.py:52 templates/alsijil/print/full_register.html:272
+#: models.py:95 templates/alsijil/print/full_register.html:358
 msgid "Homework"
-msgstr ""
+msgstr "Devoirs"
+
+#: models.py:96
+#, fuzzy
+#| msgid "Group"
+msgid "Group note"
+msgstr "Groupe"
 
-#: models.py:68
+#: models.py:99 templates/alsijil/class_register/lesson.html:119
+msgid "Lesson documentation"
+msgstr "Documentation de cours"
+
+#: models.py:100
+#, fuzzy
+#| msgid "Lesson documentation"
+msgid "Lesson documentations"
+msgstr "Documentation de cours"
+
+#: models.py:114
 msgid "Identifier"
-msgstr ""
+msgstr "Identificateur"
 
-#: models.py:71 templates/alsijil/print/full_register.html:178
+#: models.py:120 templates/alsijil/print/full_register.html:253
 msgid "Description"
-msgstr ""
+msgstr "Description"
 
-#: models.py:74
+#: models.py:124
 msgid "Match expression"
 msgstr ""
 
-#: tables.py:14
+#: models.py:128
+#, fuzzy
+#| msgid "Personal note filters"
+msgid "Personal note filter"
+msgstr "Filtres de notes personnelles"
+
+#: tables.py:17 tables.py:31
 msgid "Edit"
 msgstr ""
 
-#: templates/alsijil/lesson.html:5
+#: tables.py:37
+msgid "Delete"
+msgstr ""
+
+#: templates/alsijil/absences/register.html:5
+#: templates/alsijil/absences/register.html:6
+msgid "Manage absence"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:6
 msgid "Lesson"
+msgstr "Cours"
+
+#: templates/alsijil/class_register/lesson.html:14
+#: templates/alsijil/class_register/lesson.html:71
+#, fuzzy, python-format
+#| msgid "From period"
+msgid "%(period)s. period"
+msgstr "De la période"
+
+#: templates/alsijil/class_register/lesson.html:38
+#, fuzzy
+#| msgid "Current lesson"
+msgid "Previous lesson"
+msgstr "Lecon actuelle"
+
+#: templates/alsijil/class_register/lesson.html:46
+#, fuzzy
+#| msgid "Current lesson"
+msgid "Next lesson"
+msgstr "Lecon actuelle"
+
+#: templates/alsijil/class_register/lesson.html:70
+msgid "Overview: Previous lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:34
-msgid "Lesson documentation"
+#: templates/alsijil/class_register/lesson.html:77
+msgid "Lesson topic of previous lesson:"
 msgstr ""
 
-#: templates/alsijil/lesson.html:43
-msgid "Change history"
+#: templates/alsijil/class_register/lesson.html:84
+msgid "Homework for this lesson:"
 msgstr ""
 
-#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91
-msgid "Personal notes"
+#: templates/alsijil/class_register/lesson.html:91
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:98
+#, fuzzy
+#| msgid "Absences"
+msgid "Absent persons:"
+msgstr "Absences"
+
+#: templates/alsijil/class_register/lesson.html:105
+msgid "Late persons:"
 msgstr ""
 
-#: templates/alsijil/lesson.html:60
-#: templates/alsijil/print/full_register.html:202
+#: templates/alsijil/class_register/lesson.html:130
+msgid "Change history"
+msgstr "Changement d' histoire"
+
+#: templates/alsijil/class_register/lesson.html:152
+#: templates/alsijil/print/full_register.html:292
 msgid "Tardiness"
+msgstr "Retard"
+
+#: templates/alsijil/class_register/lesson.html:173
+#, fuzzy
+#| msgid "Tardiness"
+msgid "Tardiness (in m)"
+msgstr "Retard"
+
+#: templates/alsijil/class_register/week_view.html:6
+msgid "Week view"
+msgstr "Vue de semaine"
+
+#: templates/alsijil/class_register/week_view.html:27
+msgid "Select"
+msgstr "Sélectionner"
+
+#: templates/alsijil/class_register/week_view.html:33
+#, python-format
+msgid "CW %(week)s: %(instance)s"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:5
-#: templates/alsijil/manage_personal_note_filter.html:6
-msgid "Manage personal note filter"
+#: templates/alsijil/class_register/week_view.html:50
+msgid "Period"
+msgstr "Période"
+
+#: templates/alsijil/class_register/week_view.html:51
+#: templates/alsijil/print/full_register.html:151
+#: templates/alsijil/print/full_register.html:182
+msgid "Subject"
+msgstr "Sujet"
+
+#: templates/alsijil/class_register/week_view.html:52
+msgid "Teachers"
+msgstr "Profs"
+
+#: templates/alsijil/class_register/week_view.html:94
+msgid "unexcused"
+msgstr "Injustifié(e)"
+
+#: templates/alsijil/class_register/week_view.html:97
+msgid "Summed up tardiness"
+msgstr "Résumé des retards"
+
+#: templates/alsijil/class_register/week_view.html:121
+msgid "No lessons available"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:11
-msgid "Delete filter"
+#: templates/alsijil/class_register/week_view.html:124
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "            There are no lessons for the selected group, teacher, room or time.\n"
+#| "          "
+msgid ""
+"\n"
+"            There are no lessons for the selected group or teacher in this week.\n"
+"          "
 msgstr ""
+"\n"
+"            Il n' y a pas des cours pour le groupe sélectionné, les profs, le salle ou le temps.\n"
+"          "
 
-#: templates/alsijil/personal_note_filters.html:7
-#: templates/alsijil/personal_note_filters.html:8
-msgid "List of all personal note filters"
+#: templates/alsijil/excuse_type/create.html:6
+#: templates/alsijil/excuse_type/create.html:7
+#: templates/alsijil/excuse_type/list.html:16
+msgid "Create excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/edit.html:6
+#: templates/alsijil/excuse_type/edit.html:7
+msgid "Edit excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/warning.html:5
+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"
+"    "
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:12
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:114
+msgid "(e)"
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:118
+msgid "(u)"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:6
+msgid "Data complete"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:12
+msgid "Missing data"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:14
+msgid "Pending"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:18
+#: templates/alsijil/print/full_register.html:392
+msgid "Lesson cancelled"
+msgstr "Cours annulés"
+
+#: templates/alsijil/partials/lesson_status_icon.html:20
+msgid "Substitution"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:7
+#, fuzzy
+#| msgid "Personal note filters"
+msgid "All personal note filters"
+msgstr "Filtres de notes personnelles"
+
+#: templates/alsijil/personal_note_filter/list.html:12
 msgid "Add filter"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:22
-#: templates/alsijil/print/full_register.html:54
-msgid "Owners"
+#: templates/alsijil/personal_note_filter/manage.html:7
+#: templates/alsijil/personal_note_filter/manage.html:14
+#, fuzzy
+#| msgid "Personal note filters"
+msgid "Update personal note filter"
+msgstr "Filtres de notes personnelles"
+
+#: templates/alsijil/personal_note_filter/manage.html:9
+#: templates/alsijil/personal_note_filter/manage.html:16
+#, fuzzy
+#| msgid "Personal note filters"
+msgid "Create personal note filter"
+msgstr "Filtres de notes personnelles"
+
+#: templates/alsijil/personal_note_filter/manage.html:29
+msgid "Delete filter"
 msgstr ""
 
+#: templates/alsijil/print/full_register.html:6
+#, fuzzy
+#| msgid "Class register"
+msgid "Class register:"
+msgstr "Registre de la classe"
+
 #: templates/alsijil/print/full_register.html:26
+#: templates/alsijil/print/full_register.html:59
+msgid "Owners"
+msgstr "Propriétaires"
+
+#: templates/alsijil/print/full_register.html:30
 msgid "Printed on"
-msgstr ""
+msgstr "Imprimé sur"
 
-#: templates/alsijil/print/full_register.html:34
+#: templates/alsijil/print/full_register.html:38
 msgid ""
 "\n"
-"            This printout is intended for archival purposes. The main copy "
-"of\n"
-"            the class register is stored in the AlekSIS School Information\n"
-"            System.\n"
-"          "
+"        This printout is intended for archival purposes. The main copy of\n"
+"        the class register is stored in the AlekSIS School Information\n"
+"        System.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:41
+#: templates/alsijil/print/full_register.html:45
 msgid ""
 "\n"
-"            Copies of the class register, both digital and as printout, "
-"must\n"
-"            only be kept inside the school and/or on devices authorised by "
-"the\n"
-"            school.\n"
-"          "
+"        Copies of the class register, both digital and as printout, must\n"
+"        only be kept inside the school and/or on devices authorised by the\n"
+"        school.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:48
+#: templates/alsijil/print/full_register.html:52
 msgid ""
 "\n"
-"            The owner of the group and the headteacher confirm the above, "
-"as\n"
-"            well as the correctness of this printout.\n"
-"          "
+"        The owner of the group and the headteacher confirm the above, as\n"
+"        well as the correctness of this printout.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:55
+#: templates/alsijil/print/full_register.html:62
 msgid "Headteacher"
+msgstr "Prof principale"
+
+#: templates/alsijil/print/full_register.html:69
+msgid "Abbreviations"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:61
-msgid "Persons in group"
+#: templates/alsijil/print/full_register.html:71
+msgid "General"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:66
-msgid "No."
+#: templates/alsijil/print/full_register.html:78
+msgid "Late"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:67
-msgid "Last name"
+#: templates/alsijil/print/full_register.html:81
+#: templates/alsijil/print/full_register.html:288
+msgid "Unexcused"
+msgstr "injustifié(e)"
+
+#: templates/alsijil/print/full_register.html:89
+msgid "Custom excuse types"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:68
+#: templates/alsijil/print/full_register.html:103
+msgid "Persons in group"
+msgstr "Personnes en groupe"
+
+#: templates/alsijil/print/full_register.html:108
+msgid "No."
+msgstr "Non."
+
+#: templates/alsijil/print/full_register.html:109
+msgid "Last name"
+msgstr "Nom de famille"
+
+#: templates/alsijil/print/full_register.html:110
 msgid "First name"
-msgstr ""
+msgstr "Prénom"
 
-#: templates/alsijil/print/full_register.html:69
+#: templates/alsijil/print/full_register.html:111
 msgid "Sex"
-msgstr ""
+msgstr "Sexe"
 
-#: templates/alsijil/print/full_register.html:70
+#: templates/alsijil/print/full_register.html:112
 msgid "Date of birth"
-msgstr ""
+msgstr "Date d'anniversaire"
 
-#: templates/alsijil/print/full_register.html:71
-#: templates/alsijil/print/full_register.html:200
-msgid "Absences"
+#: templates/alsijil/print/full_register.html:113
+msgid "(a)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:72
-#: templates/alsijil/print/full_register.html:201
-msgid "Unexcused"
-msgstr ""
-
-#: templates/alsijil/print/full_register.html:73
-#: templates/alsijil/print/full_register.html:224
-msgid "Tard."
+#: templates/alsijil/print/full_register.html:119
+msgid "(b)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:95
+#: templates/alsijil/print/full_register.html:146
 msgid "Teachers and lessons in group"
-msgstr ""
-
-#: templates/alsijil/print/full_register.html:100
-#: templates/alsijil/week_view.html:48
-msgid "Subject"
-msgstr ""
+msgstr "Profs et cours en groupe"
 
-#: templates/alsijil/print/full_register.html:102
+#: templates/alsijil/print/full_register.html:153
+#: templates/alsijil/print/full_register.html:184
 msgid "Lesson start"
-msgstr ""
+msgstr "Début de cours"
 
-#: templates/alsijil/print/full_register.html:103
+#: templates/alsijil/print/full_register.html:154
+#: templates/alsijil/print/full_register.html:185
 msgid "Lesson end"
-msgstr ""
+msgstr "Fin de cours"
 
-#: templates/alsijil/print/full_register.html:104
+#: templates/alsijil/print/full_register.html:155
+#: templates/alsijil/print/full_register.html:186
 msgid "Per week"
-msgstr ""
+msgstr "Par semaine"
 
-#: templates/alsijil/print/full_register.html:124
+#: templates/alsijil/print/full_register.html:176
+#, fuzzy
+#| msgid "Teachers and lessons in group"
+msgid "Teachers and lessons in child groups"
+msgstr "Profs et cours en groupe"
+
+#: templates/alsijil/print/full_register.html:209
 msgid "Personal overview"
-msgstr ""
+msgstr "Vue d'ensemble personnelle"
 
-#: templates/alsijil/print/full_register.html:126
+#: templates/alsijil/print/full_register.html:211
 msgid "Contact details"
-msgstr ""
+msgstr "Détails de contact"
 
-#: templates/alsijil/print/full_register.html:174
+#: templates/alsijil/print/full_register.html:249
 msgid "Statistics on remarks"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:179
+#: templates/alsijil/print/full_register.html:254
 msgid "Count"
-msgstr ""
+msgstr "Compter"
 
-#: templates/alsijil/print/full_register.html:196
+#: templates/alsijil/print/full_register.html:271
 msgid "Absences and tardiness"
+msgstr "Absences et retards"
+
+#: templates/alsijil/print/full_register.html:274
+msgid "Absences"
+msgstr "Absences"
+
+#: templates/alsijil/print/full_register.html:279
+msgid "thereof"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:215
+#: templates/alsijil/print/full_register.html:297
 msgid "Relevant personal notes"
-msgstr ""
+msgstr "Notes personnelles importantes"
 
-#: templates/alsijil/print/full_register.html:219
+#: templates/alsijil/print/full_register.html:301
 msgid "Date"
-msgstr ""
+msgstr "Date"
 
-#: templates/alsijil/print/full_register.html:220
-#: templates/alsijil/print/full_register.html:268
+#: templates/alsijil/print/full_register.html:302
+#: templates/alsijil/print/full_register.html:355
 msgid "Pe."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:221
-#: templates/alsijil/print/full_register.html:269
+#: templates/alsijil/print/full_register.html:303
+#: templates/alsijil/print/full_register.html:356
 msgid "Subj."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:222
-#: templates/alsijil/print/full_register.html:274
+#: templates/alsijil/print/full_register.html:304
+#: templates/alsijil/print/full_register.html:360
 msgid "Te."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:240
-msgid "Yes"
+#: templates/alsijil/print/full_register.html:306
+msgid "Tard."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:242
-#: templates/alsijil/print/full_register.html:314
-#: templates/alsijil/print/full_register.html:324
-msgid "e"
-msgstr ""
+#: templates/alsijil/print/full_register.html:322
+msgid "Yes"
+msgstr "Oui"
 
-#: templates/alsijil/print/full_register.html:262
-msgid "Lesson documentation for calendar week"
-msgstr ""
+#: templates/alsijil/print/full_register.html:327
+#: templates/alsijil/print/full_register.html:409
+#: templates/alsijil/print/full_register.html:424
+msgid "e"
+msgstr "e"
 
-#: templates/alsijil/print/full_register.html:270
-msgid "Subs."
-msgstr ""
+#: templates/alsijil/print/full_register.html:349
+#, fuzzy
+#| msgid "Lesson documentation for calendar week"
+msgid "Lesson documentation for week"
+msgstr "Documentation de cours pour la semaine calendrier"
 
-#: templates/alsijil/print/full_register.html:273
+#: templates/alsijil/print/full_register.html:359
 msgid "Notes"
-msgstr ""
+msgstr "Notes"
 
-#: templates/alsijil/print/full_register.html:301
-msgid "Lesson cancelled"
+#: views.py:66
+msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: templates/alsijil/register_absence.html:5
-#: templates/alsijil/register_absence.html:6
-msgid "Manage absence"
+#: views.py:80
+msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: templates/alsijil/week_view.html:6
-msgid "Week view"
-msgstr ""
-
-#: templates/alsijil/week_view.html:21
-msgid "Select"
-msgstr ""
-
-#: templates/alsijil/week_view.html:47
-msgid "Period"
-msgstr ""
+#: views.py:106
+#, fuzzy
+#| msgid "Lesson documentation for calendar week"
+msgid "The lesson documentation has been saved."
+msgstr "Documentation de cours pour la semaine calendrier"
 
-#: templates/alsijil/week_view.html:49
-msgid "Teachers"
+#: views.py:121
+msgid "The personal notes have been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:97
-msgid "unexcused"
+#: views.py:303
+msgid "There is no current school term."
 msgstr ""
 
-#: templates/alsijil/week_view.html:100
-msgid "Summed up tardiness"
+#: views.py:419
+msgid "The absence has been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:122
-msgid "No group selected"
+#: views.py:459
+msgid "The filter has been saved"
 msgstr ""
 
-#: templates/alsijil/week_view.html:125
-msgid ""
-"\n"
-"            There are no lessons for the selected group, teacher, room or "
-"time.\n"
-"          "
+#: views.py:474
+msgid "The filter has been deleted."
 msgstr ""
 
-#: views.py:56
-msgid ""
-"You either selected an invalid lesson or there is currently no lesson in "
-"progress."
+#: views.py:497
+msgid "The excuse type has been created."
 msgstr ""
 
-#: views.py:68
-msgid ""
-"You are not allowed to create a lesson documentation for a lesson in the "
-"future."
+#: views.py:508
+msgid "The excuse type has been saved."
 msgstr ""
 
-#: views.py:306
-msgid "The absence has been saved."
+#: views.py:518
+msgid "The excuse type has been deleted."
 msgstr ""
 
-#: views.py:344
-msgid "The filter has been saved"
-msgstr ""
+#~ msgid "Room"
+#~ msgstr "Salle"
 
-#: views.py:360
-msgid "The filter has been deleted."
-msgstr ""
+#~ msgid "List of all personal note filters"
+#~ msgstr "Liste de filtres de notes personnelles"
diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
index 1b9dbace2c6602f12f716c93ba7b9853400790d4..02b275330dfb4e5882c0b211538134e445f05fa6 100644
--- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
@@ -3,60 +3,70 @@
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-01 13:20+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"
-"Language: \n"
+"POT-Creation-Date: 2020-07-26 16:10+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"
+"Language: la\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"
 
-#: forms.py:41
-msgid "Group"
+#: forms.py:25
+msgid "Homework for the next lesson"
 msgstr ""
 
-#: forms.py:49 templates/alsijil/print/full_register.html:101
+#: forms.py:50 templates/alsijil/print/full_register.html:181
+msgid "Group"
+msgstr "Grex"
+
+#: forms.py:56 templates/alsijil/print/full_register.html:152
+#: templates/alsijil/print/full_register.html:183
 msgid "Teacher"
 msgstr ""
 
-#: forms.py:57
-msgid "Room"
+#: forms.py:73
+msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: forms.py:70
+#: forms.py:101
 msgid "Start date"
 msgstr ""
 
-#: forms.py:73
+#: forms.py:102
 msgid "End date"
 msgstr ""
 
-#: forms.py:75
+#: forms.py:103
 msgid "From period"
 msgstr ""
 
-#: forms.py:77 templates/alsijil/lesson.html:58
+#: forms.py:105 templates/alsijil/class_register/lesson.html:150
 msgid "Person"
-msgstr ""
+msgstr "Persona"
 
-#: forms.py:79 templates/alsijil/lesson.html:59
-#: templates/alsijil/print/full_register.html:223
-#: templates/alsijil/week_view.html:96
+#: forms.py:107 templates/alsijil/class_register/lesson.html:151
+#: templates/alsijil/class_register/week_view.html:93
+#: templates/alsijil/print/full_register.html:75
+#: templates/alsijil/print/full_register.html:305
 msgid "Absent"
 msgstr ""
 
-#: forms.py:80 templates/alsijil/lesson.html:61
+#: forms.py:108 templates/alsijil/class_register/lesson.html:153
+#: templates/alsijil/print/full_register.html:84
+#: templates/alsijil/print/full_register.html:280
 msgid "Excused"
 msgstr ""
 
-#: forms.py:81 templates/alsijil/lesson.html:62
-#: templates/alsijil/print/full_register.html:225
+#: forms.py:109 templates/alsijil/class_register/lesson.html:155
+#: templates/alsijil/class_register/lesson.html:195
+#: templates/alsijil/print/full_register.html:307
 msgid "Remarks"
 msgstr ""
 
@@ -76,306 +86,497 @@ msgstr ""
 msgid "Register absence"
 msgstr ""
 
-#: menus.py:34
+#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8
 msgid "Personal note filters"
 msgstr ""
 
-#: models.py:51 templates/alsijil/print/full_register.html:271
+#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8
+#: templates/alsijil/excuse_type/list.html:9
+msgid "Excuse types"
+msgstr ""
+
+#: models.py:18
+#, fuzzy
+#| msgid "First name"
+msgid "Short name"
+msgstr "Primus nomen"
+
+#: models.py:20
+msgid "Name"
+msgstr ""
+
+#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154
+#: templates/alsijil/class_register/lesson.html:187
+msgid "Excuse type"
+msgstr ""
+
+#: models.py:70
+#, fuzzy
+#| msgid "Person"
+msgid "Personal note"
+msgstr "Persona"
+
+#: models.py:71 templates/alsijil/class_register/lesson.html:143
+#: templates/alsijil/class_register/week_view.html:88
+msgid "Personal notes"
+msgstr ""
+
+#: models.py:94 templates/alsijil/print/full_register.html:357
 msgid "Lesson topic"
 msgstr ""
 
-#: models.py:52 templates/alsijil/print/full_register.html:272
+#: models.py:95 templates/alsijil/print/full_register.html:358
 msgid "Homework"
 msgstr ""
 
-#: models.py:68
+#: models.py:96
+#, fuzzy
+#| msgid "Group"
+msgid "Group note"
+msgstr "Grex"
+
+#: models.py:99 templates/alsijil/class_register/lesson.html:119
+msgid "Lesson documentation"
+msgstr ""
+
+#: models.py:100
+msgid "Lesson documentations"
+msgstr ""
+
+#: models.py:114
 msgid "Identifier"
 msgstr ""
 
-#: models.py:71 templates/alsijil/print/full_register.html:178
+#: models.py:120 templates/alsijil/print/full_register.html:253
 msgid "Description"
-msgstr ""
+msgstr "Descriptio"
 
-#: models.py:74
+#: models.py:124
 msgid "Match expression"
 msgstr ""
 
-#: tables.py:14
+#: models.py:128
+msgid "Personal note filter"
+msgstr ""
+
+#: tables.py:17 tables.py:31
 msgid "Edit"
 msgstr ""
 
-#: templates/alsijil/lesson.html:5
+#: tables.py:37
+msgid "Delete"
+msgstr ""
+
+#: templates/alsijil/absences/register.html:5
+#: templates/alsijil/absences/register.html:6
+msgid "Manage absence"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:6
 msgid "Lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:34
-msgid "Lesson documentation"
+#: templates/alsijil/class_register/lesson.html:14
+#: templates/alsijil/class_register/lesson.html:71
+#, python-format
+msgid "%(period)s. period"
 msgstr ""
 
-#: templates/alsijil/lesson.html:43
-msgid "Change history"
+#: templates/alsijil/class_register/lesson.html:38
+msgid "Previous lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91
-msgid "Personal notes"
+#: templates/alsijil/class_register/lesson.html:46
+msgid "Next lesson"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:70
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:77
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:84
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:91
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:98
+msgid "Absent persons:"
 msgstr ""
 
-#: templates/alsijil/lesson.html:60
-#: templates/alsijil/print/full_register.html:202
+#: templates/alsijil/class_register/lesson.html:105
+msgid "Late persons:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:130
+msgid "Change history"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:152
+#: templates/alsijil/print/full_register.html:292
 msgid "Tardiness"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:5
-#: templates/alsijil/manage_personal_note_filter.html:6
-msgid "Manage personal note filter"
+#: templates/alsijil/class_register/lesson.html:173
+msgid "Tardiness (in m)"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:11
-msgid "Delete filter"
+#: templates/alsijil/class_register/week_view.html:6
+msgid "Week view"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:27
+msgid "Select"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:33
+#, python-format
+msgid "CW %(week)s: %(instance)s"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:50
+msgid "Period"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:51
+#: templates/alsijil/print/full_register.html:151
+#: templates/alsijil/print/full_register.html:182
+msgid "Subject"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:52
+msgid "Teachers"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:94
+msgid "unexcused"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:97
+msgid "Summed up tardiness"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:121
+msgid "No lessons available"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:124
+msgid ""
+"\n"
+"            There are no lessons for the selected group or teacher in this week.\n"
+"          "
+msgstr ""
+
+#: templates/alsijil/excuse_type/create.html:6
+#: templates/alsijil/excuse_type/create.html:7
+#: templates/alsijil/excuse_type/list.html:16
+msgid "Create excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/edit.html:6
+#: templates/alsijil/excuse_type/edit.html:7
+msgid "Edit excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/warning.html:5
+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"
+"    "
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:114
+msgid "(e)"
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:118
+msgid "(u)"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:6
+msgid "Data complete"
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:7
-#: templates/alsijil/personal_note_filters.html:8
-msgid "List of all personal note filters"
+#: templates/alsijil/partials/lesson_status_icon.html:12
+msgid "Missing data"
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:12
+#: templates/alsijil/partials/lesson_status_icon.html:14
+msgid "Pending"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:18
+#: templates/alsijil/print/full_register.html:392
+msgid "Lesson cancelled"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:20
+msgid "Substitution"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:7
+msgid "All personal note filters"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:12
 msgid "Add filter"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:22
-#: templates/alsijil/print/full_register.html:54
-msgid "Owners"
+#: templates/alsijil/personal_note_filter/manage.html:7
+#: templates/alsijil/personal_note_filter/manage.html:14
+msgid "Update personal note filter"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/manage.html:9
+#: templates/alsijil/personal_note_filter/manage.html:16
+msgid "Create personal note filter"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/manage.html:29
+msgid "Delete filter"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:6
+msgid "Class register:"
 msgstr ""
 
 #: templates/alsijil/print/full_register.html:26
+#: templates/alsijil/print/full_register.html:59
+msgid "Owners"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:30
 msgid "Printed on"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:34
+#: templates/alsijil/print/full_register.html:38
 msgid ""
 "\n"
-"            This printout is intended for archival purposes. The main copy "
-"of\n"
-"            the class register is stored in the AlekSIS School Information\n"
-"            System.\n"
-"          "
+"        This printout is intended for archival purposes. The main copy of\n"
+"        the class register is stored in the AlekSIS School Information\n"
+"        System.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:41
+#: templates/alsijil/print/full_register.html:45
 msgid ""
 "\n"
-"            Copies of the class register, both digital and as printout, "
-"must\n"
-"            only be kept inside the school and/or on devices authorised by "
-"the\n"
-"            school.\n"
-"          "
+"        Copies of the class register, both digital and as printout, must\n"
+"        only be kept inside the school and/or on devices authorised by the\n"
+"        school.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:48
+#: templates/alsijil/print/full_register.html:52
 msgid ""
 "\n"
-"            The owner of the group and the headteacher confirm the above, "
-"as\n"
-"            well as the correctness of this printout.\n"
-"          "
+"        The owner of the group and the headteacher confirm the above, as\n"
+"        well as the correctness of this printout.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:55
+#: templates/alsijil/print/full_register.html:62
 msgid "Headteacher"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:61
-msgid "Persons in group"
+#: templates/alsijil/print/full_register.html:69
+msgid "Abbreviations"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:66
-msgid "No."
+#: templates/alsijil/print/full_register.html:71
+msgid "General"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:67
-msgid "Last name"
+#: templates/alsijil/print/full_register.html:78
+msgid "Late"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:68
-msgid "First name"
+#: templates/alsijil/print/full_register.html:81
+#: templates/alsijil/print/full_register.html:288
+msgid "Unexcused"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:69
-msgid "Sex"
+#: templates/alsijil/print/full_register.html:89
+msgid "Custom excuse types"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:70
-msgid "Date of birth"
+#: templates/alsijil/print/full_register.html:103
+msgid "Persons in group"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:71
-#: templates/alsijil/print/full_register.html:200
-msgid "Absences"
+#: templates/alsijil/print/full_register.html:108
+msgid "No."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:72
-#: templates/alsijil/print/full_register.html:201
-msgid "Unexcused"
-msgstr ""
+#: templates/alsijil/print/full_register.html:109
+msgid "Last name"
+msgstr "Secondus nomen"
 
-#: templates/alsijil/print/full_register.html:73
-#: templates/alsijil/print/full_register.html:224
-msgid "Tard."
+#: templates/alsijil/print/full_register.html:110
+msgid "First name"
+msgstr "Primus nomen"
+
+#: templates/alsijil/print/full_register.html:111
+msgid "Sex"
+msgstr "Genus"
+
+#: templates/alsijil/print/full_register.html:112
+msgid "Date of birth"
+msgstr "Dies natalis"
+
+#: templates/alsijil/print/full_register.html:113
+msgid "(a)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:95
-msgid "Teachers and lessons in group"
+#: templates/alsijil/print/full_register.html:119
+msgid "(b)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:100
-#: templates/alsijil/week_view.html:48
-msgid "Subject"
+#: templates/alsijil/print/full_register.html:146
+msgid "Teachers and lessons in group"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:102
+#: templates/alsijil/print/full_register.html:153
+#: templates/alsijil/print/full_register.html:184
 msgid "Lesson start"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:103
+#: templates/alsijil/print/full_register.html:154
+#: templates/alsijil/print/full_register.html:185
 msgid "Lesson end"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:104
+#: templates/alsijil/print/full_register.html:155
+#: templates/alsijil/print/full_register.html:186
 msgid "Per week"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:124
+#: templates/alsijil/print/full_register.html:176
+msgid "Teachers and lessons in child groups"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:209
 msgid "Personal overview"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:126
+#: templates/alsijil/print/full_register.html:211
 msgid "Contact details"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:174
+#: templates/alsijil/print/full_register.html:249
 msgid "Statistics on remarks"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:179
+#: templates/alsijil/print/full_register.html:254
 msgid "Count"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:196
+#: templates/alsijil/print/full_register.html:271
 msgid "Absences and tardiness"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:215
+#: templates/alsijil/print/full_register.html:274
+msgid "Absences"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:279
+msgid "thereof"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:297
 msgid "Relevant personal notes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:219
+#: templates/alsijil/print/full_register.html:301
 msgid "Date"
-msgstr ""
+msgstr "dies"
 
-#: templates/alsijil/print/full_register.html:220
-#: templates/alsijil/print/full_register.html:268
+#: templates/alsijil/print/full_register.html:302
+#: templates/alsijil/print/full_register.html:355
 msgid "Pe."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:221
-#: templates/alsijil/print/full_register.html:269
+#: templates/alsijil/print/full_register.html:303
+#: templates/alsijil/print/full_register.html:356
 msgid "Subj."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:222
-#: templates/alsijil/print/full_register.html:274
+#: templates/alsijil/print/full_register.html:304
+#: templates/alsijil/print/full_register.html:360
 msgid "Te."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:240
-msgid "Yes"
+#: templates/alsijil/print/full_register.html:306
+msgid "Tard."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:242
-#: templates/alsijil/print/full_register.html:314
-#: templates/alsijil/print/full_register.html:324
-msgid "e"
+#: templates/alsijil/print/full_register.html:322
+msgid "Yes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:262
-msgid "Lesson documentation for calendar week"
+#: templates/alsijil/print/full_register.html:327
+#: templates/alsijil/print/full_register.html:409
+#: templates/alsijil/print/full_register.html:424
+msgid "e"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:270
-msgid "Subs."
+#: templates/alsijil/print/full_register.html:349
+msgid "Lesson documentation for week"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:273
+#: templates/alsijil/print/full_register.html:359
 msgid "Notes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:301
-msgid "Lesson cancelled"
-msgstr ""
-
-#: templates/alsijil/register_absence.html:5
-#: templates/alsijil/register_absence.html:6
-msgid "Manage absence"
-msgstr ""
-
-#: templates/alsijil/week_view.html:6
-msgid "Week view"
-msgstr ""
-
-#: templates/alsijil/week_view.html:21
-msgid "Select"
-msgstr ""
-
-#: templates/alsijil/week_view.html:47
-msgid "Period"
+#: views.py:66
+msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: templates/alsijil/week_view.html:49
-msgid "Teachers"
+#: views.py:80
+msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: templates/alsijil/week_view.html:97
-msgid "unexcused"
+#: views.py:106
+msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:100
-msgid "Summed up tardiness"
+#: views.py:121
+msgid "The personal notes have been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:122
-msgid "No group selected"
+#: views.py:303
+msgid "There is no current school term."
 msgstr ""
 
-#: templates/alsijil/week_view.html:125
-msgid ""
-"\n"
-"            There are no lessons for the selected group, teacher, room or "
-"time.\n"
-"          "
+#: views.py:419
+msgid "The absence has been saved."
 msgstr ""
 
-#: views.py:56
-msgid ""
-"You either selected an invalid lesson or there is currently no lesson in "
-"progress."
+#: views.py:459
+msgid "The filter has been saved"
 msgstr ""
 
-#: views.py:68
-msgid ""
-"You are not allowed to create a lesson documentation for a lesson in the "
-"future."
+#: views.py:474
+msgid "The filter has been deleted."
 msgstr ""
 
-#: views.py:306
-msgid "The absence has been saved."
+#: views.py:497
+msgid "The excuse type has been created."
 msgstr ""
 
-#: views.py:344
-msgid "The filter has been saved"
+#: views.py:508
+msgid "The excuse type has been saved."
 msgstr ""
 
-#: views.py:360
-msgid "The filter has been deleted."
+#: views.py:518
+msgid "The excuse type 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 1b9dbace2c6602f12f716c93ba7b9853400790d4..c6b337e73f6b33c3b537b7070f556dba6916bf52 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: 2020-04-01 13:20+0200\n"
+"POT-Creation-Date: 2020-07-26 16:10+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,46 +17,55 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: forms.py:41
+#: forms.py:25
+msgid "Homework for the next lesson"
+msgstr ""
+
+#: forms.py:50 templates/alsijil/print/full_register.html:181
 msgid "Group"
 msgstr ""
 
-#: forms.py:49 templates/alsijil/print/full_register.html:101
+#: forms.py:56 templates/alsijil/print/full_register.html:152
+#: templates/alsijil/print/full_register.html:183
 msgid "Teacher"
 msgstr ""
 
-#: forms.py:57
-msgid "Room"
+#: forms.py:73
+msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: forms.py:70
+#: forms.py:101
 msgid "Start date"
 msgstr ""
 
-#: forms.py:73
+#: forms.py:102
 msgid "End date"
 msgstr ""
 
-#: forms.py:75
+#: forms.py:103
 msgid "From period"
 msgstr ""
 
-#: forms.py:77 templates/alsijil/lesson.html:58
+#: forms.py:105 templates/alsijil/class_register/lesson.html:150
 msgid "Person"
 msgstr ""
 
-#: forms.py:79 templates/alsijil/lesson.html:59
-#: templates/alsijil/print/full_register.html:223
-#: templates/alsijil/week_view.html:96
+#: forms.py:107 templates/alsijil/class_register/lesson.html:151
+#: templates/alsijil/class_register/week_view.html:93
+#: templates/alsijil/print/full_register.html:75
+#: templates/alsijil/print/full_register.html:305
 msgid "Absent"
 msgstr ""
 
-#: forms.py:80 templates/alsijil/lesson.html:61
+#: forms.py:108 templates/alsijil/class_register/lesson.html:153
+#: templates/alsijil/print/full_register.html:84
+#: templates/alsijil/print/full_register.html:280
 msgid "Excused"
 msgstr ""
 
-#: forms.py:81 templates/alsijil/lesson.html:62
-#: templates/alsijil/print/full_register.html:225
+#: forms.py:109 templates/alsijil/class_register/lesson.html:155
+#: templates/alsijil/class_register/lesson.html:195
+#: templates/alsijil/print/full_register.html:307
 msgid "Remarks"
 msgstr ""
 
@@ -76,306 +85,491 @@ msgstr ""
 msgid "Register absence"
 msgstr ""
 
-#: menus.py:34
+#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8
 msgid "Personal note filters"
 msgstr ""
 
-#: models.py:51 templates/alsijil/print/full_register.html:271
+#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8
+#: templates/alsijil/excuse_type/list.html:9
+msgid "Excuse types"
+msgstr ""
+
+#: models.py:18
+msgid "Short name"
+msgstr ""
+
+#: models.py:20
+msgid "Name"
+msgstr ""
+
+#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154
+#: templates/alsijil/class_register/lesson.html:187
+msgid "Excuse type"
+msgstr ""
+
+#: models.py:70
+msgid "Personal note"
+msgstr ""
+
+#: models.py:71 templates/alsijil/class_register/lesson.html:143
+#: templates/alsijil/class_register/week_view.html:88
+msgid "Personal notes"
+msgstr ""
+
+#: models.py:94 templates/alsijil/print/full_register.html:357
 msgid "Lesson topic"
 msgstr ""
 
-#: models.py:52 templates/alsijil/print/full_register.html:272
+#: models.py:95 templates/alsijil/print/full_register.html:358
 msgid "Homework"
 msgstr ""
 
-#: models.py:68
+#: models.py:96
+msgid "Group note"
+msgstr ""
+
+#: models.py:99 templates/alsijil/class_register/lesson.html:119
+msgid "Lesson documentation"
+msgstr ""
+
+#: models.py:100
+msgid "Lesson documentations"
+msgstr ""
+
+#: models.py:114
 msgid "Identifier"
 msgstr ""
 
-#: models.py:71 templates/alsijil/print/full_register.html:178
+#: models.py:120 templates/alsijil/print/full_register.html:253
 msgid "Description"
 msgstr ""
 
-#: models.py:74
+#: models.py:124
 msgid "Match expression"
 msgstr ""
 
-#: tables.py:14
+#: models.py:128
+msgid "Personal note filter"
+msgstr ""
+
+#: tables.py:17 tables.py:31
 msgid "Edit"
 msgstr ""
 
-#: templates/alsijil/lesson.html:5
+#: tables.py:37
+msgid "Delete"
+msgstr ""
+
+#: templates/alsijil/absences/register.html:5
+#: templates/alsijil/absences/register.html:6
+msgid "Manage absence"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:6
 msgid "Lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:34
-msgid "Lesson documentation"
+#: templates/alsijil/class_register/lesson.html:14
+#: templates/alsijil/class_register/lesson.html:71
+#, python-format
+msgid "%(period)s. period"
 msgstr ""
 
-#: templates/alsijil/lesson.html:43
-msgid "Change history"
+#: templates/alsijil/class_register/lesson.html:38
+msgid "Previous lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91
-msgid "Personal notes"
+#: templates/alsijil/class_register/lesson.html:46
+msgid "Next lesson"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:70
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:77
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:84
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:91
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:98
+msgid "Absent persons:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:105
+msgid "Late persons:"
 msgstr ""
 
-#: templates/alsijil/lesson.html:60
-#: templates/alsijil/print/full_register.html:202
+#: templates/alsijil/class_register/lesson.html:130
+msgid "Change history"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:152
+#: templates/alsijil/print/full_register.html:292
 msgid "Tardiness"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:5
-#: templates/alsijil/manage_personal_note_filter.html:6
-msgid "Manage personal note filter"
+#: templates/alsijil/class_register/lesson.html:173
+msgid "Tardiness (in m)"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:11
-msgid "Delete filter"
+#: templates/alsijil/class_register/week_view.html:6
+msgid "Week view"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:27
+msgid "Select"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:33
+#, python-format
+msgid "CW %(week)s: %(instance)s"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:50
+msgid "Period"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:51
+#: templates/alsijil/print/full_register.html:151
+#: templates/alsijil/print/full_register.html:182
+msgid "Subject"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:52
+msgid "Teachers"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:94
+msgid "unexcused"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:97
+msgid "Summed up tardiness"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:121
+msgid "No lessons available"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:124
+msgid ""
+"\n"
+"            There are no lessons for the selected group or teacher in this week.\n"
+"          "
+msgstr ""
+
+#: templates/alsijil/excuse_type/create.html:6
+#: templates/alsijil/excuse_type/create.html:7
+#: templates/alsijil/excuse_type/list.html:16
+msgid "Create excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/edit.html:6
+#: templates/alsijil/excuse_type/edit.html:7
+msgid "Edit excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/warning.html:5
+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"
+"    "
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:114
+msgid "(e)"
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:118
+msgid "(u)"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:6
+msgid "Data complete"
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:7
-#: templates/alsijil/personal_note_filters.html:8
-msgid "List of all personal note filters"
+#: templates/alsijil/partials/lesson_status_icon.html:12
+msgid "Missing data"
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:12
+#: templates/alsijil/partials/lesson_status_icon.html:14
+msgid "Pending"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:18
+#: templates/alsijil/print/full_register.html:392
+msgid "Lesson cancelled"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:20
+msgid "Substitution"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:7
+msgid "All personal note filters"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:12
 msgid "Add filter"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:22
-#: templates/alsijil/print/full_register.html:54
-msgid "Owners"
+#: templates/alsijil/personal_note_filter/manage.html:7
+#: templates/alsijil/personal_note_filter/manage.html:14
+msgid "Update personal note filter"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/manage.html:9
+#: templates/alsijil/personal_note_filter/manage.html:16
+msgid "Create personal note filter"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/manage.html:29
+msgid "Delete filter"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:6
+msgid "Class register:"
 msgstr ""
 
 #: templates/alsijil/print/full_register.html:26
+#: templates/alsijil/print/full_register.html:59
+msgid "Owners"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:30
 msgid "Printed on"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:34
+#: templates/alsijil/print/full_register.html:38
 msgid ""
 "\n"
-"            This printout is intended for archival purposes. The main copy "
-"of\n"
-"            the class register is stored in the AlekSIS School Information\n"
-"            System.\n"
-"          "
+"        This printout is intended for archival purposes. The main copy of\n"
+"        the class register is stored in the AlekSIS School Information\n"
+"        System.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:41
+#: templates/alsijil/print/full_register.html:45
 msgid ""
 "\n"
-"            Copies of the class register, both digital and as printout, "
-"must\n"
-"            only be kept inside the school and/or on devices authorised by "
-"the\n"
-"            school.\n"
-"          "
+"        Copies of the class register, both digital and as printout, must\n"
+"        only be kept inside the school and/or on devices authorised by the\n"
+"        school.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:48
+#: templates/alsijil/print/full_register.html:52
 msgid ""
 "\n"
-"            The owner of the group and the headteacher confirm the above, "
-"as\n"
-"            well as the correctness of this printout.\n"
-"          "
+"        The owner of the group and the headteacher confirm the above, as\n"
+"        well as the correctness of this printout.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:55
+#: templates/alsijil/print/full_register.html:62
 msgid "Headteacher"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:61
+#: templates/alsijil/print/full_register.html:69
+msgid "Abbreviations"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:71
+msgid "General"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:78
+msgid "Late"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:81
+#: templates/alsijil/print/full_register.html:288
+msgid "Unexcused"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:89
+msgid "Custom excuse types"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:103
 msgid "Persons in group"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:66
+#: templates/alsijil/print/full_register.html:108
 msgid "No."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:67
+#: templates/alsijil/print/full_register.html:109
 msgid "Last name"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:68
+#: templates/alsijil/print/full_register.html:110
 msgid "First name"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:69
+#: templates/alsijil/print/full_register.html:111
 msgid "Sex"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:70
+#: templates/alsijil/print/full_register.html:112
 msgid "Date of birth"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:71
-#: templates/alsijil/print/full_register.html:200
-msgid "Absences"
+#: templates/alsijil/print/full_register.html:113
+msgid "(a)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:72
-#: templates/alsijil/print/full_register.html:201
-msgid "Unexcused"
+#: templates/alsijil/print/full_register.html:119
+msgid "(b)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:73
-#: templates/alsijil/print/full_register.html:224
-msgid "Tard."
-msgstr ""
-
-#: templates/alsijil/print/full_register.html:95
+#: templates/alsijil/print/full_register.html:146
 msgid "Teachers and lessons in group"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:100
-#: templates/alsijil/week_view.html:48
-msgid "Subject"
-msgstr ""
-
-#: templates/alsijil/print/full_register.html:102
+#: templates/alsijil/print/full_register.html:153
+#: templates/alsijil/print/full_register.html:184
 msgid "Lesson start"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:103
+#: templates/alsijil/print/full_register.html:154
+#: templates/alsijil/print/full_register.html:185
 msgid "Lesson end"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:104
+#: templates/alsijil/print/full_register.html:155
+#: templates/alsijil/print/full_register.html:186
 msgid "Per week"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:124
+#: templates/alsijil/print/full_register.html:176
+msgid "Teachers and lessons in child groups"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:209
 msgid "Personal overview"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:126
+#: templates/alsijil/print/full_register.html:211
 msgid "Contact details"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:174
+#: templates/alsijil/print/full_register.html:249
 msgid "Statistics on remarks"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:179
+#: templates/alsijil/print/full_register.html:254
 msgid "Count"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:196
+#: templates/alsijil/print/full_register.html:271
 msgid "Absences and tardiness"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:215
+#: templates/alsijil/print/full_register.html:274
+msgid "Absences"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:279
+msgid "thereof"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:297
 msgid "Relevant personal notes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:219
+#: templates/alsijil/print/full_register.html:301
 msgid "Date"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:220
-#: templates/alsijil/print/full_register.html:268
+#: templates/alsijil/print/full_register.html:302
+#: templates/alsijil/print/full_register.html:355
 msgid "Pe."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:221
-#: templates/alsijil/print/full_register.html:269
+#: templates/alsijil/print/full_register.html:303
+#: templates/alsijil/print/full_register.html:356
 msgid "Subj."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:222
-#: templates/alsijil/print/full_register.html:274
+#: templates/alsijil/print/full_register.html:304
+#: templates/alsijil/print/full_register.html:360
 msgid "Te."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:240
-msgid "Yes"
+#: templates/alsijil/print/full_register.html:306
+msgid "Tard."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:242
-#: templates/alsijil/print/full_register.html:314
-#: templates/alsijil/print/full_register.html:324
-msgid "e"
+#: templates/alsijil/print/full_register.html:322
+msgid "Yes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:262
-msgid "Lesson documentation for calendar week"
+#: templates/alsijil/print/full_register.html:327
+#: templates/alsijil/print/full_register.html:409
+#: templates/alsijil/print/full_register.html:424
+msgid "e"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:270
-msgid "Subs."
+#: templates/alsijil/print/full_register.html:349
+msgid "Lesson documentation for week"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:273
+#: templates/alsijil/print/full_register.html:359
 msgid "Notes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:301
-msgid "Lesson cancelled"
+#: views.py:66
+msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: templates/alsijil/register_absence.html:5
-#: templates/alsijil/register_absence.html:6
-msgid "Manage absence"
+#: views.py:80
+msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: templates/alsijil/week_view.html:6
-msgid "Week view"
+#: views.py:106
+msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:21
-msgid "Select"
+#: views.py:121
+msgid "The personal notes have been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:47
-msgid "Period"
+#: views.py:303
+msgid "There is no current school term."
 msgstr ""
 
-#: templates/alsijil/week_view.html:49
-msgid "Teachers"
-msgstr ""
-
-#: templates/alsijil/week_view.html:97
-msgid "unexcused"
-msgstr ""
-
-#: templates/alsijil/week_view.html:100
-msgid "Summed up tardiness"
-msgstr ""
-
-#: templates/alsijil/week_view.html:122
-msgid "No group selected"
-msgstr ""
-
-#: templates/alsijil/week_view.html:125
-msgid ""
-"\n"
-"            There are no lessons for the selected group, teacher, room or "
-"time.\n"
-"          "
+#: views.py:419
+msgid "The absence has been saved."
 msgstr ""
 
-#: views.py:56
-msgid ""
-"You either selected an invalid lesson or there is currently no lesson in "
-"progress."
+#: views.py:459
+msgid "The filter has been saved"
 msgstr ""
 
-#: views.py:68
-msgid ""
-"You are not allowed to create a lesson documentation for a lesson in the "
-"future."
+#: views.py:474
+msgid "The filter has been deleted."
 msgstr ""
 
-#: views.py:306
-msgid "The absence has been saved."
+#: views.py:497
+msgid "The excuse type has been created."
 msgstr ""
 
-#: views.py:344
-msgid "The filter has been saved"
+#: views.py:508
+msgid "The excuse type has been saved."
 msgstr ""
 
-#: views.py:360
-msgid "The filter has been deleted."
+#: views.py:518
+msgid "The excuse type 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 1b9dbace2c6602f12f716c93ba7b9853400790d4..c6b337e73f6b33c3b537b7070f556dba6916bf52 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: 2020-04-01 13:20+0200\n"
+"POT-Creation-Date: 2020-07-26 16:10+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,46 +17,55 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: forms.py:41
+#: forms.py:25
+msgid "Homework for the next lesson"
+msgstr ""
+
+#: forms.py:50 templates/alsijil/print/full_register.html:181
 msgid "Group"
 msgstr ""
 
-#: forms.py:49 templates/alsijil/print/full_register.html:101
+#: forms.py:56 templates/alsijil/print/full_register.html:152
+#: templates/alsijil/print/full_register.html:183
 msgid "Teacher"
 msgstr ""
 
-#: forms.py:57
-msgid "Room"
+#: forms.py:73
+msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: forms.py:70
+#: forms.py:101
 msgid "Start date"
 msgstr ""
 
-#: forms.py:73
+#: forms.py:102
 msgid "End date"
 msgstr ""
 
-#: forms.py:75
+#: forms.py:103
 msgid "From period"
 msgstr ""
 
-#: forms.py:77 templates/alsijil/lesson.html:58
+#: forms.py:105 templates/alsijil/class_register/lesson.html:150
 msgid "Person"
 msgstr ""
 
-#: forms.py:79 templates/alsijil/lesson.html:59
-#: templates/alsijil/print/full_register.html:223
-#: templates/alsijil/week_view.html:96
+#: forms.py:107 templates/alsijil/class_register/lesson.html:151
+#: templates/alsijil/class_register/week_view.html:93
+#: templates/alsijil/print/full_register.html:75
+#: templates/alsijil/print/full_register.html:305
 msgid "Absent"
 msgstr ""
 
-#: forms.py:80 templates/alsijil/lesson.html:61
+#: forms.py:108 templates/alsijil/class_register/lesson.html:153
+#: templates/alsijil/print/full_register.html:84
+#: templates/alsijil/print/full_register.html:280
 msgid "Excused"
 msgstr ""
 
-#: forms.py:81 templates/alsijil/lesson.html:62
-#: templates/alsijil/print/full_register.html:225
+#: forms.py:109 templates/alsijil/class_register/lesson.html:155
+#: templates/alsijil/class_register/lesson.html:195
+#: templates/alsijil/print/full_register.html:307
 msgid "Remarks"
 msgstr ""
 
@@ -76,306 +85,491 @@ msgstr ""
 msgid "Register absence"
 msgstr ""
 
-#: menus.py:34
+#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8
 msgid "Personal note filters"
 msgstr ""
 
-#: models.py:51 templates/alsijil/print/full_register.html:271
+#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8
+#: templates/alsijil/excuse_type/list.html:9
+msgid "Excuse types"
+msgstr ""
+
+#: models.py:18
+msgid "Short name"
+msgstr ""
+
+#: models.py:20
+msgid "Name"
+msgstr ""
+
+#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154
+#: templates/alsijil/class_register/lesson.html:187
+msgid "Excuse type"
+msgstr ""
+
+#: models.py:70
+msgid "Personal note"
+msgstr ""
+
+#: models.py:71 templates/alsijil/class_register/lesson.html:143
+#: templates/alsijil/class_register/week_view.html:88
+msgid "Personal notes"
+msgstr ""
+
+#: models.py:94 templates/alsijil/print/full_register.html:357
 msgid "Lesson topic"
 msgstr ""
 
-#: models.py:52 templates/alsijil/print/full_register.html:272
+#: models.py:95 templates/alsijil/print/full_register.html:358
 msgid "Homework"
 msgstr ""
 
-#: models.py:68
+#: models.py:96
+msgid "Group note"
+msgstr ""
+
+#: models.py:99 templates/alsijil/class_register/lesson.html:119
+msgid "Lesson documentation"
+msgstr ""
+
+#: models.py:100
+msgid "Lesson documentations"
+msgstr ""
+
+#: models.py:114
 msgid "Identifier"
 msgstr ""
 
-#: models.py:71 templates/alsijil/print/full_register.html:178
+#: models.py:120 templates/alsijil/print/full_register.html:253
 msgid "Description"
 msgstr ""
 
-#: models.py:74
+#: models.py:124
 msgid "Match expression"
 msgstr ""
 
-#: tables.py:14
+#: models.py:128
+msgid "Personal note filter"
+msgstr ""
+
+#: tables.py:17 tables.py:31
 msgid "Edit"
 msgstr ""
 
-#: templates/alsijil/lesson.html:5
+#: tables.py:37
+msgid "Delete"
+msgstr ""
+
+#: templates/alsijil/absences/register.html:5
+#: templates/alsijil/absences/register.html:6
+msgid "Manage absence"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:6
 msgid "Lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:34
-msgid "Lesson documentation"
+#: templates/alsijil/class_register/lesson.html:14
+#: templates/alsijil/class_register/lesson.html:71
+#, python-format
+msgid "%(period)s. period"
 msgstr ""
 
-#: templates/alsijil/lesson.html:43
-msgid "Change history"
+#: templates/alsijil/class_register/lesson.html:38
+msgid "Previous lesson"
 msgstr ""
 
-#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91
-msgid "Personal notes"
+#: templates/alsijil/class_register/lesson.html:46
+msgid "Next lesson"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:70
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:77
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:84
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:91
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:98
+msgid "Absent persons:"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:105
+msgid "Late persons:"
 msgstr ""
 
-#: templates/alsijil/lesson.html:60
-#: templates/alsijil/print/full_register.html:202
+#: templates/alsijil/class_register/lesson.html:130
+msgid "Change history"
+msgstr ""
+
+#: templates/alsijil/class_register/lesson.html:152
+#: templates/alsijil/print/full_register.html:292
 msgid "Tardiness"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:5
-#: templates/alsijil/manage_personal_note_filter.html:6
-msgid "Manage personal note filter"
+#: templates/alsijil/class_register/lesson.html:173
+msgid "Tardiness (in m)"
 msgstr ""
 
-#: templates/alsijil/manage_personal_note_filter.html:11
-msgid "Delete filter"
+#: templates/alsijil/class_register/week_view.html:6
+msgid "Week view"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:27
+msgid "Select"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:33
+#, python-format
+msgid "CW %(week)s: %(instance)s"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:50
+msgid "Period"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:51
+#: templates/alsijil/print/full_register.html:151
+#: templates/alsijil/print/full_register.html:182
+msgid "Subject"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:52
+msgid "Teachers"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:94
+msgid "unexcused"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:97
+msgid "Summed up tardiness"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:121
+msgid "No lessons available"
+msgstr ""
+
+#: templates/alsijil/class_register/week_view.html:124
+msgid ""
+"\n"
+"            There are no lessons for the selected group or teacher in this week.\n"
+"          "
+msgstr ""
+
+#: templates/alsijil/excuse_type/create.html:6
+#: templates/alsijil/excuse_type/create.html:7
+#: templates/alsijil/excuse_type/list.html:16
+msgid "Create excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/edit.html:6
+#: templates/alsijil/excuse_type/edit.html:7
+msgid "Edit excuse type"
+msgstr ""
+
+#: templates/alsijil/excuse_type/warning.html:5
+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"
+"    "
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:114
+msgid "(e)"
+msgstr ""
+
+#: templates/alsijil/partials/absences.html:4
+#: templates/alsijil/print/full_register.html:118
+msgid "(u)"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:6
+msgid "Data complete"
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:7
-#: templates/alsijil/personal_note_filters.html:8
-msgid "List of all personal note filters"
+#: templates/alsijil/partials/lesson_status_icon.html:12
+msgid "Missing data"
 msgstr ""
 
-#: templates/alsijil/personal_note_filters.html:12
+#: templates/alsijil/partials/lesson_status_icon.html:14
+msgid "Pending"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:18
+#: templates/alsijil/print/full_register.html:392
+msgid "Lesson cancelled"
+msgstr ""
+
+#: templates/alsijil/partials/lesson_status_icon.html:20
+msgid "Substitution"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:7
+msgid "All personal note filters"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/list.html:12
 msgid "Add filter"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:22
-#: templates/alsijil/print/full_register.html:54
-msgid "Owners"
+#: templates/alsijil/personal_note_filter/manage.html:7
+#: templates/alsijil/personal_note_filter/manage.html:14
+msgid "Update personal note filter"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/manage.html:9
+#: templates/alsijil/personal_note_filter/manage.html:16
+msgid "Create personal note filter"
+msgstr ""
+
+#: templates/alsijil/personal_note_filter/manage.html:29
+msgid "Delete filter"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:6
+msgid "Class register:"
 msgstr ""
 
 #: templates/alsijil/print/full_register.html:26
+#: templates/alsijil/print/full_register.html:59
+msgid "Owners"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:30
 msgid "Printed on"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:34
+#: templates/alsijil/print/full_register.html:38
 msgid ""
 "\n"
-"            This printout is intended for archival purposes. The main copy "
-"of\n"
-"            the class register is stored in the AlekSIS School Information\n"
-"            System.\n"
-"          "
+"        This printout is intended for archival purposes. The main copy of\n"
+"        the class register is stored in the AlekSIS School Information\n"
+"        System.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:41
+#: templates/alsijil/print/full_register.html:45
 msgid ""
 "\n"
-"            Copies of the class register, both digital and as printout, "
-"must\n"
-"            only be kept inside the school and/or on devices authorised by "
-"the\n"
-"            school.\n"
-"          "
+"        Copies of the class register, both digital and as printout, must\n"
+"        only be kept inside the school and/or on devices authorised by the\n"
+"        school.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:48
+#: templates/alsijil/print/full_register.html:52
 msgid ""
 "\n"
-"            The owner of the group and the headteacher confirm the above, "
-"as\n"
-"            well as the correctness of this printout.\n"
-"          "
+"        The owner of the group and the headteacher confirm the above, as\n"
+"        well as the correctness of this printout.\n"
+"      "
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:55
+#: templates/alsijil/print/full_register.html:62
 msgid "Headteacher"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:61
+#: templates/alsijil/print/full_register.html:69
+msgid "Abbreviations"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:71
+msgid "General"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:78
+msgid "Late"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:81
+#: templates/alsijil/print/full_register.html:288
+msgid "Unexcused"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:89
+msgid "Custom excuse types"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:103
 msgid "Persons in group"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:66
+#: templates/alsijil/print/full_register.html:108
 msgid "No."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:67
+#: templates/alsijil/print/full_register.html:109
 msgid "Last name"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:68
+#: templates/alsijil/print/full_register.html:110
 msgid "First name"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:69
+#: templates/alsijil/print/full_register.html:111
 msgid "Sex"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:70
+#: templates/alsijil/print/full_register.html:112
 msgid "Date of birth"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:71
-#: templates/alsijil/print/full_register.html:200
-msgid "Absences"
+#: templates/alsijil/print/full_register.html:113
+msgid "(a)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:72
-#: templates/alsijil/print/full_register.html:201
-msgid "Unexcused"
+#: templates/alsijil/print/full_register.html:119
+msgid "(b)"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:73
-#: templates/alsijil/print/full_register.html:224
-msgid "Tard."
-msgstr ""
-
-#: templates/alsijil/print/full_register.html:95
+#: templates/alsijil/print/full_register.html:146
 msgid "Teachers and lessons in group"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:100
-#: templates/alsijil/week_view.html:48
-msgid "Subject"
-msgstr ""
-
-#: templates/alsijil/print/full_register.html:102
+#: templates/alsijil/print/full_register.html:153
+#: templates/alsijil/print/full_register.html:184
 msgid "Lesson start"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:103
+#: templates/alsijil/print/full_register.html:154
+#: templates/alsijil/print/full_register.html:185
 msgid "Lesson end"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:104
+#: templates/alsijil/print/full_register.html:155
+#: templates/alsijil/print/full_register.html:186
 msgid "Per week"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:124
+#: templates/alsijil/print/full_register.html:176
+msgid "Teachers and lessons in child groups"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:209
 msgid "Personal overview"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:126
+#: templates/alsijil/print/full_register.html:211
 msgid "Contact details"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:174
+#: templates/alsijil/print/full_register.html:249
 msgid "Statistics on remarks"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:179
+#: templates/alsijil/print/full_register.html:254
 msgid "Count"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:196
+#: templates/alsijil/print/full_register.html:271
 msgid "Absences and tardiness"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:215
+#: templates/alsijil/print/full_register.html:274
+msgid "Absences"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:279
+msgid "thereof"
+msgstr ""
+
+#: templates/alsijil/print/full_register.html:297
 msgid "Relevant personal notes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:219
+#: templates/alsijil/print/full_register.html:301
 msgid "Date"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:220
-#: templates/alsijil/print/full_register.html:268
+#: templates/alsijil/print/full_register.html:302
+#: templates/alsijil/print/full_register.html:355
 msgid "Pe."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:221
-#: templates/alsijil/print/full_register.html:269
+#: templates/alsijil/print/full_register.html:303
+#: templates/alsijil/print/full_register.html:356
 msgid "Subj."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:222
-#: templates/alsijil/print/full_register.html:274
+#: templates/alsijil/print/full_register.html:304
+#: templates/alsijil/print/full_register.html:360
 msgid "Te."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:240
-msgid "Yes"
+#: templates/alsijil/print/full_register.html:306
+msgid "Tard."
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:242
-#: templates/alsijil/print/full_register.html:314
-#: templates/alsijil/print/full_register.html:324
-msgid "e"
+#: templates/alsijil/print/full_register.html:322
+msgid "Yes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:262
-msgid "Lesson documentation for calendar week"
+#: templates/alsijil/print/full_register.html:327
+#: templates/alsijil/print/full_register.html:409
+#: templates/alsijil/print/full_register.html:424
+msgid "e"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:270
-msgid "Subs."
+#: templates/alsijil/print/full_register.html:349
+msgid "Lesson documentation for week"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:273
+#: templates/alsijil/print/full_register.html:359
 msgid "Notes"
 msgstr ""
 
-#: templates/alsijil/print/full_register.html:301
-msgid "Lesson cancelled"
+#: views.py:66
+msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: templates/alsijil/register_absence.html:5
-#: templates/alsijil/register_absence.html:6
-msgid "Manage absence"
+#: views.py:80
+msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: templates/alsijil/week_view.html:6
-msgid "Week view"
+#: views.py:106
+msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:21
-msgid "Select"
+#: views.py:121
+msgid "The personal notes have been saved."
 msgstr ""
 
-#: templates/alsijil/week_view.html:47
-msgid "Period"
+#: views.py:303
+msgid "There is no current school term."
 msgstr ""
 
-#: templates/alsijil/week_view.html:49
-msgid "Teachers"
-msgstr ""
-
-#: templates/alsijil/week_view.html:97
-msgid "unexcused"
-msgstr ""
-
-#: templates/alsijil/week_view.html:100
-msgid "Summed up tardiness"
-msgstr ""
-
-#: templates/alsijil/week_view.html:122
-msgid "No group selected"
-msgstr ""
-
-#: templates/alsijil/week_view.html:125
-msgid ""
-"\n"
-"            There are no lessons for the selected group, teacher, room or "
-"time.\n"
-"          "
+#: views.py:419
+msgid "The absence has been saved."
 msgstr ""
 
-#: views.py:56
-msgid ""
-"You either selected an invalid lesson or there is currently no lesson in "
-"progress."
+#: views.py:459
+msgid "The filter has been saved"
 msgstr ""
 
-#: views.py:68
-msgid ""
-"You are not allowed to create a lesson documentation for a lesson in the "
-"future."
+#: views.py:474
+msgid "The filter has been deleted."
 msgstr ""
 
-#: views.py:306
-msgid "The absence has been saved."
+#: views.py:497
+msgid "The excuse type has been created."
 msgstr ""
 
-#: views.py:344
-msgid "The filter has been saved"
+#: views.py:508
+msgid "The excuse type has been saved."
 msgstr ""
 
-#: views.py:360
-msgid "The filter has been deleted."
+#: views.py:518
+msgid "The excuse type has been deleted."
 msgstr ""
diff --git a/aleksis/apps/alsijil/migrations/0003_group_notes.py b/aleksis/apps/alsijil/migrations/0003_group_notes.py
new file mode 100644
index 0000000000000000000000000000000000000000..312eab9f68fa2070e44319ba96eeca4888f463f1
--- /dev/null
+++ b/aleksis/apps/alsijil/migrations/0003_group_notes.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.0.8 on 2020-07-10 16:16
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('alsijil', '0002_excuse_type'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='lessondocumentation',
+            name='group_note',
+            field=models.CharField(blank=True, max_length=200, verbose_name='Group note'),
+        ),
+    ]
diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index 8a82caddb631fbc77c074f7b5984b7b56206bf3d..dee6542fccb73fb0e179e355487d3752a23f2736 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -97,6 +97,7 @@ class LessonDocumentation(ExtensibleModel):
 
     topic = models.CharField(verbose_name=_("Lesson topic"), max_length=200, blank=True)
     homework = models.CharField(verbose_name=_("Homework"), max_length=200, blank=True)
+    group_note = models.CharField(verbose_name=_("Group note"), max_length=200, blank=True)
 
     class Meta:
         verbose_name = _("Lesson documentation")
diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
index f803493bf3d75c28f8a094206d8fcb13a33ecdab..3f2c5be29af5e4dcc48df7678d4019665774a7c1 100644
--- a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
+++ b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
@@ -50,15 +50,25 @@
   </div>
 
   <form method="post">
+    <p>{% include "core/partials/save_button.html" %}</p>
+    {% csrf_token %}
+
     <div class="row">
       <div class="col s12">
-        {% include "core/partials/save_button.html" %}
+        <ul class="tabs">
+          <li class="tab">
+            <a href="#lesson-documentation">{% trans "Lesson documentation" %}</a>
+          </li>
+          <li class="tab">
+            <a href="#personal-notes">{% trans "Personal notes" %}</a>
+          </li>
+          <li class="tab">
+            <a href="#version-history">{% trans "Change history" %}</a>
+          </li>
+        </ul>
       </div>
-    </div>
-    {% csrf_token %}
 
-    <div class="row">
-      <div class="col s12 m12 l6 xl8">
+      <div class="col s12" id="lesson-documentation">
         {% with prev_lesson=lesson_period.prev prev_doc=prev_lesson.get_lesson_documentation %}
           {% with prev_doc=prev_lesson.get_lesson_documentation absences=prev_lesson.get_absences tardinesses=prev_lesson.get_tardinesses extra_marks=prev_lesson.get_extra_marks %}
             {% if prev_doc %}
@@ -86,6 +96,13 @@
                       </tr>
                     {% endif %}
 
+                    {% if prev_doc.group_note %}
+                      <tr>
+                        <th class="collection-item">{% trans "Group notes for previous lesson:" %}</th>
+                        <td>{{ prev_doc.group_note }}</td>
+                      </tr>
+                    {% endif %}
+
                     {% if absences %}
                       <tr>
                         <th>{% trans "Absent persons:" %}</th>
@@ -128,20 +145,8 @@
           </div>
         </div>
       </div>
-      <div class="col s12 m12 l6 xl4">
-        <div class="card">
-          <div class="card-content">
-          <span class="card-title">
-            {% blocktrans %}Change history{% endblocktrans %}
-          </span>
-            {% include 'core/partials/crud_events.html' with obj=lesson_documentation %}
-          </div>
-        </div>
-      </div>
-    </div>
 
-    <div class="row">
-      <div class="col s12">
+      <div class="col s12" id="personal-notes">
         <div class="card">
           <div class="card-content">
       <span class="card-title">
@@ -222,12 +227,18 @@
           </div>
         </div>
       </div>
-    </div>
-
-    <div class="row">
-      <div class="col s12">
-        {% include "core/partials/save_button.html" %}
+      <div class="col s12" id="version-history">
+        <div class="card">
+          <div class="card-content">
+          <span class="card-title">
+            {% blocktrans %}Change history{% endblocktrans %}
+          </span>
+            {% include 'core/partials/crud_events.html' with obj=lesson_documentation %}
+          </div>
+        </div>
       </div>
     </div>
+
+    <p>{% include "core/partials/save_button.html" %}</p>
   </form>
 {% endblock %}
diff --git a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html
index 6d0ddbacc9fcefb73bd9e36b48ca5562b620d0df..2090a42682a5fb8a7144f12606363da0b62680a9 100644
--- a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html
+++ b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html
@@ -317,37 +317,39 @@
 
       <tbody>
       {% for note in person.personal_notes.all %}
-        {% if note.absent or note.late or note.remarks or note.extra_marks.all %}
-          {% period_to_date note.week note.lesson_period.period as note_date %}
-          <tr>
-            <td>{{ note_date }}</td>
-            <td>{{ note.lesson_period.period.period }}</td>
-            <td>{{ note.lesson_period.get_subject.short_name }} </td>
-            <td>{{ note.lesson_period.get_teachers.first.short_name }}</td>
-            <td>
-              {% if note.absent %}
-                {% trans 'Yes' %}
-                {% if note.excused %}
-                  {% if note.excuse_type %}
-                    ({{ note.excuse_type.short_name }})
-                  {% else %}
-                    ({% trans 'e' %})
+        {% if note.lesson_period in lesson_periods %}
+          {% if note.absent or note.late or note.remarks or note.extra_marks.all %}
+            {% period_to_date note.week note.lesson_period.period as note_date %}
+            <tr>
+              <td>{{ note_date }}</td>
+              <td>{{ note.lesson_period.period.period }}</td>
+              <td>{{ note.lesson_period.get_subject.short_name }} </td>
+              <td>{{ note.lesson_period.get_teachers.first.short_name }}</td>
+              <td>
+                {% if note.absent %}
+                  {% trans 'Yes' %}
+                  {% if note.excused %}
+                    {% if note.excuse_type %}
+                      ({{ note.excuse_type.short_name }})
+                    {% else %}
+                      ({% trans 'e' %})
+                    {% endif %}
                   {% endif %}
                 {% endif %}
-              {% endif %}
-            </td>
-            <td>
-              {% if note.late %}
-                {{ note.late }}'
-              {% endif %}
-            </td>
-            <td>
-              {% for extra_mark in note.extra_marks.all %}
-                {{ extra_mark.short_name }}{% if not forloop.last %},{% endif %}
-              {% endfor %}
-            </td>
-            <td>{{ note.remarks }}</td>
-          </tr>
+              </td>
+              <td>
+                {% if note.late %}
+                  {{ note.late }}'
+                {% endif %}
+              </td>
+              <td>
+                {% for extra_mark in note.extra_marks.all %}
+                  {{ extra_mark.short_name }}{% if not forloop.last %},{% endif %}
+                {% endfor %}
+              </td>
+              <td>{{ note.remarks }}</td>
+            </tr>
+          {% endif %}
         {% endif %}
       {% endfor %}
       </tbody>
@@ -408,6 +410,7 @@
               </td>
               <td class="lesson-homework">{{ documentations.0.homework }}</td>
               <td class="lesson-notes">
+                {{ documentations.0.group_note }}
                 {% for note in notes %}
                   {% if note.absent %}
                     <span class="lesson-note-absent">
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index d97bbc24b45f5b75803436aee3098c498447f73a..7a041822212b4fca3f8b6a03c7f92f859a19bb33 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -16,6 +16,7 @@ from rules.contrib.views import PermissionRequiredMixin
 from aleksis.apps.chronos.managers import TimetableType
 from aleksis.apps.chronos.models import LessonPeriod
 from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk
+from aleksis.apps.chronos.util.date import week_weekday_to_date
 from aleksis.core.mixins import AdvancedCreateView, AdvancedDeleteView, AdvancedEditView
 from aleksis.core.models import Group, Person, SchoolTerm
 from aleksis.core.util import messages
@@ -46,6 +47,14 @@ def lesson(
         lesson_period = LessonPeriod.objects.annotate_week(wanted_week).get(
             pk=period_id
         )
+
+        date_of_lesson = week_weekday_to_date(wanted_week, lesson_period.period.weekday)
+
+        if (
+            date_of_lesson < lesson_period.lesson.validity.date_start
+            or date_of_lesson > lesson_period.lesson.validity.date_end
+        ):
+            return HttpResponseNotFound()
     else:
         # Determine current lesson by current date and time
         lesson_period = (
@@ -306,18 +315,19 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
 
     group = get_object_or_404(Group, pk=id_)
 
+    current_school_term = SchoolTerm.current
+
+    if not current_school_term:
+        return HttpResponseNotFound(_("There is no current school term."))
+
     # Get all lesson periods for the selected group
     lesson_periods = (
         LessonPeriod.objects.filter_group(group)
+        .filter(lesson__validity__school_term=current_school_term)
         .distinct()
         .prefetch_related("documentations", "personal_notes")
     )
 
-    current_school_term = SchoolTerm.current
-
-    if not current_school_term:
-        return HttpResponseNotFound(_("There is no current school term."))
-
     weeks = CalendarWeek.weeks_within(
         current_school_term.date_start, current_school_term.date_end,
     )
@@ -352,7 +362,11 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
 
     persons = group.members.annotate(
         absences_count=Count(
-            "personal_notes__absent", filter=Q(personal_notes__absent=True)
+            "personal_notes__absent",
+            filter=Q(
+                personal_notes__absent=True,
+                personal_notes__lesson_period__lesson__validity__school_term=current_school_term,
+            ),
         ),
         excused=Count(
             "personal_notes__absent",
@@ -360,11 +374,16 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
                 personal_notes__absent=True,
                 personal_notes__excused=True,
                 personal_notes__excuse_type__isnull=True,
+                personal_notes__lesson_period__lesson__validity__school_term=current_school_term,
             ),
         ),
         unexcused=Count(
             "personal_notes__absent",
-            filter=Q(personal_notes__absent=True, personal_notes__excused=False),
+            filter=Q(
+                personal_notes__absent=True,
+                personal_notes__excused=False,
+                personal_notes__lesson_period__lesson__validity__school_term=current_school_term,
+            ),
         ),
         tardiness=Sum("personal_notes__late"),
     )
@@ -373,7 +392,7 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
         persons = persons.annotate(
             **{
                 extra_mark.count_label: Count(
-                    "personal_notes", filter=Q(personal_notes__extra_marks=extra_mark,),
+                    "personal_notes", filter=Q(personal_notes__extra_marks=extra_mark,personal_notes__lesson_period__lesson__validity__school_term=current_school_term),
                 )
             }
         )
@@ -386,6 +405,7 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
                     filter=Q(
                         personal_notes__absent=True,
                         personal_notes__excuse_type=excuse_type,
+                        personal_notes__lesson_period__lesson__validity__school_term=current_school_term,
                     ),
                 )
             }
@@ -398,6 +418,7 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
     context["group"] = group
     context["weeks"] = weeks
     context["periods_by_day"] = periods_by_day
+    context["lesson_periods"] = lesson_periods
     context["today"] = date.today()
 
     return render(request, "alsijil/print/full_register.html", context)