From 6f993e866af018ffadab2f560d4ccedd629570a0 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Mon, 15 Aug 2022 10:28:38 +0200
Subject: [PATCH] Update translations

---
 .../alsijil/locale/ar/LC_MESSAGES/django.po   | 234 ++++++---
 .../locale/de_DE/LC_MESSAGES/django.po        | 270 ++++++----
 .../alsijil/locale/fr/LC_MESSAGES/django.po   | 244 ++++++---
 .../alsijil/locale/la/LC_MESSAGES/django.po   | 236 ++++++---
 .../locale/nb_NO/LC_MESSAGES/django.po        | 234 ++++++---
 .../alsijil/locale/ru/LC_MESSAGES/django.po   | 272 ++++++----
 .../locale/tr_TR/LC_MESSAGES/django.po        | 234 ++++++---
 .../alsijil/locale/uk/LC_MESSAGES/django.po   | 466 ++++++++----------
 8 files changed, 1346 insertions(+), 844 deletions(-)

diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
index 9b3363583..80b0b47b4 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: 2022-06-25 15:28+0200\n"
+"POT-Creation-Date: 2022-08-15 10:22+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"
@@ -34,6 +34,7 @@ msgstr ""
 #: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:80
 msgid "Delete"
 msgstr ""
 
@@ -110,7 +111,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:349
+#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:352
 #: aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:227
@@ -127,51 +128,51 @@ msgstr ""
 msgid "Tardiness is bigger than"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:47
+#: aleksis/apps/alsijil/forms.py:50
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:53
+#: aleksis/apps/alsijil/forms.py:56
 msgid "Carry over data to all other lessons with the same subject in this week"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:98 aleksis/apps/alsijil/forms.py:256
-#: aleksis/apps/alsijil/forms.py:348
+#: aleksis/apps/alsijil/forms.py:101 aleksis/apps/alsijil/forms.py:259
+#: aleksis/apps/alsijil/forms.py:351
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:219
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:104
+#: aleksis/apps/alsijil/forms.py:107
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:190
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:221
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:121
+#: aleksis/apps/alsijil/forms.py:124
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:192 aleksis/apps/alsijil/forms.py:350
-#: aleksis/apps/alsijil/models.py:491
+#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:353
+#: aleksis/apps/alsijil/models.py:504
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:351
-#: aleksis/apps/alsijil/models.py:495
+#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/forms.py:354
+#: aleksis/apps/alsijil/models.py:508
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:194
+#: aleksis/apps/alsijil/forms.py:197
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:195
+#: aleksis/apps/alsijil/forms.py:198
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:117
 #: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
@@ -181,7 +182,7 @@ msgstr ""
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:197 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:200 aleksis/apps/alsijil/tables.py:146
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
@@ -191,32 +192,32 @@ msgstr ""
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/models.py:71
-#: aleksis/apps/alsijil/models.py:253
+#: aleksis/apps/alsijil/forms.py:202 aleksis/apps/alsijil/models.py:76
+#: aleksis/apps/alsijil/models.py:258
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:73
 msgid "Excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:204
+#: aleksis/apps/alsijil/forms.py:207
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:34
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:94
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:354
 msgid "Remarks"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:269
+#: aleksis/apps/alsijil/forms.py:272
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:346
+#: aleksis/apps/alsijil/forms.py:349
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:347
+#: aleksis/apps/alsijil/forms.py:350
 msgid "Has lesson documentation"
 msgstr ""
 
@@ -261,27 +262,34 @@ msgstr ""
 msgid "My students"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:71
+#: aleksis/apps/alsijil/menus.py:71 aleksis/apps/alsijil/models.py:553
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:24
+msgid "Instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/menus.py:82
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:11
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:18
 msgid "Assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:82
+#: aleksis/apps/alsijil/menus.py:93
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:5
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:8
 msgid "All lessons"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:93 aleksis/apps/alsijil/models.py:72
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:77
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:258
-#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/tables.py:120
+#: aleksis/apps/alsijil/menus.py:115 aleksis/apps/alsijil/models.py:263
+#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
@@ -291,7 +299,7 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:115
+#: aleksis/apps/alsijil/menus.py:126
 msgid "Manage group roles"
 msgstr ""
 
@@ -335,146 +343,165 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:430
+#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/models.py:443
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:431
-#: aleksis/apps/alsijil/models.py:455
+#: aleksis/apps/alsijil/models.py:56 aleksis/apps/alsijil/models.py:444
+#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:529
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:60 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:57
+#: aleksis/apps/alsijil/models.py:62
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:233 aleksis/apps/alsijil/models.py:332
+#: aleksis/apps/alsijil/models.py:238 aleksis/apps/alsijil/models.py:337
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:292
+#: aleksis/apps/alsijil/models.py:297
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:293
+#: aleksis/apps/alsijil/models.py:298
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:22
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:344
+#: aleksis/apps/alsijil/models.py:349
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:26
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:49
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:421
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:345
+#: aleksis/apps/alsijil/models.py:350
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:133
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:269
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:347
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:34
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:57
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:422
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:134
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:275
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:351
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:65
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:396
+#: aleksis/apps/alsijil/models.py:358
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:73
+msgid "Done instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:409
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:397
+#: aleksis/apps/alsijil/models.py:410
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:442
+#: aleksis/apps/alsijil/models.py:455
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:456
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/models.py:530
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:457
+#: aleksis/apps/alsijil/models.py:470
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:463 aleksis/apps/alsijil/models.py:478
+#: aleksis/apps/alsijil/models.py:476 aleksis/apps/alsijil/models.py:491
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:464
+#: aleksis/apps/alsijil/models.py:477
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:34
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:468
+#: aleksis/apps/alsijil/models.py:481
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:497
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:489 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:502 aleksis/apps/alsijil/models.py:540
+#: aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:246
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:326
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:496
+#: aleksis/apps/alsijil/models.py:509
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:511
+#: aleksis/apps/alsijil/models.py:524
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:512
+#: aleksis/apps/alsijil/models.py:525
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:519
+#: aleksis/apps/alsijil/models.py:533
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:542
+msgid "The instruction will be shown for the members and owners of the selected groups. Leave empty to show for all groups."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:552
+msgid "Instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:565
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:520
+#: aleksis/apps/alsijil/models.py:566
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:521
+#: aleksis/apps/alsijil/models.py:567
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:522
+#: aleksis/apps/alsijil/models.py:568
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:523
+#: aleksis/apps/alsijil/models.py:569
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -561,6 +588,7 @@ msgstr ""
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
 #: aleksis/apps/alsijil/tables.py:72
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:74
 msgid "Edit"
 msgstr ""
 
@@ -779,6 +807,7 @@ msgid "Close"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:49
 msgid "Filter"
 msgstr ""
 
@@ -970,6 +999,33 @@ msgstr ""
 msgid "Stop"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:37
+msgid "Create instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:7
+msgid "Edit instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:15
+msgid "All instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:43
+msgid "Filter instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:53
+msgid "Reset filter"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:86
+msgid "Show PDF file with instruction"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
 msgid "Please check if the following class register entries are complete and correct:"
 msgstr ""
@@ -1064,6 +1120,14 @@ msgid ""
 "      "
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:31
+msgid "Instruction done"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:81
+msgid "Instruction done in this lesson"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
 msgid "Change history"
 msgstr ""
@@ -1375,78 +1439,90 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:118
+#: aleksis/apps/alsijil/views.py:122
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:151
+#: aleksis/apps/alsijil/views.py:155
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:268
+#: aleksis/apps/alsijil/views.py:278
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:302
+#: aleksis/apps/alsijil/views.py:312
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1140
+#: aleksis/apps/alsijil/views.py:1150
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1172
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1184
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1195
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1206
+#: aleksis/apps/alsijil/views.py:1216
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218
+#: aleksis/apps/alsijil/views.py:1228
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1229
+#: aleksis/apps/alsijil/views.py:1239
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1260
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1262
+#: aleksis/apps/alsijil/views.py:1272
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1273
+#: aleksis/apps/alsijil/views.py:1283
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1306 aleksis/apps/alsijil/views.py:1338
+#: aleksis/apps/alsijil/views.py:1316 aleksis/apps/alsijil/views.py:1348
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1357
+#: aleksis/apps/alsijil/views.py:1367
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1378
+#: aleksis/apps/alsijil/views.py:1388
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1391
+#: aleksis/apps/alsijil/views.py:1401
 msgid "The group role assignment has been deleted."
 msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1543
+msgid "The instruction has been created."
+msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1555
+msgid "The instruction has been saved."
+msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1566
+msgid "The instruction 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 5c846bc04..b16457044 100644
--- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
@@ -7,11 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-25 15:28+0200\n"
+"POT-Creation-Date: 2022-08-15 10:22+0200\n"
 "PO-Revision-Date: 2022-06-25 13:53+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-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"
@@ -35,6 +34,7 @@ msgstr "Als {excuse_type.name} markieren"
 #: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:80
 msgid "Delete"
 msgstr "Löschen"
 
@@ -111,7 +111,7 @@ msgstr "Nach"
 msgid "Before"
 msgstr "Bevor"
 
-#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:349
+#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:352
 #: aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:227
@@ -128,53 +128,51 @@ msgstr "Verspätung ist geringer als"
 msgid "Tardiness is bigger than"
 msgstr "Verspätung ist größer als"
 
-#: aleksis/apps/alsijil/forms.py:47
+#: aleksis/apps/alsijil/forms.py:50
 msgid "Homework for the next lesson"
 msgstr "Hausaufgabe zur nächsten Stunde"
 
-#: aleksis/apps/alsijil/forms.py:53
+#: aleksis/apps/alsijil/forms.py:56
 msgid "Carry over data to all other lessons with the same subject in this week"
-msgstr ""
-"Daten zu allen weiteren Stunden mit dem gleichen Fach in dieser Woche "
-"übernehmen"
+msgstr "Daten zu allen weiteren Stunden mit dem gleichen Fach in dieser Woche übernehmen"
 
-#: aleksis/apps/alsijil/forms.py:98 aleksis/apps/alsijil/forms.py:256
-#: aleksis/apps/alsijil/forms.py:348
+#: aleksis/apps/alsijil/forms.py:101 aleksis/apps/alsijil/forms.py:259
+#: aleksis/apps/alsijil/forms.py:351
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:219
 msgid "Group"
 msgstr "Gruppe"
 
-#: aleksis/apps/alsijil/forms.py:104
+#: aleksis/apps/alsijil/forms.py:107
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:190
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:221
 msgid "Teacher"
 msgstr "Lehrkraft"
 
-#: aleksis/apps/alsijil/forms.py:121
+#: aleksis/apps/alsijil/forms.py:124
 msgid "You can't select a group and a teacher both."
 msgstr "Es kann nur entweder eine Gruppe oder eine Lehrkraft ausgewählt werden."
 
-#: aleksis/apps/alsijil/forms.py:192 aleksis/apps/alsijil/forms.py:350
-#: aleksis/apps/alsijil/models.py:491
+#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:353
+#: aleksis/apps/alsijil/models.py:504
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Startdatum"
 
-#: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:351
-#: aleksis/apps/alsijil/models.py:495
+#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/forms.py:354
+#: aleksis/apps/alsijil/models.py:508
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Enddatum"
 
-#: aleksis/apps/alsijil/forms.py:194
+#: aleksis/apps/alsijil/forms.py:197
 msgid "Start period"
 msgstr "Startstunde"
 
-#: aleksis/apps/alsijil/forms.py:195
+#: aleksis/apps/alsijil/forms.py:198
 msgid "End period"
 msgstr "Endstunde"
 
-#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:117
 #: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
@@ -184,7 +182,7 @@ msgstr "Endstunde"
 msgid "Absent"
 msgstr "Abwesend"
 
-#: aleksis/apps/alsijil/forms.py:197 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:200 aleksis/apps/alsijil/tables.py:146
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
@@ -194,32 +192,32 @@ msgstr "Abwesend"
 msgid "Excused"
 msgstr "Entschuldigt"
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/models.py:71
-#: aleksis/apps/alsijil/models.py:253
+#: aleksis/apps/alsijil/forms.py:202 aleksis/apps/alsijil/models.py:76
+#: aleksis/apps/alsijil/models.py:258
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:73
 msgid "Excuse type"
 msgstr "Entschuldigungsart"
 
-#: aleksis/apps/alsijil/forms.py:204
+#: aleksis/apps/alsijil/forms.py:207
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:34
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:94
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:354
 msgid "Remarks"
 msgstr "Bemerkungen"
 
-#: aleksis/apps/alsijil/forms.py:269
+#: aleksis/apps/alsijil/forms.py:272
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 msgid "Person"
 msgstr "Person"
 
-#: aleksis/apps/alsijil/forms.py:346
+#: aleksis/apps/alsijil/forms.py:349
 msgid "School term"
 msgstr "Schuljahr"
 
-#: aleksis/apps/alsijil/forms.py:347
+#: aleksis/apps/alsijil/forms.py:350
 msgid "Has lesson documentation"
 msgstr "Hat eine Stunden-Dokumentation"
 
@@ -264,27 +262,34 @@ msgstr "Meine Ãœbersicht"
 msgid "My students"
 msgstr "Meine Schülerinnen und Schüler"
 
-#: aleksis/apps/alsijil/menus.py:71
+#: aleksis/apps/alsijil/menus.py:71 aleksis/apps/alsijil/models.py:553
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:24
+msgid "Instructions"
+msgstr "Belehrungen"
+
+#: aleksis/apps/alsijil/menus.py:82
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:11
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:18
 msgid "Assign group role"
 msgstr "Gruppenrolle zuweisen"
 
-#: aleksis/apps/alsijil/menus.py:82
+#: aleksis/apps/alsijil/menus.py:93
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:5
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:8
 msgid "All lessons"
 msgstr "Alle Stunden"
 
-#: aleksis/apps/alsijil/menus.py:93 aleksis/apps/alsijil/models.py:72
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:77
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr "Entschuldigungsarten"
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:258
-#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/tables.py:120
+#: aleksis/apps/alsijil/menus.py:115 aleksis/apps/alsijil/models.py:263
+#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
@@ -294,7 +299,7 @@ msgstr "Entschuldigungsarten"
 msgid "Extra marks"
 msgstr "Zusätzliche Markierungen"
 
-#: aleksis/apps/alsijil/menus.py:115
+#: aleksis/apps/alsijil/menus.py:126
 msgid "Manage group roles"
 msgstr "Gruppenrollen verwalten"
 
@@ -338,149 +343,165 @@ msgstr "Kann eine Gruppenrolle für diese Gruppe zuweisen"
 msgid "Can register an absence for a person"
 msgstr "Kann eine Absenz für eine Person registrieren"
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:430
+#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/models.py:443
 msgid "Short name"
 msgstr "Kurzname"
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:431
-#: aleksis/apps/alsijil/models.py:455
+#: aleksis/apps/alsijil/models.py:56 aleksis/apps/alsijil/models.py:444
+#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:529
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Name"
 msgstr "Name"
 
-#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:60 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr "Als abwesend zählen"
 
-#: aleksis/apps/alsijil/models.py:57
+#: aleksis/apps/alsijil/models.py:62
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
-msgstr ""
-"Wenn ausgewählt wird diese Entschuldigungsart als eine verpasste Stunde "
-"gezählt. Wenn nicht ausgewählt wird es nicht im Abwesenheitsbericht "
-"auftauchen."
+msgstr "Wenn ausgewählt wird diese Entschuldigungsart als eine verpasste Stunde gezählt. Wenn nicht ausgewählt wird es nicht im Abwesenheitsbericht auftauchen."
 
-#: aleksis/apps/alsijil/models.py:233 aleksis/apps/alsijil/models.py:332
+#: aleksis/apps/alsijil/models.py:238 aleksis/apps/alsijil/models.py:337
 msgid "Year"
 msgstr "Jahr"
 
-#: aleksis/apps/alsijil/models.py:292
+#: aleksis/apps/alsijil/models.py:297
 msgid "Personal note"
 msgstr "Persönliche Notiz"
 
-#: aleksis/apps/alsijil/models.py:293
+#: aleksis/apps/alsijil/models.py:298
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:22
 msgid "Personal notes"
 msgstr "Persönliche Notizen"
 
-#: aleksis/apps/alsijil/models.py:344
+#: aleksis/apps/alsijil/models.py:349
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:26
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:49
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:421
 msgid "Lesson topic"
 msgstr "Stundenthema"
 
-#: aleksis/apps/alsijil/models.py:345
+#: aleksis/apps/alsijil/models.py:350
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:133
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:269
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:347
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:34
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:57
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:422
 msgid "Homework"
 msgstr "Hausaufgaben"
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:134
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:275
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:351
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:65
 msgid "Group note"
 msgstr "Gruppennotiz"
 
-#: aleksis/apps/alsijil/models.py:396
+#: aleksis/apps/alsijil/models.py:358
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:73
+msgid "Done instructions"
+msgstr "Durchgeführte Belehrungen"
+
+#: aleksis/apps/alsijil/models.py:409
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr "Stunden-Dokumentation"
 
-#: aleksis/apps/alsijil/models.py:397
+#: aleksis/apps/alsijil/models.py:410
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr "Stunden-Dokumentationen"
 
-#: aleksis/apps/alsijil/models.py:442
+#: aleksis/apps/alsijil/models.py:455
 msgid "Extra mark"
 msgstr "Zusätzliche Markierung"
 
-#: aleksis/apps/alsijil/models.py:456
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/models.py:530
 msgid "Icon"
 msgstr "Symbol"
 
-#: aleksis/apps/alsijil/models.py:457
+#: aleksis/apps/alsijil/models.py:470
 msgid "Colour"
 msgstr "Farbe"
 
-#: aleksis/apps/alsijil/models.py:463 aleksis/apps/alsijil/models.py:478
+#: aleksis/apps/alsijil/models.py:476 aleksis/apps/alsijil/models.py:491
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Gruppenrolle"
 
-#: aleksis/apps/alsijil/models.py:464
+#: aleksis/apps/alsijil/models.py:477
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:34
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr "Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:468
+#: aleksis/apps/alsijil/models.py:481
 msgid "Can assign group role"
 msgstr "Kann Gruppenrolle zuweisen"
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:497
 msgid "Assigned person"
 msgstr "Zugewiesene Person"
 
-#: aleksis/apps/alsijil/models.py:489 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:502 aleksis/apps/alsijil/models.py:540
+#: aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:246
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:326
 msgid "Groups"
 msgstr "Gruppen"
 
-#: aleksis/apps/alsijil/models.py:496
+#: aleksis/apps/alsijil/models.py:509
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Kann frei gelassen werden, wenn das Enddatum noch nicht feststeht"
 
-#: aleksis/apps/alsijil/models.py:511
+#: aleksis/apps/alsijil/models.py:524
 msgid "Group role assignment"
 msgstr "Zuweisung von Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:512
+#: aleksis/apps/alsijil/models.py:525
 msgid "Group role assignments"
 msgstr "Zuweisungen von Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:519
+#: aleksis/apps/alsijil/models.py:533
+msgid "PDF file"
+msgstr "PDF-Datei"
+
+#: aleksis/apps/alsijil/models.py:542
+msgid "The instruction will be shown for the members and owners of the selected groups. Leave empty to show for all groups."
+msgstr "Die Belehrung wird für die die Mitglieder und Besitzer der ausgewählten Gruppen angezeigt werden. Frei lassen, um sie für alle Gruppen anzuzeigen."
+
+#: aleksis/apps/alsijil/models.py:552
+msgid "Instruction"
+msgstr "Belehrung"
+
+#: aleksis/apps/alsijil/models.py:565
 msgid "Can view lesson overview"
 msgstr "Kann die Stundenübersicht sehen"
 
-#: aleksis/apps/alsijil/models.py:520
+#: aleksis/apps/alsijil/models.py:566
 msgid "Can view week overview"
 msgstr "Kann die Wochenübersicht sehen"
 
-#: aleksis/apps/alsijil/models.py:521
+#: aleksis/apps/alsijil/models.py:567
 msgid "Can view full register"
 msgstr "Kann komplettes Klassenbuch sehen"
 
-#: aleksis/apps/alsijil/models.py:522
+#: aleksis/apps/alsijil/models.py:568
 msgid "Can register absence"
 msgstr "Kann eine Absenz registrieren"
 
-#: aleksis/apps/alsijil/models.py:523
+#: aleksis/apps/alsijil/models.py:569
 msgid "Can list all personal note filters"
 msgstr "Kann alle Filter für persönliche Notizen anzeigen"
 
@@ -498,9 +519,7 @@ msgstr "Erlaube Primärgruppeninhabern Absenzen in der Zukunft für Mitglieder i
 
 #: aleksis/apps/alsijil/preferences.py:44
 msgid "Grant the owner of a parent group the same privileges as the owners of the respective child groups"
-msgstr ""
-"Gebe dem Besitzer einer Elterngruppe die gleichen Rechte wie den Besitzern "
-"der entsprechenden Kindgruppen"
+msgstr "Gebe dem Besitzer einer Elterngruppe die gleichen Rechte wie den Besitzern der entsprechenden Kindgruppen"
 
 #: aleksis/apps/alsijil/preferences.py:54
 msgid "Allow original teachers to edit their lessons although they are substituted"
@@ -516,15 +535,11 @@ msgstr "Dies wird die Daten nur übernehmen, wenn die Daten in den Folgestunden
 
 #: aleksis/apps/alsijil/preferences.py:75
 msgid "Allow carrying over data from any lesson period to all other lesson                 periods with the same lesson and in the same week"
-msgstr ""
-"Erlaube das Ãœbernehmen von Daten von einer Stunde zu allen weiteren Stunden "
-"mit dem gleichen Unterricht in der gleichen Woche"
+msgstr "Erlaube das Ãœbernehmen von Daten von einer Stunde zu allen weiteren Stunden mit dem gleichen Unterricht in der gleichen Woche"
 
 #: aleksis/apps/alsijil/preferences.py:79
 msgid "This will carry over data only if the data in the aforementioned periods are empty."
-msgstr ""
-"Dies wird die Daten nur übernehmen, wenn die Daten in den eben genannten "
-"Stunden leer sind."
+msgstr "Dies wird die Daten nur übernehmen, wenn die Daten in den eben genannten Stunden leer sind."
 
 #: aleksis/apps/alsijil/preferences.py:88
 msgid "Carry over personal notes to all following lesson periods on the same day."
@@ -573,6 +588,7 @@ msgstr "Stunden standardmäßig anhand der Existenz ihrer Stundendokumentation f
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
 #: aleksis/apps/alsijil/tables.py:72
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:74
 msgid "Edit"
 msgstr "Bearbeiten"
 
@@ -807,6 +823,7 @@ msgid "Close"
 msgstr "Schließen"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:49
 msgid "Filter"
 msgstr "Filtern"
 
@@ -1011,6 +1028,33 @@ msgstr ""
 msgid "Stop"
 msgstr "Beenden"
 
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:37
+msgid "Create instruction"
+msgstr "Belehrung erstellen"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:7
+msgid "Edit instruction"
+msgstr "Belehrung bearbeiten"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:15
+msgid "All instructions"
+msgstr "Alle Belehrungen"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:43
+msgid "Filter instructions"
+msgstr "Belehrungen filtern"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:53
+msgid "Reset filter"
+msgstr "Filter zurücksetzen"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:86
+msgid "Show PDF file with instruction"
+msgstr "PDF-Datei mit Belehrung anzeigen"
+
 #: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
 msgid "Please check if the following class register entries are complete and correct:"
 msgstr "Bitte prüfen Sie, ob die folgenden Klassenbucheinträge komplett und richtig sind:"
@@ -1114,6 +1158,14 @@ msgstr ""
 "        Nächste %(subject)s Stunde\n"
 "      "
 
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:31
+msgid "Instruction done"
+msgstr "Belehrung durchgeführt"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:81
+msgid "Instruction done in this lesson"
+msgstr "Belehrung in dieser Stunde durchgeführt"
+
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
 msgid "Change history"
 msgstr "Veränderungen"
@@ -1164,10 +1216,8 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Dieser Sitzplan wurde von der Elterngruppe von %(child_group)s "
-"übernommen.\n"
-"Wenn Sie wollen, können Sie ihn für Ihre Gruppe übernehmen und dann anpassen."
-"\n"
+"            Dieser Sitzplan wurde von der Elterngruppe von %(child_group)s übernommen.\n"
+"Wenn Sie wollen, können Sie ihn für Ihre Gruppe übernehmen und dann anpassen.\n"
 "          "
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/seating_plan.html:30
@@ -1190,8 +1240,7 @@ msgid ""
 "                "
 msgstr ""
 "\n"
-"                  Einen neuen Sitzplan für %(group)s (%(subject)s) in %(room)"
-"s erstellen\n"
+"                  Einen neuen Sitzplan für %(group)s (%(subject)s) in %(room)s erstellen\n"
 "                "
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/seating_plan.html:78
@@ -1202,8 +1251,7 @@ msgid ""
 "                  "
 msgstr ""
 "\n"
-"                    Einen neuen Sitzplan für %(group)s in %(room)s "
-"erstellen\n"
+"                    Einen neuen Sitzplan für %(group)s in %(room)s erstellen\n"
 "                  "
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:6
@@ -1455,84 +1503,96 @@ msgstr "KW"
 msgid "Notes"
 msgstr "Notizen"
 
-#: aleksis/apps/alsijil/views.py:118
+#: aleksis/apps/alsijil/views.py:122
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 "Sie haben eine ungültige Stunde ausgewählt oder es\n"
 "      läuft momentan keine Stunde."
 
-#: aleksis/apps/alsijil/views.py:151
+#: aleksis/apps/alsijil/views.py:155
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr "Ihnen ist es nicht erlaubt, eine Eintragung für eine Unterrichtsstunde in der Zukunft vorzunehmen."
 
-#: aleksis/apps/alsijil/views.py:268
+#: aleksis/apps/alsijil/views.py:278
 msgid "The lesson documentation has been saved."
 msgstr "Die Stunden-Dokumentation wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:302
+#: aleksis/apps/alsijil/views.py:312
 msgid "The personal notes have been saved."
 msgstr "Die persönlichen Notizen wurden gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The absence has been saved."
 msgstr "Die Abwesenheit wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1140
+#: aleksis/apps/alsijil/views.py:1150
 msgid "The personal note has been deleted."
 msgstr "Die persönliche Notiz wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1172
 msgid "The extra mark has been created."
 msgstr "Die zusätzliche Markierung wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1184
 msgid "The extra mark has been saved."
 msgstr "Die zusätzliche Markierung wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1195
 msgid "The extra mark has been deleted."
 msgstr "Die zusätzliche Markierung wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1206
+#: aleksis/apps/alsijil/views.py:1216
 msgid "The excuse type has been created."
 msgstr "Die Entschuldigungsart wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1218
+#: aleksis/apps/alsijil/views.py:1228
 msgid "The excuse type has been saved."
 msgstr "Die Entschuldigunsart wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1229
+#: aleksis/apps/alsijil/views.py:1239
 msgid "The excuse type has been deleted."
 msgstr "Die Entschuldigungsart wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1260
 msgid "The group role has been created."
 msgstr "Die Gruppenrolle wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1262
+#: aleksis/apps/alsijil/views.py:1272
 msgid "The group role has been saved."
 msgstr "Die Gruppenrolle wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1273
+#: aleksis/apps/alsijil/views.py:1283
 msgid "The group role has been deleted."
 msgstr "Die Gruppenrolle wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1306 aleksis/apps/alsijil/views.py:1338
+#: aleksis/apps/alsijil/views.py:1316 aleksis/apps/alsijil/views.py:1348
 msgid "The group role has been assigned."
 msgstr "Die Gruppenrolle wurde zugewiesen."
 
-#: aleksis/apps/alsijil/views.py:1357
+#: aleksis/apps/alsijil/views.py:1367
 msgid "The group role assignment has been saved."
 msgstr "Die Gruppenrollenzuweisung wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1378
+#: aleksis/apps/alsijil/views.py:1388
 msgid "The group role assignment has been stopped."
 msgstr "Die Gruppenrollenzuweisung wurde beendet."
 
-#: aleksis/apps/alsijil/views.py:1391
+#: aleksis/apps/alsijil/views.py:1401
 msgid "The group role assignment has been deleted."
 msgstr "Die Gruppenrollenzuweisung wurde gelöscht."
 
+#: aleksis/apps/alsijil/views.py:1543
+msgid "The instruction has been created."
+msgstr "Die Belehrung wurde erstellt."
+
+#: aleksis/apps/alsijil/views.py:1555
+msgid "The instruction has been saved."
+msgstr "Die Belehrung wurde gespeichert."
+
+#: aleksis/apps/alsijil/views.py:1566
+msgid "The instruction has been deleted."
+msgstr "Die Belehrung wurde gelöscht."
+
 #~ msgid "Excused absences"
 #~ msgstr "Entschuldigte Fehlzeiten"
 
diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
index e1a4b25dc..30ae264b9 100644
--- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-25 15:28+0200\n"
+"POT-Creation-Date: 2022-08-15 10:22+0200\n"
 "PO-Revision-Date: 2021-06-16 11:59+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/fr/>\n"
@@ -36,6 +36,7 @@ msgstr ""
 #: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:80
 msgid "Delete"
 msgstr ""
 
@@ -122,7 +123,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:349
+#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:352
 #: aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:227
@@ -143,55 +144,55 @@ msgstr "Retard"
 msgid "Tardiness is bigger than"
 msgstr "Retard"
 
-#: aleksis/apps/alsijil/forms.py:47
+#: aleksis/apps/alsijil/forms.py:50
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:53
+#: aleksis/apps/alsijil/forms.py:56
 msgid "Carry over data to all other lessons with the same subject in this week"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:98 aleksis/apps/alsijil/forms.py:256
-#: aleksis/apps/alsijil/forms.py:348
+#: aleksis/apps/alsijil/forms.py:101 aleksis/apps/alsijil/forms.py:259
+#: aleksis/apps/alsijil/forms.py:351
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:219
 msgid "Group"
 msgstr "groupe"
 
-#: aleksis/apps/alsijil/forms.py:104
+#: aleksis/apps/alsijil/forms.py:107
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:190
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:221
 msgid "Teacher"
 msgstr "prof"
 
-#: aleksis/apps/alsijil/forms.py:121
+#: aleksis/apps/alsijil/forms.py:124
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:192 aleksis/apps/alsijil/forms.py:350
-#: aleksis/apps/alsijil/models.py:491
+#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:353
+#: aleksis/apps/alsijil/models.py:504
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Date de début"
 
-#: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:351
-#: aleksis/apps/alsijil/models.py:495
+#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/forms.py:354
+#: aleksis/apps/alsijil/models.py:508
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Date de fin"
 
-#: aleksis/apps/alsijil/forms.py:194
+#: aleksis/apps/alsijil/forms.py:197
 #, fuzzy
 #| msgid "From period"
 msgid "Start period"
 msgstr "De la période"
 
-#: aleksis/apps/alsijil/forms.py:195
+#: aleksis/apps/alsijil/forms.py:198
 #, fuzzy
 #| msgid "From period"
 msgid "End period"
 msgstr "De la période"
 
-#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:117
 #: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
@@ -201,7 +202,7 @@ msgstr "De la période"
 msgid "Absent"
 msgstr "Absent(e)"
 
-#: aleksis/apps/alsijil/forms.py:197 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:200 aleksis/apps/alsijil/tables.py:146
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
@@ -211,8 +212,8 @@ msgstr "Absent(e)"
 msgid "Excused"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/models.py:71
-#: aleksis/apps/alsijil/models.py:253
+#: aleksis/apps/alsijil/forms.py:202 aleksis/apps/alsijil/models.py:76
+#: aleksis/apps/alsijil/models.py:258
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:73
 #, fuzzy
@@ -220,25 +221,25 @@ msgstr "Excusé"
 msgid "Excuse type"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/forms.py:204
+#: aleksis/apps/alsijil/forms.py:207
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:34
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:94
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:354
 msgid "Remarks"
 msgstr "Remarque"
 
-#: aleksis/apps/alsijil/forms.py:269
+#: aleksis/apps/alsijil/forms.py:272
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 msgid "Person"
 msgstr "Personne"
 
-#: aleksis/apps/alsijil/forms.py:346
+#: aleksis/apps/alsijil/forms.py:349
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:347
+#: aleksis/apps/alsijil/forms.py:350
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Has lesson documentation"
@@ -289,7 +290,14 @@ msgstr "Vue d'ensemble personnelle"
 msgid "My students"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:71
+#: aleksis/apps/alsijil/menus.py:71 aleksis/apps/alsijil/models.py:553
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:24
+msgid "Instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/menus.py:82
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:11
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:18
 #, fuzzy
@@ -297,13 +305,13 @@ msgstr ""
 msgid "Assign group role"
 msgstr "Personnes en groupe"
 
-#: aleksis/apps/alsijil/menus.py:82
+#: aleksis/apps/alsijil/menus.py:93
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:5
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:8
 msgid "All lessons"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:93 aleksis/apps/alsijil/models.py:72
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:77
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
@@ -312,8 +320,8 @@ msgstr ""
 msgid "Excuse types"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:258
-#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/tables.py:120
+#: aleksis/apps/alsijil/menus.py:115 aleksis/apps/alsijil/models.py:263
+#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
@@ -323,7 +331,7 @@ msgstr "Excusé"
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:115
+#: aleksis/apps/alsijil/menus.py:126
 msgid "Manage group roles"
 msgstr ""
 
@@ -377,79 +385,85 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr "Registre de la classe"
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:430
+#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/models.py:443
 #, fuzzy
 #| msgid "First name"
 msgid "Short name"
 msgstr "Prénom"
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:431
-#: aleksis/apps/alsijil/models.py:455
+#: aleksis/apps/alsijil/models.py:56 aleksis/apps/alsijil/models.py:444
+#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:529
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:60 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:57
+#: aleksis/apps/alsijil/models.py:62
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:233 aleksis/apps/alsijil/models.py:332
+#: aleksis/apps/alsijil/models.py:238 aleksis/apps/alsijil/models.py:337
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:292
+#: aleksis/apps/alsijil/models.py:297
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal note"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:293
+#: aleksis/apps/alsijil/models.py:298
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:22
 msgid "Personal notes"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:344
+#: aleksis/apps/alsijil/models.py:349
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:26
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:49
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:421
 msgid "Lesson topic"
 msgstr "Sujet de cours"
 
-#: aleksis/apps/alsijil/models.py:345
+#: aleksis/apps/alsijil/models.py:350
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:133
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:269
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:347
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:34
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:57
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:422
 msgid "Homework"
 msgstr "Devoirs"
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:134
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:275
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:351
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:65
 #, fuzzy
 #| msgid "Group"
 msgid "Group note"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:396
+#: aleksis/apps/alsijil/models.py:358
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:73
+msgid "Done instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:409
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:397
+#: aleksis/apps/alsijil/models.py:410
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 #, fuzzy
@@ -457,26 +471,26 @@ msgstr "Documentation de cours"
 msgid "Lesson documentations"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:442
+#: aleksis/apps/alsijil/models.py:455
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:456
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/models.py:530
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:457
+#: aleksis/apps/alsijil/models.py:470
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:463 aleksis/apps/alsijil/models.py:478
+#: aleksis/apps/alsijil/models.py:476 aleksis/apps/alsijil/models.py:491
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 #, fuzzy
 #| msgid "Group"
 msgid "Group role"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:464
+#: aleksis/apps/alsijil/models.py:477
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:34
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -485,19 +499,20 @@ msgstr "Groupe"
 msgid "Group roles"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:468
+#: aleksis/apps/alsijil/models.py:481
 #, fuzzy
 #| msgid "Persons in group"
 msgid "Can assign group role"
 msgstr "Personnes en groupe"
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:497
 #, fuzzy
 #| msgid "Absences"
 msgid "Assigned person"
 msgstr "Absences"
 
-#: aleksis/apps/alsijil/models.py:489 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:502 aleksis/apps/alsijil/models.py:540
+#: aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:246
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:326
@@ -506,41 +521,53 @@ msgstr "Absences"
 msgid "Groups"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:496
+#: aleksis/apps/alsijil/models.py:509
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:511
+#: aleksis/apps/alsijil/models.py:524
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:512
+#: aleksis/apps/alsijil/models.py:525
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:519
+#: aleksis/apps/alsijil/models.py:533
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:542
+msgid "The instruction will be shown for the members and owners of the selected groups. Leave empty to show for all groups."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:552
+msgid "Instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:565
 #, fuzzy
 #| msgid "Personal overview"
 msgid "Can view lesson overview"
 msgstr "Vue d'ensemble personnelle"
 
-#: aleksis/apps/alsijil/models.py:520
+#: aleksis/apps/alsijil/models.py:566
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:521
+#: aleksis/apps/alsijil/models.py:567
 #, fuzzy
 #| msgid "Class register"
 msgid "Can view full register"
 msgstr "Registre de la classe"
 
-#: aleksis/apps/alsijil/models.py:522
+#: aleksis/apps/alsijil/models.py:568
 #, fuzzy
 #| msgid "Register absence"
 msgid "Can register absence"
 msgstr "Registre de Absence"
 
-#: aleksis/apps/alsijil/models.py:523
+#: aleksis/apps/alsijil/models.py:569
 #, fuzzy
 #| msgid "List of all personal note filters"
 msgid "Can list all personal note filters"
@@ -631,6 +658,7 @@ msgstr ""
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
 #: aleksis/apps/alsijil/tables.py:72
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:74
 msgid "Edit"
 msgstr ""
 
@@ -883,6 +911,7 @@ msgid "Close"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:49
 msgid "Filter"
 msgstr ""
 
@@ -1096,6 +1125,37 @@ msgstr ""
 msgid "Stop"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:37
+msgid "Create instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:7
+msgid "Edit instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:15
+msgid "All instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:43
+#, fuzzy
+#| msgid "Relevant personal notes"
+msgid "Filter instructions"
+msgstr "Notes personnelles importantes"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:53
+#, fuzzy
+#| msgid "Lesson start"
+msgid "Reset filter"
+msgstr "Début de cours"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:86
+msgid "Show PDF file with instruction"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
 msgid "Please check if the following class register entries are complete and correct:"
 msgstr ""
@@ -1197,6 +1257,14 @@ msgid ""
 "      "
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:31
+msgid "Instruction done"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:81
+msgid "Instruction done in this lesson"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
 msgid "Change history"
 msgstr "Changement d' histoire"
@@ -1532,104 +1600,122 @@ msgstr "Vue de semaine"
 msgid "Notes"
 msgstr "Notes"
 
-#: aleksis/apps/alsijil/views.py:118
+#: aleksis/apps/alsijil/views.py:122
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:151
+#: aleksis/apps/alsijil/views.py:155
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:268
+#: aleksis/apps/alsijil/views.py:278
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The lesson documentation has been saved."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:302
+#: aleksis/apps/alsijil/views.py:312
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1140
+#: aleksis/apps/alsijil/views.py:1150
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The personal note has been deleted."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1172
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The extra mark has been created."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1184
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The extra mark has been saved."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1195
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1206
+#: aleksis/apps/alsijil/views.py:1216
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218
+#: aleksis/apps/alsijil/views.py:1228
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1229
+#: aleksis/apps/alsijil/views.py:1239
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1260
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role has been created."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1262
+#: aleksis/apps/alsijil/views.py:1272
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role has been saved."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1273
+#: aleksis/apps/alsijil/views.py:1283
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role has been deleted."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1306 aleksis/apps/alsijil/views.py:1338
+#: aleksis/apps/alsijil/views.py:1316 aleksis/apps/alsijil/views.py:1348
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role has been assigned."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1357
+#: aleksis/apps/alsijil/views.py:1367
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role assignment has been saved."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1378
+#: aleksis/apps/alsijil/views.py:1388
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role assignment has been stopped."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1391
+#: aleksis/apps/alsijil/views.py:1401
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role assignment has been deleted."
 msgstr "Documentation de cours pour la semaine calendrier"
 
+#: aleksis/apps/alsijil/views.py:1543
+#, fuzzy
+#| msgid "Lesson documentation for calendar week"
+msgid "The instruction has been created."
+msgstr "Documentation de cours pour la semaine calendrier"
+
+#: aleksis/apps/alsijil/views.py:1555
+#, fuzzy
+#| msgid "Lesson documentation for calendar week"
+msgid "The instruction has been saved."
+msgstr "Documentation de cours pour la semaine calendrier"
+
+#: aleksis/apps/alsijil/views.py:1566
+#, fuzzy
+#| msgid "Lesson documentation for calendar week"
+msgid "The instruction has been deleted."
+msgstr "Documentation de cours pour la semaine calendrier"
+
 #, fuzzy
 #~| msgid "Unexcused"
 #~ msgid "Excused absences"
diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
index 482b187e4..e79cf9a33 100644
--- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-25 15:28+0200\n"
+"POT-Creation-Date: 2022-08-15 10:22+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"
@@ -34,6 +34,7 @@ msgstr ""
 #: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:80
 msgid "Delete"
 msgstr ""
 
@@ -110,7 +111,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:349
+#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:352
 #: aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:227
@@ -127,51 +128,51 @@ msgstr ""
 msgid "Tardiness is bigger than"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:47
+#: aleksis/apps/alsijil/forms.py:50
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:53
+#: aleksis/apps/alsijil/forms.py:56
 msgid "Carry over data to all other lessons with the same subject in this week"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:98 aleksis/apps/alsijil/forms.py:256
-#: aleksis/apps/alsijil/forms.py:348
+#: aleksis/apps/alsijil/forms.py:101 aleksis/apps/alsijil/forms.py:259
+#: aleksis/apps/alsijil/forms.py:351
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:219
 msgid "Group"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/forms.py:104
+#: aleksis/apps/alsijil/forms.py:107
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:190
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:221
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:121
+#: aleksis/apps/alsijil/forms.py:124
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:192 aleksis/apps/alsijil/forms.py:350
-#: aleksis/apps/alsijil/models.py:491
+#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:353
+#: aleksis/apps/alsijil/models.py:504
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:351
-#: aleksis/apps/alsijil/models.py:495
+#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/forms.py:354
+#: aleksis/apps/alsijil/models.py:508
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:194
+#: aleksis/apps/alsijil/forms.py:197
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:195
+#: aleksis/apps/alsijil/forms.py:198
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:117
 #: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
@@ -181,7 +182,7 @@ msgstr ""
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:197 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:200 aleksis/apps/alsijil/tables.py:146
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
@@ -191,32 +192,32 @@ msgstr ""
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/models.py:71
-#: aleksis/apps/alsijil/models.py:253
+#: aleksis/apps/alsijil/forms.py:202 aleksis/apps/alsijil/models.py:76
+#: aleksis/apps/alsijil/models.py:258
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:73
 msgid "Excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:204
+#: aleksis/apps/alsijil/forms.py:207
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:34
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:94
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:354
 msgid "Remarks"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:269
+#: aleksis/apps/alsijil/forms.py:272
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 msgid "Person"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/forms.py:346
+#: aleksis/apps/alsijil/forms.py:349
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:347
+#: aleksis/apps/alsijil/forms.py:350
 msgid "Has lesson documentation"
 msgstr ""
 
@@ -263,27 +264,34 @@ msgstr ""
 msgid "My students"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:71
+#: aleksis/apps/alsijil/menus.py:71 aleksis/apps/alsijil/models.py:553
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:24
+msgid "Instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/menus.py:82
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:11
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:18
 msgid "Assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:82
+#: aleksis/apps/alsijil/menus.py:93
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:5
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:8
 msgid "All lessons"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:93 aleksis/apps/alsijil/models.py:72
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:77
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:258
-#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/tables.py:120
+#: aleksis/apps/alsijil/menus.py:115 aleksis/apps/alsijil/models.py:263
+#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
@@ -293,7 +301,7 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:115
+#: aleksis/apps/alsijil/menus.py:126
 msgid "Manage group roles"
 msgstr ""
 
@@ -337,104 +345,110 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:430
+#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/models.py:443
 #, fuzzy
 #| msgid "First name"
 msgid "Short name"
 msgstr "Primus nomen"
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:431
-#: aleksis/apps/alsijil/models.py:455
+#: aleksis/apps/alsijil/models.py:56 aleksis/apps/alsijil/models.py:444
+#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:529
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:60 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:57
+#: aleksis/apps/alsijil/models.py:62
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:233 aleksis/apps/alsijil/models.py:332
+#: aleksis/apps/alsijil/models.py:238 aleksis/apps/alsijil/models.py:337
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:292
+#: aleksis/apps/alsijil/models.py:297
 #, fuzzy
 #| msgid "Person"
 msgid "Personal note"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/models.py:293
+#: aleksis/apps/alsijil/models.py:298
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:22
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:344
+#: aleksis/apps/alsijil/models.py:349
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:26
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:49
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:421
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:345
+#: aleksis/apps/alsijil/models.py:350
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:133
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:269
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:347
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:34
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:57
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:422
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:134
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:275
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:351
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:65
 #, fuzzy
 #| msgid "Group"
 msgid "Group note"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:396
+#: aleksis/apps/alsijil/models.py:358
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:73
+msgid "Done instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:409
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:397
+#: aleksis/apps/alsijil/models.py:410
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:442
+#: aleksis/apps/alsijil/models.py:455
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:456
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/models.py:530
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:457
+#: aleksis/apps/alsijil/models.py:470
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:463 aleksis/apps/alsijil/models.py:478
+#: aleksis/apps/alsijil/models.py:476 aleksis/apps/alsijil/models.py:491
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 #, fuzzy
 #| msgid "Group"
 msgid "Group role"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:464
+#: aleksis/apps/alsijil/models.py:477
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:34
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -443,15 +457,16 @@ msgstr "Grex"
 msgid "Group roles"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:468
+#: aleksis/apps/alsijil/models.py:481
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:497
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:489 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:502 aleksis/apps/alsijil/models.py:540
+#: aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:246
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:326
@@ -460,35 +475,47 @@ msgstr ""
 msgid "Groups"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:496
+#: aleksis/apps/alsijil/models.py:509
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:511
+#: aleksis/apps/alsijil/models.py:524
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:512
+#: aleksis/apps/alsijil/models.py:525
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:519
+#: aleksis/apps/alsijil/models.py:533
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:542
+msgid "The instruction will be shown for the members and owners of the selected groups. Leave empty to show for all groups."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:552
+msgid "Instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:565
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:520
+#: aleksis/apps/alsijil/models.py:566
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:521
+#: aleksis/apps/alsijil/models.py:567
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:522
+#: aleksis/apps/alsijil/models.py:568
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:523
+#: aleksis/apps/alsijil/models.py:569
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -575,6 +602,7 @@ msgstr ""
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
 #: aleksis/apps/alsijil/tables.py:72
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:74
 msgid "Edit"
 msgstr ""
 
@@ -797,6 +825,7 @@ msgid "Close"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:49
 msgid "Filter"
 msgstr ""
 
@@ -992,6 +1021,35 @@ msgstr ""
 msgid "Stop"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:37
+msgid "Create instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:7
+msgid "Edit instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:15
+msgid "All instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:43
+#, fuzzy
+#| msgid "Person"
+msgid "Filter instructions"
+msgstr "Persona"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:53
+msgid "Reset filter"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:86
+msgid "Show PDF file with instruction"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
 msgid "Please check if the following class register entries are complete and correct:"
 msgstr ""
@@ -1086,6 +1144,14 @@ msgid ""
 "      "
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:31
+msgid "Instruction done"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:81
+msgid "Instruction done in this lesson"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
 msgid "Change history"
 msgstr ""
@@ -1399,81 +1465,93 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:118
+#: aleksis/apps/alsijil/views.py:122
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:151
+#: aleksis/apps/alsijil/views.py:155
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:268
+#: aleksis/apps/alsijil/views.py:278
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:302
+#: aleksis/apps/alsijil/views.py:312
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1140
+#: aleksis/apps/alsijil/views.py:1150
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1172
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1184
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1195
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1206
+#: aleksis/apps/alsijil/views.py:1216
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218
+#: aleksis/apps/alsijil/views.py:1228
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1229
+#: aleksis/apps/alsijil/views.py:1239
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1260
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1262
+#: aleksis/apps/alsijil/views.py:1272
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1273
+#: aleksis/apps/alsijil/views.py:1283
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1306 aleksis/apps/alsijil/views.py:1338
+#: aleksis/apps/alsijil/views.py:1316 aleksis/apps/alsijil/views.py:1348
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1357
+#: aleksis/apps/alsijil/views.py:1367
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1378
+#: aleksis/apps/alsijil/views.py:1388
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1391
+#: aleksis/apps/alsijil/views.py:1401
 msgid "The group role assignment has been deleted."
 msgstr ""
 
+#: aleksis/apps/alsijil/views.py:1543
+msgid "The instruction has been created."
+msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1555
+msgid "The instruction has been saved."
+msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1566
+msgid "The instruction has been deleted."
+msgstr ""
+
 #~ msgid "Description"
 #~ msgstr "Descriptio"
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 90e59955c..d4a67263a 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: 2022-06-25 15:28+0200\n"
+"POT-Creation-Date: 2022-08-15 10:22+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"
@@ -33,6 +33,7 @@ msgstr ""
 #: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:80
 msgid "Delete"
 msgstr ""
 
@@ -109,7 +110,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:349
+#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:352
 #: aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:227
@@ -126,51 +127,51 @@ msgstr ""
 msgid "Tardiness is bigger than"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:47
+#: aleksis/apps/alsijil/forms.py:50
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:53
+#: aleksis/apps/alsijil/forms.py:56
 msgid "Carry over data to all other lessons with the same subject in this week"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:98 aleksis/apps/alsijil/forms.py:256
-#: aleksis/apps/alsijil/forms.py:348
+#: aleksis/apps/alsijil/forms.py:101 aleksis/apps/alsijil/forms.py:259
+#: aleksis/apps/alsijil/forms.py:351
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:219
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:104
+#: aleksis/apps/alsijil/forms.py:107
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:190
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:221
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:121
+#: aleksis/apps/alsijil/forms.py:124
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:192 aleksis/apps/alsijil/forms.py:350
-#: aleksis/apps/alsijil/models.py:491
+#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:353
+#: aleksis/apps/alsijil/models.py:504
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:351
-#: aleksis/apps/alsijil/models.py:495
+#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/forms.py:354
+#: aleksis/apps/alsijil/models.py:508
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:194
+#: aleksis/apps/alsijil/forms.py:197
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:195
+#: aleksis/apps/alsijil/forms.py:198
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:117
 #: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
@@ -180,7 +181,7 @@ msgstr ""
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:197 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:200 aleksis/apps/alsijil/tables.py:146
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
@@ -190,32 +191,32 @@ msgstr ""
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/models.py:71
-#: aleksis/apps/alsijil/models.py:253
+#: aleksis/apps/alsijil/forms.py:202 aleksis/apps/alsijil/models.py:76
+#: aleksis/apps/alsijil/models.py:258
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:73
 msgid "Excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:204
+#: aleksis/apps/alsijil/forms.py:207
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:34
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:94
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:354
 msgid "Remarks"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:269
+#: aleksis/apps/alsijil/forms.py:272
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:346
+#: aleksis/apps/alsijil/forms.py:349
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:347
+#: aleksis/apps/alsijil/forms.py:350
 msgid "Has lesson documentation"
 msgstr ""
 
@@ -260,27 +261,34 @@ msgstr ""
 msgid "My students"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:71
+#: aleksis/apps/alsijil/menus.py:71 aleksis/apps/alsijil/models.py:553
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:24
+msgid "Instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/menus.py:82
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:11
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:18
 msgid "Assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:82
+#: aleksis/apps/alsijil/menus.py:93
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:5
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:8
 msgid "All lessons"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:93 aleksis/apps/alsijil/models.py:72
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:77
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:258
-#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/tables.py:120
+#: aleksis/apps/alsijil/menus.py:115 aleksis/apps/alsijil/models.py:263
+#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
@@ -290,7 +298,7 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:115
+#: aleksis/apps/alsijil/menus.py:126
 msgid "Manage group roles"
 msgstr ""
 
@@ -334,146 +342,165 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:430
+#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/models.py:443
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:431
-#: aleksis/apps/alsijil/models.py:455
+#: aleksis/apps/alsijil/models.py:56 aleksis/apps/alsijil/models.py:444
+#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:529
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:60 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:57
+#: aleksis/apps/alsijil/models.py:62
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:233 aleksis/apps/alsijil/models.py:332
+#: aleksis/apps/alsijil/models.py:238 aleksis/apps/alsijil/models.py:337
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:292
+#: aleksis/apps/alsijil/models.py:297
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:293
+#: aleksis/apps/alsijil/models.py:298
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:22
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:344
+#: aleksis/apps/alsijil/models.py:349
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:26
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:49
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:421
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:345
+#: aleksis/apps/alsijil/models.py:350
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:133
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:269
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:347
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:34
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:57
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:422
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:134
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:275
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:351
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:65
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:396
+#: aleksis/apps/alsijil/models.py:358
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:73
+msgid "Done instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:409
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:397
+#: aleksis/apps/alsijil/models.py:410
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:442
+#: aleksis/apps/alsijil/models.py:455
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:456
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/models.py:530
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:457
+#: aleksis/apps/alsijil/models.py:470
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:463 aleksis/apps/alsijil/models.py:478
+#: aleksis/apps/alsijil/models.py:476 aleksis/apps/alsijil/models.py:491
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:464
+#: aleksis/apps/alsijil/models.py:477
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:34
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:468
+#: aleksis/apps/alsijil/models.py:481
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:497
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:489 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:502 aleksis/apps/alsijil/models.py:540
+#: aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:246
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:326
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:496
+#: aleksis/apps/alsijil/models.py:509
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:511
+#: aleksis/apps/alsijil/models.py:524
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:512
+#: aleksis/apps/alsijil/models.py:525
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:519
+#: aleksis/apps/alsijil/models.py:533
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:542
+msgid "The instruction will be shown for the members and owners of the selected groups. Leave empty to show for all groups."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:552
+msgid "Instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:565
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:520
+#: aleksis/apps/alsijil/models.py:566
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:521
+#: aleksis/apps/alsijil/models.py:567
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:522
+#: aleksis/apps/alsijil/models.py:568
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:523
+#: aleksis/apps/alsijil/models.py:569
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -560,6 +587,7 @@ msgstr ""
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
 #: aleksis/apps/alsijil/tables.py:72
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:74
 msgid "Edit"
 msgstr ""
 
@@ -778,6 +806,7 @@ msgid "Close"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:49
 msgid "Filter"
 msgstr ""
 
@@ -969,6 +998,33 @@ msgstr ""
 msgid "Stop"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:37
+msgid "Create instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:7
+msgid "Edit instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:15
+msgid "All instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:43
+msgid "Filter instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:53
+msgid "Reset filter"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:86
+msgid "Show PDF file with instruction"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
 msgid "Please check if the following class register entries are complete and correct:"
 msgstr ""
@@ -1063,6 +1119,14 @@ msgid ""
 "      "
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:31
+msgid "Instruction done"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:81
+msgid "Instruction done in this lesson"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
 msgid "Change history"
 msgstr ""
@@ -1374,78 +1438,90 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:118
+#: aleksis/apps/alsijil/views.py:122
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:151
+#: aleksis/apps/alsijil/views.py:155
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:268
+#: aleksis/apps/alsijil/views.py:278
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:302
+#: aleksis/apps/alsijil/views.py:312
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1140
+#: aleksis/apps/alsijil/views.py:1150
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1172
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1184
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1195
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1206
+#: aleksis/apps/alsijil/views.py:1216
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218
+#: aleksis/apps/alsijil/views.py:1228
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1229
+#: aleksis/apps/alsijil/views.py:1239
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1260
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1262
+#: aleksis/apps/alsijil/views.py:1272
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1273
+#: aleksis/apps/alsijil/views.py:1283
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1306 aleksis/apps/alsijil/views.py:1338
+#: aleksis/apps/alsijil/views.py:1316 aleksis/apps/alsijil/views.py:1348
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1357
+#: aleksis/apps/alsijil/views.py:1367
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1378
+#: aleksis/apps/alsijil/views.py:1388
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1391
+#: aleksis/apps/alsijil/views.py:1401
 msgid "The group role assignment has been deleted."
 msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1543
+msgid "The instruction has been created."
+msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1555
+msgid "The instruction has been saved."
+msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1566
+msgid "The instruction has been deleted."
+msgstr ""
diff --git a/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po
index c2b36728e..3619b388c 100644
--- a/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po
@@ -7,18 +7,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-25 15:28+0200\n"
+"POT-Creation-Date: 2022-08-15 10:22+0200\n"
 "PO-Revision-Date: 2022-07-03 02:56+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
-"Language-Team: Russian <https://translate.edugit.org/projects/aleksis/"
-"aleksis-app-alsijil/ru/>\n"
+"Language-Team: Russian <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/ru/>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
-"%100>=11 && n%100<=14)? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 "X-Generator: Weblate 4.12.1\n"
 
 #: aleksis/apps/alsijil/actions.py:18
@@ -37,6 +34,7 @@ msgstr "Отметить как {excuse_type.name}"
 #: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:80
 msgid "Delete"
 msgstr "Удалить"
 
@@ -113,7 +111,7 @@ msgstr "После"
 msgid "Before"
 msgstr "До"
 
-#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:349
+#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:352
 #: aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:227
@@ -130,51 +128,51 @@ msgstr "Опоздание меньше, чем на"
 msgid "Tardiness is bigger than"
 msgstr "Опоздание больше, чем на"
 
-#: aleksis/apps/alsijil/forms.py:47
+#: aleksis/apps/alsijil/forms.py:50
 msgid "Homework for the next lesson"
 msgstr "Домашняя работа на следующий урок"
 
-#: aleksis/apps/alsijil/forms.py:53
+#: aleksis/apps/alsijil/forms.py:56
 msgid "Carry over data to all other lessons with the same subject in this week"
 msgstr "Перенести данные на все другие уроки с тем же предметом на этой неделе"
 
-#: aleksis/apps/alsijil/forms.py:98 aleksis/apps/alsijil/forms.py:256
-#: aleksis/apps/alsijil/forms.py:348
+#: aleksis/apps/alsijil/forms.py:101 aleksis/apps/alsijil/forms.py:259
+#: aleksis/apps/alsijil/forms.py:351
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:219
 msgid "Group"
 msgstr "Группа"
 
-#: aleksis/apps/alsijil/forms.py:104
+#: aleksis/apps/alsijil/forms.py:107
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:190
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:221
 msgid "Teacher"
 msgstr "Преподаватель"
 
-#: aleksis/apps/alsijil/forms.py:121
+#: aleksis/apps/alsijil/forms.py:124
 msgid "You can't select a group and a teacher both."
 msgstr "Вы не можете одновременно выбрать группу и преподавателя."
 
-#: aleksis/apps/alsijil/forms.py:192 aleksis/apps/alsijil/forms.py:350
-#: aleksis/apps/alsijil/models.py:491
+#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:353
+#: aleksis/apps/alsijil/models.py:504
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Дата начала"
 
-#: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:351
-#: aleksis/apps/alsijil/models.py:495
+#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/forms.py:354
+#: aleksis/apps/alsijil/models.py:508
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Дата окончания"
 
-#: aleksis/apps/alsijil/forms.py:194
+#: aleksis/apps/alsijil/forms.py:197
 msgid "Start period"
 msgstr "Начало уроков"
 
-#: aleksis/apps/alsijil/forms.py:195
+#: aleksis/apps/alsijil/forms.py:198
 msgid "End period"
 msgstr "Окончание уроков"
 
-#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:117
 #: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
@@ -184,7 +182,7 @@ msgstr "Окончание уроков"
 msgid "Absent"
 msgstr "Отсутствует"
 
-#: aleksis/apps/alsijil/forms.py:197 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:200 aleksis/apps/alsijil/tables.py:146
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
@@ -194,32 +192,32 @@ msgstr "Отсутствует"
 msgid "Excused"
 msgstr "Уважительно"
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/models.py:71
-#: aleksis/apps/alsijil/models.py:253
+#: aleksis/apps/alsijil/forms.py:202 aleksis/apps/alsijil/models.py:76
+#: aleksis/apps/alsijil/models.py:258
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:73
 msgid "Excuse type"
 msgstr "Тип объяснительной записки"
 
-#: aleksis/apps/alsijil/forms.py:204
+#: aleksis/apps/alsijil/forms.py:207
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:34
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:94
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:354
 msgid "Remarks"
 msgstr "Замечания"
 
-#: aleksis/apps/alsijil/forms.py:269
+#: aleksis/apps/alsijil/forms.py:272
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 msgid "Person"
 msgstr "Физлицо"
 
-#: aleksis/apps/alsijil/forms.py:346
+#: aleksis/apps/alsijil/forms.py:349
 msgid "School term"
 msgstr "Учебный год"
 
-#: aleksis/apps/alsijil/forms.py:347
+#: aleksis/apps/alsijil/forms.py:350
 msgid "Has lesson documentation"
 msgstr "Имеет в наличии учебный материал"
 
@@ -264,27 +262,36 @@ msgstr "Мой обзор"
 msgid "My students"
 msgstr "Мои студенты"
 
-#: aleksis/apps/alsijil/menus.py:71
+#: aleksis/apps/alsijil/menus.py:71 aleksis/apps/alsijil/models.py:553
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:24
+#, fuzzy
+#| msgid "Actions"
+msgid "Instructions"
+msgstr "Действия"
+
+#: aleksis/apps/alsijil/menus.py:82
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:11
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:18
 msgid "Assign group role"
 msgstr "Назначить роль группы"
 
-#: aleksis/apps/alsijil/menus.py:82
+#: aleksis/apps/alsijil/menus.py:93
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:5
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:8
 msgid "All lessons"
 msgstr "Все уроки"
 
-#: aleksis/apps/alsijil/menus.py:93 aleksis/apps/alsijil/models.py:72
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:77
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr "Типы объяснительных"
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:258
-#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/tables.py:120
+#: aleksis/apps/alsijil/menus.py:115 aleksis/apps/alsijil/models.py:263
+#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
@@ -294,7 +301,7 @@ msgstr "Типы объяснительных"
 msgid "Extra marks"
 msgstr "Дополнительные отметки"
 
-#: aleksis/apps/alsijil/menus.py:115
+#: aleksis/apps/alsijil/menus.py:126
 msgid "Manage group roles"
 msgstr "Управление ролями групп"
 
@@ -338,146 +345,167 @@ msgstr "Может назначать роль группы для этой гр
 msgid "Can register an absence for a person"
 msgstr "Может регистрировать отсутствия"
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:430
+#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/models.py:443
 msgid "Short name"
 msgstr "Короткое имя"
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:431
-#: aleksis/apps/alsijil/models.py:455
+#: aleksis/apps/alsijil/models.py:56 aleksis/apps/alsijil/models.py:444
+#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:529
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Name"
 msgstr "Имя"
 
-#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:60 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr "Количество отсутствующих"
 
-#: aleksis/apps/alsijil/models.py:57
+#: aleksis/apps/alsijil/models.py:62
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr "Если отмечено, этот тип объяснительной будет засчитан как пропущенный урок. Если не отмечено, то без записи в отчет о пропусках."
 
-#: aleksis/apps/alsijil/models.py:233 aleksis/apps/alsijil/models.py:332
+#: aleksis/apps/alsijil/models.py:238 aleksis/apps/alsijil/models.py:337
 msgid "Year"
 msgstr "Год"
 
-#: aleksis/apps/alsijil/models.py:292
+#: aleksis/apps/alsijil/models.py:297
 msgid "Personal note"
 msgstr "Личная заметка"
 
-#: aleksis/apps/alsijil/models.py:293
+#: aleksis/apps/alsijil/models.py:298
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:22
 msgid "Personal notes"
 msgstr "Личные заметки"
 
-#: aleksis/apps/alsijil/models.py:344
+#: aleksis/apps/alsijil/models.py:349
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:26
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:49
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:421
 msgid "Lesson topic"
 msgstr "Тема урока"
 
-#: aleksis/apps/alsijil/models.py:345
+#: aleksis/apps/alsijil/models.py:350
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:133
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:269
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:347
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:34
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:57
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:422
 msgid "Homework"
 msgstr "Домашняя работа"
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:134
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:275
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:351
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:65
 msgid "Group note"
 msgstr "Групповая заметка"
 
-#: aleksis/apps/alsijil/models.py:396
+#: aleksis/apps/alsijil/models.py:358
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:73
+msgid "Done instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:409
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr "Учебный материал"
 
-#: aleksis/apps/alsijil/models.py:397
+#: aleksis/apps/alsijil/models.py:410
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr "Учебные материалы"
 
-#: aleksis/apps/alsijil/models.py:442
+#: aleksis/apps/alsijil/models.py:455
 msgid "Extra mark"
 msgstr "Дополнительная отметка"
 
-#: aleksis/apps/alsijil/models.py:456
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/models.py:530
 msgid "Icon"
 msgstr "Иконка"
 
-#: aleksis/apps/alsijil/models.py:457
+#: aleksis/apps/alsijil/models.py:470
 msgid "Colour"
 msgstr "Цвет"
 
-#: aleksis/apps/alsijil/models.py:463 aleksis/apps/alsijil/models.py:478
+#: aleksis/apps/alsijil/models.py:476 aleksis/apps/alsijil/models.py:491
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Роль группы"
 
-#: aleksis/apps/alsijil/models.py:464
+#: aleksis/apps/alsijil/models.py:477
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:34
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr "Роли групп"
 
-#: aleksis/apps/alsijil/models.py:468
+#: aleksis/apps/alsijil/models.py:481
 msgid "Can assign group role"
 msgstr "Может назначать роль группы"
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:497
 msgid "Assigned person"
 msgstr "Назначенное физлицо"
 
-#: aleksis/apps/alsijil/models.py:489 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:502 aleksis/apps/alsijil/models.py:540
+#: aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:246
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:326
 msgid "Groups"
 msgstr "Группы"
 
-#: aleksis/apps/alsijil/models.py:496
+#: aleksis/apps/alsijil/models.py:509
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Если нет точной конечной даты, можно оставить незаполненным"
 
-#: aleksis/apps/alsijil/models.py:511
+#: aleksis/apps/alsijil/models.py:524
 msgid "Group role assignment"
 msgstr "Назначение роли группы"
 
-#: aleksis/apps/alsijil/models.py:512
+#: aleksis/apps/alsijil/models.py:525
 msgid "Group role assignments"
 msgstr "Назначение ролей групп"
 
-#: aleksis/apps/alsijil/models.py:519
+#: aleksis/apps/alsijil/models.py:533
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:542
+msgid "The instruction will be shown for the members and owners of the selected groups. Leave empty to show for all groups."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:552
+#, fuzzy
+#| msgid "Substitution"
+msgid "Instruction"
+msgstr "Замена"
+
+#: aleksis/apps/alsijil/models.py:565
 msgid "Can view lesson overview"
 msgstr "Может просматривать обзор урока"
 
-#: aleksis/apps/alsijil/models.py:520
+#: aleksis/apps/alsijil/models.py:566
 msgid "Can view week overview"
 msgstr "Может просматривать недельный обзор"
 
-#: aleksis/apps/alsijil/models.py:521
+#: aleksis/apps/alsijil/models.py:567
 msgid "Can view full register"
 msgstr "Может просматривать весь журнал"
 
-#: aleksis/apps/alsijil/models.py:522
+#: aleksis/apps/alsijil/models.py:568
 msgid "Can register absence"
 msgstr "Может регистрировать отсутствие"
 
-#: aleksis/apps/alsijil/models.py:523
+#: aleksis/apps/alsijil/models.py:569
 msgid "Can list all personal note filters"
 msgstr "Может просматривать все фильтры личных заметок"
 
@@ -495,9 +523,7 @@ msgstr "Разрешить владельцам основных групп ре
 
 #: aleksis/apps/alsijil/preferences.py:44
 msgid "Grant the owner of a parent group the same privileges as the owners of the respective child groups"
-msgstr ""
-"Наделить владельца родительской группы такими же правами, как у владельца "
-"соответствующих дочерних групп"
+msgstr "Наделить владельца родительской группы такими же правами, как у владельца соответствующих дочерних групп"
 
 #: aleksis/apps/alsijil/preferences.py:54
 msgid "Allow original teachers to edit their lessons although they are substituted"
@@ -513,15 +539,11 @@ msgstr "Это перенесёт данные только в случае от
 
 #: aleksis/apps/alsijil/preferences.py:75
 msgid "Allow carrying over data from any lesson period to all other lesson                 periods with the same lesson and in the same week"
-msgstr ""
-"Разрешить перенос данных с любого урока на все такие же "
-"уроки                 с таким же номером в расписании на той же неделе"
+msgstr "Разрешить перенос данных с любого урока на все такие же уроки                 с таким же номером в расписании на той же неделе"
 
 #: aleksis/apps/alsijil/preferences.py:79
 msgid "This will carry over data only if the data in the aforementioned periods are empty."
-msgstr ""
-"Это перенесёт данные только если в упомянутых выше уроках данные не "
-"заполнены."
+msgstr "Это перенесёт данные только если в упомянутых выше уроках данные не заполнены."
 
 #: aleksis/apps/alsijil/preferences.py:88
 msgid "Carry over personal notes to all following lesson periods on the same day."
@@ -570,6 +592,7 @@ msgstr "По-умолчанию фильтровать уроки по нали
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
 #: aleksis/apps/alsijil/tables.py:72
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:74
 msgid "Edit"
 msgstr "Редактировать"
 
@@ -804,6 +827,7 @@ msgid "Close"
 msgstr "Закрыть"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:49
 msgid "Filter"
 msgstr "Фильтры"
 
@@ -1008,6 +1032,39 @@ msgstr ""
 msgid "Stop"
 msgstr "Стоп"
 
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:37
+msgid "Create instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:7
+msgid "Edit instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:15
+#, fuzzy
+#| msgid "Actions"
+msgid "All instructions"
+msgstr "Действия"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:43
+#, fuzzy
+#| msgid "Filter results"
+msgid "Filter instructions"
+msgstr "Результат фильтров"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:53
+#, fuzzy
+#| msgid "Lesson filter"
+msgid "Reset filter"
+msgstr "Фильтр уроков"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:86
+msgid "Show PDF file with instruction"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
 msgid "Please check if the following class register entries are complete and correct:"
 msgstr "Проверьте, пожалуйста, эти записи в классном журнале на полноту и корректность:"
@@ -1111,6 +1168,14 @@ msgstr ""
 "        Следующий урок %(subject)s\n"
 "      "
 
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:31
+msgid "Instruction done"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:81
+msgid "Instruction done in this lesson"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
 msgid "Change history"
 msgstr "Изменить историю"
@@ -1185,8 +1250,7 @@ msgid ""
 "                "
 msgstr ""
 "\n"
-"                  Создать новый план рассадки %(group)s (%(subject)s) в "
-"%(room)s\n"
+"                  Создать новый план рассадки %(group)s (%(subject)s) в %(room)s\n"
 "                "
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/seating_plan.html:78
@@ -1449,78 +1513,96 @@ msgstr "Неделя"
 msgid "Notes"
 msgstr "Заметки"
 
-#: aleksis/apps/alsijil/views.py:118
+#: aleksis/apps/alsijil/views.py:122
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr "Вы или выбрали неправильный урок, или сейчас урока нет."
 
-#: aleksis/apps/alsijil/views.py:151
+#: aleksis/apps/alsijil/views.py:155
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr "Вам нельзя создавать учебные материалы для уроков в будущем."
 
-#: aleksis/apps/alsijil/views.py:268
+#: aleksis/apps/alsijil/views.py:278
 msgid "The lesson documentation has been saved."
 msgstr "Учебный материал сохранён."
 
-#: aleksis/apps/alsijil/views.py:302
+#: aleksis/apps/alsijil/views.py:312
 msgid "The personal notes have been saved."
 msgstr "Личные заметки сохранены."
 
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The absence has been saved."
 msgstr "Отсутствие сохранено."
 
-#: aleksis/apps/alsijil/views.py:1140
+#: aleksis/apps/alsijil/views.py:1150
 msgid "The personal note has been deleted."
 msgstr "Личная заметка удалена."
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1172
 msgid "The extra mark has been created."
 msgstr "Дополнительная отметка создана."
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1184
 msgid "The extra mark has been saved."
 msgstr "Дополнительная отметка сохранена."
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1195
 msgid "The extra mark has been deleted."
 msgstr "Дополнительная отметка удалена."
 
-#: aleksis/apps/alsijil/views.py:1206
+#: aleksis/apps/alsijil/views.py:1216
 msgid "The excuse type has been created."
 msgstr "Тип объяснительной создан."
 
-#: aleksis/apps/alsijil/views.py:1218
+#: aleksis/apps/alsijil/views.py:1228
 msgid "The excuse type has been saved."
 msgstr "Тип объяснительной сохранён."
 
-#: aleksis/apps/alsijil/views.py:1229
+#: aleksis/apps/alsijil/views.py:1239
 msgid "The excuse type has been deleted."
 msgstr "Тип объяснительной удалён."
 
-#: aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1260
 msgid "The group role has been created."
 msgstr "Роль группы создана."
 
-#: aleksis/apps/alsijil/views.py:1262
+#: aleksis/apps/alsijil/views.py:1272
 msgid "The group role has been saved."
 msgstr "Роль группы сохранена."
 
-#: aleksis/apps/alsijil/views.py:1273
+#: aleksis/apps/alsijil/views.py:1283
 msgid "The group role has been deleted."
 msgstr "Роль группы удалена."
 
-#: aleksis/apps/alsijil/views.py:1306 aleksis/apps/alsijil/views.py:1338
+#: aleksis/apps/alsijil/views.py:1316 aleksis/apps/alsijil/views.py:1348
 msgid "The group role has been assigned."
 msgstr "Роль группы назначена."
 
-#: aleksis/apps/alsijil/views.py:1357
+#: aleksis/apps/alsijil/views.py:1367
 msgid "The group role assignment has been saved."
 msgstr "Назначение роли группы сохранено."
 
-#: aleksis/apps/alsijil/views.py:1378
+#: aleksis/apps/alsijil/views.py:1388
 msgid "The group role assignment has been stopped."
 msgstr "Назначение роли группы остановлено."
 
-#: aleksis/apps/alsijil/views.py:1391
+#: aleksis/apps/alsijil/views.py:1401
 msgid "The group role assignment has been deleted."
 msgstr "Назначение роли группы удалено."
+
+#: aleksis/apps/alsijil/views.py:1543
+#, fuzzy
+#| msgid "The group role has been created."
+msgid "The instruction has been created."
+msgstr "Роль группы создана."
+
+#: aleksis/apps/alsijil/views.py:1555
+#, fuzzy
+#| msgid "The absence has been saved."
+msgid "The instruction has been saved."
+msgstr "Отсутствие сохранено."
+
+#: aleksis/apps/alsijil/views.py:1566
+#, fuzzy
+#| msgid "The group role has been deleted."
+msgid "The instruction 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 90e59955c..d4a67263a 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: 2022-06-25 15:28+0200\n"
+"POT-Creation-Date: 2022-08-15 10:22+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"
@@ -33,6 +33,7 @@ msgstr ""
 #: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:80
 msgid "Delete"
 msgstr ""
 
@@ -109,7 +110,7 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:349
+#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:352
 #: aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:227
@@ -126,51 +127,51 @@ msgstr ""
 msgid "Tardiness is bigger than"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:47
+#: aleksis/apps/alsijil/forms.py:50
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:53
+#: aleksis/apps/alsijil/forms.py:56
 msgid "Carry over data to all other lessons with the same subject in this week"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:98 aleksis/apps/alsijil/forms.py:256
-#: aleksis/apps/alsijil/forms.py:348
+#: aleksis/apps/alsijil/forms.py:101 aleksis/apps/alsijil/forms.py:259
+#: aleksis/apps/alsijil/forms.py:351
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:219
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:104
+#: aleksis/apps/alsijil/forms.py:107
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:190
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:221
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:121
+#: aleksis/apps/alsijil/forms.py:124
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:192 aleksis/apps/alsijil/forms.py:350
-#: aleksis/apps/alsijil/models.py:491
+#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:353
+#: aleksis/apps/alsijil/models.py:504
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:351
-#: aleksis/apps/alsijil/models.py:495
+#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/forms.py:354
+#: aleksis/apps/alsijil/models.py:508
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:194
+#: aleksis/apps/alsijil/forms.py:197
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:195
+#: aleksis/apps/alsijil/forms.py:198
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:117
 #: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
@@ -180,7 +181,7 @@ msgstr ""
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:197 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:200 aleksis/apps/alsijil/tables.py:146
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
@@ -190,32 +191,32 @@ msgstr ""
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/models.py:71
-#: aleksis/apps/alsijil/models.py:253
+#: aleksis/apps/alsijil/forms.py:202 aleksis/apps/alsijil/models.py:76
+#: aleksis/apps/alsijil/models.py:258
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:73
 msgid "Excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:204
+#: aleksis/apps/alsijil/forms.py:207
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:34
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:94
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:354
 msgid "Remarks"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:269
+#: aleksis/apps/alsijil/forms.py:272
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:346
+#: aleksis/apps/alsijil/forms.py:349
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:347
+#: aleksis/apps/alsijil/forms.py:350
 msgid "Has lesson documentation"
 msgstr ""
 
@@ -260,27 +261,34 @@ msgstr ""
 msgid "My students"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:71
+#: aleksis/apps/alsijil/menus.py:71 aleksis/apps/alsijil/models.py:553
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:24
+msgid "Instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/menus.py:82
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:11
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:18
 msgid "Assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:82
+#: aleksis/apps/alsijil/menus.py:93
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:5
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:8
 msgid "All lessons"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:93 aleksis/apps/alsijil/models.py:72
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:77
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:258
-#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/tables.py:120
+#: aleksis/apps/alsijil/menus.py:115 aleksis/apps/alsijil/models.py:263
+#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
@@ -290,7 +298,7 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:115
+#: aleksis/apps/alsijil/menus.py:126
 msgid "Manage group roles"
 msgstr ""
 
@@ -334,146 +342,165 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:430
+#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/models.py:443
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:431
-#: aleksis/apps/alsijil/models.py:455
+#: aleksis/apps/alsijil/models.py:56 aleksis/apps/alsijil/models.py:444
+#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:529
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:60 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:57
+#: aleksis/apps/alsijil/models.py:62
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:233 aleksis/apps/alsijil/models.py:332
+#: aleksis/apps/alsijil/models.py:238 aleksis/apps/alsijil/models.py:337
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:292
+#: aleksis/apps/alsijil/models.py:297
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:293
+#: aleksis/apps/alsijil/models.py:298
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:22
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:344
+#: aleksis/apps/alsijil/models.py:349
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:26
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:49
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:421
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:345
+#: aleksis/apps/alsijil/models.py:350
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:133
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:269
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:347
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:34
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:57
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:422
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:134
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:275
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:351
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:65
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:396
+#: aleksis/apps/alsijil/models.py:358
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:73
+msgid "Done instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:409
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:397
+#: aleksis/apps/alsijil/models.py:410
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:442
+#: aleksis/apps/alsijil/models.py:455
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:456
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/models.py:530
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:457
+#: aleksis/apps/alsijil/models.py:470
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:463 aleksis/apps/alsijil/models.py:478
+#: aleksis/apps/alsijil/models.py:476 aleksis/apps/alsijil/models.py:491
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:464
+#: aleksis/apps/alsijil/models.py:477
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:34
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:468
+#: aleksis/apps/alsijil/models.py:481
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:497
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:489 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:502 aleksis/apps/alsijil/models.py:540
+#: aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:246
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:326
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:496
+#: aleksis/apps/alsijil/models.py:509
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:511
+#: aleksis/apps/alsijil/models.py:524
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:512
+#: aleksis/apps/alsijil/models.py:525
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:519
+#: aleksis/apps/alsijil/models.py:533
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:542
+msgid "The instruction will be shown for the members and owners of the selected groups. Leave empty to show for all groups."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:552
+msgid "Instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:565
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:520
+#: aleksis/apps/alsijil/models.py:566
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:521
+#: aleksis/apps/alsijil/models.py:567
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:522
+#: aleksis/apps/alsijil/models.py:568
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:523
+#: aleksis/apps/alsijil/models.py:569
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -560,6 +587,7 @@ msgstr ""
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
 #: aleksis/apps/alsijil/tables.py:72
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:74
 msgid "Edit"
 msgstr ""
 
@@ -778,6 +806,7 @@ msgid "Close"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:49
 msgid "Filter"
 msgstr ""
 
@@ -969,6 +998,33 @@ msgstr ""
 msgid "Stop"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:37
+msgid "Create instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:7
+msgid "Edit instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:15
+msgid "All instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:43
+msgid "Filter instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:53
+msgid "Reset filter"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:86
+msgid "Show PDF file with instruction"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
 msgid "Please check if the following class register entries are complete and correct:"
 msgstr ""
@@ -1063,6 +1119,14 @@ msgid ""
 "      "
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:31
+msgid "Instruction done"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:81
+msgid "Instruction done in this lesson"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
 msgid "Change history"
 msgstr ""
@@ -1374,78 +1438,90 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:118
+#: aleksis/apps/alsijil/views.py:122
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:151
+#: aleksis/apps/alsijil/views.py:155
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:268
+#: aleksis/apps/alsijil/views.py:278
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:302
+#: aleksis/apps/alsijil/views.py:312
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1119
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1140
+#: aleksis/apps/alsijil/views.py:1150
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1172
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1184
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1195
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1206
+#: aleksis/apps/alsijil/views.py:1216
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218
+#: aleksis/apps/alsijil/views.py:1228
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1229
+#: aleksis/apps/alsijil/views.py:1239
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1260
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1262
+#: aleksis/apps/alsijil/views.py:1272
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1273
+#: aleksis/apps/alsijil/views.py:1283
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1306 aleksis/apps/alsijil/views.py:1338
+#: aleksis/apps/alsijil/views.py:1316 aleksis/apps/alsijil/views.py:1348
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1357
+#: aleksis/apps/alsijil/views.py:1367
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1378
+#: aleksis/apps/alsijil/views.py:1388
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1391
+#: aleksis/apps/alsijil/views.py:1401
 msgid "The group role assignment has been deleted."
 msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1543
+msgid "The instruction has been created."
+msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1555
+msgid "The instruction has been saved."
+msgstr ""
+
+#: aleksis/apps/alsijil/views.py:1566
+msgid "The instruction has been deleted."
+msgstr ""
diff --git a/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
index dddd703d1..f1bfeaa57 100644
--- a/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
@@ -7,19 +7,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-25 15:28+0200\n"
+"POT-Creation-Date: 2022-08-15 10:22+0200\n"
 "PO-Revision-Date: 2022-07-03 02:56+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
-"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/"
-"aleksis-app-alsijil/uk/>\n"
+"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/uk/>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 "
-"? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > "
-"14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % "
-"100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
 "X-Generator: Weblate 4.12.1\n"
 
 #: aleksis/apps/alsijil/actions.py:18
@@ -38,6 +34,7 @@ msgstr "Позначити як {excuse_type.name}"
 #: aleksis/apps/alsijil/actions.py:48 aleksis/apps/alsijil/tables.py:29
 #: aleksis/apps/alsijil/tables.py:53 aleksis/apps/alsijil/tables.py:78
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:29
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:80
 msgid "Delete"
 msgstr "Видалити"
 
@@ -47,11 +44,8 @@ msgstr "{} просить Вас перевірити деякі записи к
 
 #: aleksis/apps/alsijil/actions.py:86
 #, python-brace-format
-msgid ""
-"We have successfully sent notifications to {count_teachers} persons for "
-"{count_items} lessons."
-msgstr ""
-"Ми надіслали сповіщення для {count_teachers} осіб щодо {count_items} уроків."
+msgid "We have successfully sent notifications to {count_teachers} persons for {count_items} lessons."
+msgstr "Ми надіслали сповіщення для {count_teachers} осіб щодо {count_items} уроків."
 
 #: aleksis/apps/alsijil/actions.py:92
 msgid "Ask teacher to check data"
@@ -79,8 +73,7 @@ msgstr "У скасованого уроку є пов'язані особист
 
 #: aleksis/apps/alsijil/data_checks.py:73
 msgid "Ensure that 'groups_of_person' is set for every personal note"
-msgstr ""
-"Переконайтеся, що для кожної особистої нотатки установлені \"групи_осіб\""
+msgstr "Переконайтеся, що для кожної особистої нотатки установлені \"групи_осіб\""
 
 #: aleksis/apps/alsijil/data_checks.py:74
 msgid "The personal note has no group in 'groups_of_person'."
@@ -104,8 +97,7 @@ msgstr "Ці особисті нотатки є на вихідних."
 
 #: aleksis/apps/alsijil/data_checks.py:162
 msgid "Ensure that there are no excused personal notes without an absence"
-msgstr ""
-"Переконайтеся, що немає особистих нотаток щодо пояснення без відсутності"
+msgstr "Переконайтеся, що немає особистих нотаток щодо пояснення без відсутності"
 
 #: aleksis/apps/alsijil/data_checks.py:163
 msgid "The personal note is marked as excused, but not as absent."
@@ -119,13 +111,12 @@ msgstr "Після"
 msgid "Before"
 msgstr "Перед"
 
-#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:349
+#: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:352
 #: aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:227
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:220
-#: aleksis/apps/alsijil/forms.py:302
 msgid "Subject"
 msgstr "Предмет"
 
@@ -137,108 +128,96 @@ msgstr "Запізнення менше ніж на"
 msgid "Tardiness is bigger than"
 msgstr "Запізнення більше ніж на"
 
-#: aleksis/apps/alsijil/forms.py:47
+#: aleksis/apps/alsijil/forms.py:50
 msgid "Homework for the next lesson"
 msgstr "Домашня робота на наступний урок"
 
-#: aleksis/apps/alsijil/forms.py:53
+#: aleksis/apps/alsijil/forms.py:56
 msgid "Carry over data to all other lessons with the same subject in this week"
 msgstr "Перенести дані на усі інші уроки з таким самим предметом на цьому тижні"
 
-#: aleksis/apps/alsijil/forms.py:98 aleksis/apps/alsijil/forms.py:256
-#: aleksis/apps/alsijil/forms.py:348
+#: aleksis/apps/alsijil/forms.py:101 aleksis/apps/alsijil/forms.py:259
+#: aleksis/apps/alsijil/forms.py:351
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:219
-#: aleksis/apps/alsijil/forms.py:73 aleksis/apps/alsijil/forms.py:214
-#: aleksis/apps/alsijil/forms.py:301
 msgid "Group"
 msgstr "Група"
 
-#: aleksis/apps/alsijil/forms.py:104
+#: aleksis/apps/alsijil/forms.py:107
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:190
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:221
-#: aleksis/apps/alsijil/forms.py:79
 msgid "Teacher"
 msgstr "Викладач"
 
-#: aleksis/apps/alsijil/forms.py:121 aleksis/apps/alsijil/forms.py:96
+#: aleksis/apps/alsijil/forms.py:124
 msgid "You can't select a group and a teacher both."
 msgstr "Ви не можете обрати одночасно групу та викладача."
 
-#: aleksis/apps/alsijil/forms.py:192 aleksis/apps/alsijil/forms.py:350
-#: aleksis/apps/alsijil/models.py:491
+#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:353
+#: aleksis/apps/alsijil/models.py:504
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
-#: aleksis/apps/alsijil/forms.py:150 aleksis/apps/alsijil/forms.py:303
-#: aleksis/apps/alsijil/models.py:480
 msgid "Start date"
 msgstr "Дата початку"
 
-#: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:351
-#: aleksis/apps/alsijil/models.py:495
+#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/forms.py:354
+#: aleksis/apps/alsijil/models.py:508
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
-#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/forms.py:304
-#: aleksis/apps/alsijil/models.py:484
 msgid "End date"
 msgstr "Дата закінчення"
 
-#: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:152
+#: aleksis/apps/alsijil/forms.py:197
 msgid "Start period"
 msgstr "Початок уроків"
 
-#: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:153
+#: aleksis/apps/alsijil/forms.py:198
 msgid "End period"
 msgstr "Закінчення уроків"
 
-#: aleksis/apps/alsijil/forms.py:196 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/tables.py:117
 #: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:352
-#: aleksis/apps/alsijil/forms.py:154
 msgid "Absent"
 msgstr "Відсутній(-я)"
 
-#: aleksis/apps/alsijil/forms.py:197 aleksis/apps/alsijil/tables.py:146
+#: aleksis/apps/alsijil/forms.py:200 aleksis/apps/alsijil/tables.py:146
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:85
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:297
-#: aleksis/apps/alsijil/forms.py:155
 msgid "Excused"
 msgstr "Пояснено"
 
-#: aleksis/apps/alsijil/forms.py:199 aleksis/apps/alsijil/models.py:71
-#: aleksis/apps/alsijil/models.py:253
+#: aleksis/apps/alsijil/forms.py:202 aleksis/apps/alsijil/models.py:76
+#: aleksis/apps/alsijil/models.py:258
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:73
-#: aleksis/apps/alsijil/forms.py:157 aleksis/apps/alsijil/models.py:245
 msgid "Excuse type"
 msgstr "Тип пояснення"
 
-#: aleksis/apps/alsijil/forms.py:204
+#: aleksis/apps/alsijil/forms.py:207
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:34
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:94
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:354
-#: aleksis/apps/alsijil/forms.py:162
 msgid "Remarks"
 msgstr "Зауваження"
 
-#: aleksis/apps/alsijil/forms.py:269
+#: aleksis/apps/alsijil/forms.py:272
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
-#: aleksis/apps/alsijil/forms.py:227
 msgid "Person"
 msgstr "Особа"
 
-#: aleksis/apps/alsijil/forms.py:346 aleksis/apps/alsijil/forms.py:299
+#: aleksis/apps/alsijil/forms.py:349
 msgid "School term"
 msgstr "Навчальний рік"
 
-#: aleksis/apps/alsijil/forms.py:347 aleksis/apps/alsijil/forms.py:300
+#: aleksis/apps/alsijil/forms.py:350
 msgid "Has lesson documentation"
 msgstr "Має учбовий матеріал"
 
@@ -251,7 +230,6 @@ msgstr "Має учбовий матеріал"
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:375
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:455
 #: aleksis/apps/alsijil/util/alsijil_helpers.py:330
-#: aleksis/apps/alsijil/util/alsijil_helpers.py:315
 msgid "Event"
 msgstr "Подія"
 
@@ -284,247 +262,250 @@ msgstr "Мій огляд"
 msgid "My students"
 msgstr "Мої студенти"
 
-#: aleksis/apps/alsijil/menus.py:71
+#: aleksis/apps/alsijil/menus.py:71 aleksis/apps/alsijil/models.py:553
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:24
+#, fuzzy
+#| msgid "Actions"
+msgid "Instructions"
+msgstr "Дії"
+
+#: aleksis/apps/alsijil/menus.py:82
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:11
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assign.html:18
 msgid "Assign group role"
 msgstr "Призначити роль групи"
 
-#: aleksis/apps/alsijil/menus.py:82
+#: aleksis/apps/alsijil/menus.py:93
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:5
 #: aleksis/apps/alsijil/templates/alsijil/class_register/all_objects.html:8
 msgid "All lessons"
 msgstr "Усі уроки"
 
-#: aleksis/apps/alsijil/menus.py:93 aleksis/apps/alsijil/models.py:72
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:77
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr "Типи пояснень"
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:258
-#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/tables.py:120
+#: aleksis/apps/alsijil/menus.py:115 aleksis/apps/alsijil/models.py:263
+#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:57
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:33
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:18
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:331
-#: aleksis/apps/alsijil/models.py:250 aleksis/apps/alsijil/models.py:432
 msgid "Extra marks"
 msgstr "Додаткові відмітки"
 
-#: aleksis/apps/alsijil/menus.py:115
+#: aleksis/apps/alsijil/menus.py:126
 msgid "Manage group roles"
 msgstr "Керування ролями групи"
 
 #: aleksis/apps/alsijil/model_extensions.py:191
-#: aleksis/apps/alsijil/model_extensions.py:190
 msgid "Can view week overview of group class register"
 msgstr "Може бачити класний журнал групи за тиждень"
 
 #: aleksis/apps/alsijil/model_extensions.py:195
-#: aleksis/apps/alsijil/model_extensions.py:194
 msgid "Can view lesson overview of group class register"
 msgstr "Може бачити класний журнал групи за урок"
 
 #: aleksis/apps/alsijil/model_extensions.py:197
-#: aleksis/apps/alsijil/model_extensions.py:196
 msgid "Can view all personal notes of a group"
 msgstr "Може бачити усі особисті нотатки групи"
 
 #: aleksis/apps/alsijil/model_extensions.py:198
-#: aleksis/apps/alsijil/model_extensions.py:197
 msgid "Can edit all personal notes of a group"
 msgstr "Може редагувати усі особисті нотатки групи"
 
 #: aleksis/apps/alsijil/model_extensions.py:200
-#: aleksis/apps/alsijil/model_extensions.py:199
 msgid "Can view all lesson documentation of a group"
 msgstr "Може бачити увесь учбовий матеріал групи"
 
 #: aleksis/apps/alsijil/model_extensions.py:203
-#: aleksis/apps/alsijil/model_extensions.py:202
 msgid "Can edit all lesson documentation of a group"
 msgstr "Може редагувати увесь учбовий матеріал групи"
 
 #: aleksis/apps/alsijil/model_extensions.py:205
-#: aleksis/apps/alsijil/model_extensions.py:204
 msgid "Can view full register of a group"
 msgstr "Може бачити класний журнал групи без обмежень"
 
 #: aleksis/apps/alsijil/model_extensions.py:207
-#: aleksis/apps/alsijil/model_extensions.py:206
 msgid "Can register an absence for all members of a group"
 msgstr "Може реєструвати пропуски для усіх учасників групи"
 
 #: aleksis/apps/alsijil/model_extensions.py:209
-#: aleksis/apps/alsijil/model_extensions.py:208
 msgid "Can assign a group role for this group"
 msgstr "Може призначати роль групи для цієї групи"
 
 #: aleksis/apps/alsijil/model_extensions.py:210
-#: aleksis/apps/alsijil/model_extensions.py:209
 msgid "Can register an absence for a person"
 msgstr "Може реєструвати відсутність особи"
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:430
-#: aleksis/apps/alsijil/models.py:419
+#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/models.py:443
 msgid "Short name"
 msgstr "Коротке ім'я"
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:431
-#: aleksis/apps/alsijil/models.py:455
+#: aleksis/apps/alsijil/models.py:56 aleksis/apps/alsijil/models.py:444
+#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:529
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:23
-#: aleksis/apps/alsijil/models.py:420 aleksis/apps/alsijil/models.py:444
 msgid "Name"
 msgstr "Повне ім'я"
 
-#: aleksis/apps/alsijil/models.py:55 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:60 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr "Кількість відсутніх"
 
-#: aleksis/apps/alsijil/models.py:57
-msgid ""
-"If checked, this excuse type will be counted as a missed lesson. If not "
-"checked,it won't show up in the absence report."
-msgstr ""
-"Якщо відмічено, цей тип пояснення буде зарахований як пропущений урок. Якщо "
-"не відмічено, то без запису у звіт відсутності."
+#: aleksis/apps/alsijil/models.py:62
+msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
+msgstr "Якщо відмічено, цей тип пояснення буде зарахований як пропущений урок. Якщо не відмічено, то без запису у звіт відсутності."
 
-#: aleksis/apps/alsijil/models.py:233 aleksis/apps/alsijil/models.py:332
-#: aleksis/apps/alsijil/models.py:225 aleksis/apps/alsijil/models.py:324
+#: aleksis/apps/alsijil/models.py:238 aleksis/apps/alsijil/models.py:337
 msgid "Year"
 msgstr "Рік"
 
-#: aleksis/apps/alsijil/models.py:292 aleksis/apps/alsijil/models.py:284
+#: aleksis/apps/alsijil/models.py:297
 msgid "Personal note"
 msgstr "Особиста нотатка"
 
-#: aleksis/apps/alsijil/models.py:293
+#: aleksis/apps/alsijil/models.py:298
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:22
-#: aleksis/apps/alsijil/models.py:285
 msgid "Personal notes"
 msgstr "Особисті нотатки"
 
-#: aleksis/apps/alsijil/models.py:344
+#: aleksis/apps/alsijil/models.py:349
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:132
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:263
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:26
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:49
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:421
-#: aleksis/apps/alsijil/models.py:336
 msgid "Lesson topic"
 msgstr "Тема уроку"
 
-#: aleksis/apps/alsijil/models.py:345
+#: aleksis/apps/alsijil/models.py:350
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:133
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:269
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:347
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:34
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:57
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:422
-#: aleksis/apps/alsijil/models.py:337
 msgid "Homework"
 msgstr "Домашня робота"
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:134
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:275
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:351
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:42
-#: aleksis/apps/alsijil/models.py:338
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:65
 msgid "Group note"
 msgstr "Групова нотатка"
 
-#: aleksis/apps/alsijil/models.py:396
+#: aleksis/apps/alsijil/models.py:358
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:73
+msgid "Done instructions"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:409
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
-#: aleksis/apps/alsijil/models.py:385
 msgid "Lesson documentation"
 msgstr "Учбовий матеріал"
 
-#: aleksis/apps/alsijil/models.py:397
+#: aleksis/apps/alsijil/models.py:410
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
-#: aleksis/apps/alsijil/models.py:386
 msgid "Lesson documentations"
 msgstr "Учбові матеріали"
 
-#: aleksis/apps/alsijil/models.py:442 aleksis/apps/alsijil/models.py:431
+#: aleksis/apps/alsijil/models.py:455
 msgid "Extra mark"
 msgstr "Додаткова відмітка"
 
-#: aleksis/apps/alsijil/models.py:456 aleksis/apps/alsijil/models.py:445
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/models.py:530
 msgid "Icon"
 msgstr "Іконка"
 
-#: aleksis/apps/alsijil/models.py:457 aleksis/apps/alsijil/models.py:446
+#: aleksis/apps/alsijil/models.py:470
 msgid "Colour"
 msgstr "Колір"
 
-#: aleksis/apps/alsijil/models.py:463 aleksis/apps/alsijil/models.py:478
+#: aleksis/apps/alsijil/models.py:476 aleksis/apps/alsijil/models.py:491
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
-#: aleksis/apps/alsijil/models.py:452 aleksis/apps/alsijil/models.py:467
 msgid "Group role"
 msgstr "Роль групи"
 
-#: aleksis/apps/alsijil/models.py:464
+#: aleksis/apps/alsijil/models.py:477
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:34
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
-#: aleksis/apps/alsijil/models.py:453
 msgid "Group roles"
 msgstr "Ролі груп"
 
-#: aleksis/apps/alsijil/models.py:468 aleksis/apps/alsijil/models.py:457
+#: aleksis/apps/alsijil/models.py:481
 msgid "Can assign group role"
 msgstr "Може призначати роль групи"
 
-#: aleksis/apps/alsijil/models.py:484 aleksis/apps/alsijil/models.py:473
+#: aleksis/apps/alsijil/models.py:497
 msgid "Assigned person"
 msgstr "Призначена особа"
 
-#: aleksis/apps/alsijil/models.py:489 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:502 aleksis/apps/alsijil/models.py:540
+#: aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:246
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:326
-#: aleksis/apps/alsijil/models.py:478
 msgid "Groups"
 msgstr "Групи"
 
-#: aleksis/apps/alsijil/models.py:496 aleksis/apps/alsijil/models.py:485
+#: aleksis/apps/alsijil/models.py:509
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Якщо немає точної кінцевої дати, можна залишити порожнім"
 
-#: aleksis/apps/alsijil/models.py:511 aleksis/apps/alsijil/models.py:500
+#: aleksis/apps/alsijil/models.py:524
 msgid "Group role assignment"
 msgstr "Призначення ролі групи"
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:501
+#: aleksis/apps/alsijil/models.py:525
 msgid "Group role assignments"
 msgstr "Призначення ролі групи"
 
-#: aleksis/apps/alsijil/models.py:519 aleksis/apps/alsijil/models.py:508
+#: aleksis/apps/alsijil/models.py:533
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:542
+msgid "The instruction will be shown for the members and owners of the selected groups. Leave empty to show for all groups."
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:552
+#, fuzzy
+#| msgid "Substitution"
+msgid "Instruction"
+msgstr "Заміна"
+
+#: aleksis/apps/alsijil/models.py:565
 msgid "Can view lesson overview"
 msgstr "Може бачити огляд уроку"
 
-#: aleksis/apps/alsijil/models.py:520 aleksis/apps/alsijil/models.py:509
+#: aleksis/apps/alsijil/models.py:566
 msgid "Can view week overview"
 msgstr "Може бачити огляд тижня"
 
-#: aleksis/apps/alsijil/models.py:521 aleksis/apps/alsijil/models.py:510
+#: aleksis/apps/alsijil/models.py:567
 msgid "Can view full register"
 msgstr "Може бачити весь журнал"
 
-#: aleksis/apps/alsijil/models.py:522 aleksis/apps/alsijil/models.py:511
+#: aleksis/apps/alsijil/models.py:568
 msgid "Can register absence"
 msgstr "Може реєструвати пропуск"
 
-#: aleksis/apps/alsijil/models.py:523 aleksis/apps/alsijil/models.py:512
+#: aleksis/apps/alsijil/models.py:569
 msgid "Can list all personal note filters"
 msgstr "Може бачити усі фільтри особистих нотаток"
 
@@ -537,130 +518,81 @@ msgid "Allow users to view their own personal notes"
 msgstr "Дозволити користувачам переглядати власні особисті нотатки"
 
 #: aleksis/apps/alsijil/preferences.py:34
-msgid ""
-"Allow primary group owners to register future absences for students in their "
-"groups"
-msgstr ""
-"Дозволити власникам основних груп реєструвати майбутні пропуски студентів у "
-"своїх групах"
+msgid "Allow primary group owners to register future absences for students in their groups"
+msgstr "Дозволити власникам основних груп реєструвати майбутні пропуски студентів у своїх групах"
 
 #: aleksis/apps/alsijil/preferences.py:44
-msgid ""
-"Grant the owner of a parent group the same privileges as the owners of the "
-"respective child groups"
-msgstr ""
-"Надати власнику батьківської групи такі самі повноваження, як і власникам "
-"відповідних підлеглих груп"
+msgid "Grant the owner of a parent group the same privileges as the owners of the respective child groups"
+msgstr "Надати власнику батьківської групи такі самі повноваження, як і власникам відповідних підлеглих груп"
 
 #: aleksis/apps/alsijil/preferences.py:54
-#: aleksis/apps/alsijil/preferences.py:43
-msgid ""
-"Allow original teachers to edit their lessons although they are substituted"
-msgstr ""
-"Дозволити початковим викладачам редагувати свої уроки навіть після їх заміни"
+msgid "Allow original teachers to edit their lessons although they are substituted"
+msgstr "Дозволити початковим викладачам редагувати свої уроки навіть після їх заміни"
 
 #: aleksis/apps/alsijil/preferences.py:63
-#: aleksis/apps/alsijil/preferences.py:52
-msgid ""
-"Carry over data from first lesson period to the following lesson periods in "
-"lessons over multiple periods"
-msgstr ""
-"Переносити дані з першого уроку в розкладі на поточні уроки через декілька "
-"уроків"
+msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods"
+msgstr "Переносити дані з першого уроку в розкладі на поточні уроки через декілька уроків"
 
 #: aleksis/apps/alsijil/preferences.py:66
-#: aleksis/apps/alsijil/preferences.py:55
-msgid ""
-"This will carry over data only if the data in the following periods are "
-"empty."
+msgid "This will carry over data only if the data in the following periods are empty."
 msgstr "Це перенесе дані лише в тому разі, коли в поточних уроках даних немає."
 
 #: aleksis/apps/alsijil/preferences.py:75
-msgid ""
-"Allow carrying over data from any lesson period to all other "
-"lesson                 periods with the same lesson and in the same week"
-msgstr ""
-"Дозволити переносити дані з будь-якого уроку на усі інші                 "
-"уроки з таким самим номером урока на тому самому тижні"
+msgid "Allow carrying over data from any lesson period to all other lesson                 periods with the same lesson and in the same week"
+msgstr "Дозволити переносити дані з будь-якого уроку на усі інші                 уроки з таким самим номером урока на тому самому тижні"
 
 #: aleksis/apps/alsijil/preferences.py:79
-msgid ""
-"This will carry over data only if the data in the aforementioned periods are "
-"empty."
-msgstr ""
-"Це перенесе дані лише в тому разі, коли у вищезгаданих уроках даних немає."
+msgid "This will carry over data only if the data in the aforementioned periods are empty."
+msgstr "Це перенесе дані лише в тому разі, коли у вищезгаданих уроках даних немає."
 
 #: aleksis/apps/alsijil/preferences.py:88
-#: aleksis/apps/alsijil/preferences.py:63
-msgid ""
-"Carry over personal notes to all following lesson periods on the same day."
+msgid "Carry over personal notes to all following lesson periods on the same day."
 msgstr "Переносити особисті нотатки до всіх наступних уроків того ж дня."
 
 #: aleksis/apps/alsijil/preferences.py:97
-#: aleksis/apps/alsijil/preferences.py:72
-msgid ""
-"Allow teachers to open lesson periods on the same day and not just at the "
-"beginning of the period"
-msgstr ""
-"Дозволити викладачам відкривати уроки того самого дня і не лише на початку "
-"уроків"
+msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period"
+msgstr "Дозволити викладачам відкривати уроки того самого дня і не лише на початку уроків"
 
 #: aleksis/apps/alsijil/preferences.py:101
-#: aleksis/apps/alsijil/preferences.py:76
-msgid ""
-"Lessons in the past are not affected by this setting, you can open them "
-"whenever you want."
-msgstr ""
-"Ці налаштування не впливають на минулі уроки. Ви можете відкривати їх будь-"
-"коли."
+msgid "Lessons in the past are not affected by this setting, you can open them whenever you want."
+msgstr "Ці налаштування не впливають на минулі уроки. Ви можете відкривати їх будь-коли."
 
 #: aleksis/apps/alsijil/preferences.py:110
-#: aleksis/apps/alsijil/preferences.py:85
 msgid "Allow teachers to add data for lessons in holidays"
-msgstr ""
-"Дозволити викладачам додавати навчальний матеріал (дані для уроків) на "
-"вихідних"
+msgstr "Дозволити викладачам додавати навчальний матеріал (дані для уроків) на вихідних"
 
 #: aleksis/apps/alsijil/preferences.py:119
-#: aleksis/apps/alsijil/preferences.py:94
-msgid ""
-"Allow group owners to assign group roles to the parents of the group's "
-"members"
+msgid "Allow group owners to assign group roles to the parents of the group's members"
 msgstr "Дозволити власникам груп призначати ролі груп батькам учасників груп"
 
 #: aleksis/apps/alsijil/preferences.py:128
-#: aleksis/apps/alsijil/preferences.py:103
 msgid "Show assigned group roles in week view"
 msgstr "Показати призначені ролі груп у тижневому огляді"
 
 #: aleksis/apps/alsijil/preferences.py:129
-#: aleksis/apps/alsijil/preferences.py:104
 msgid "Only week view of groups"
 msgstr "Лише тижневі огляди груп"
 
 #: aleksis/apps/alsijil/preferences.py:137
-#: aleksis/apps/alsijil/preferences.py:112
 msgid "Show assigned group roles in lesson view"
 msgstr "Показати призначені ролі груп в огляді уроку"
 
 #: aleksis/apps/alsijil/preferences.py:147
-#: aleksis/apps/alsijil/preferences.py:122
 msgid "Items per page in lessons table"
 msgstr "Кількість записів у розкладі на сторінку"
 
 #: aleksis/apps/alsijil/preferences.py:151
-#: aleksis/apps/alsijil/preferences.py:126
 msgid "Each page must show at least one item."
 msgstr "Кожна сторінка повинна мати принаймні один запис."
 
 #: aleksis/apps/alsijil/preferences.py:159
-#: aleksis/apps/alsijil/preferences.py:134
 msgid "Filter lessons by existence of their lesson documentation on default"
 msgstr "Типово фільтувати уроки за наявністю у них учбового матеріалу"
 
 #: aleksis/apps/alsijil/tables.py:23 aleksis/apps/alsijil/tables.py:47
 #: aleksis/apps/alsijil/tables.py:72
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assignment_options.html:13
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:74
 msgid "Edit"
 msgstr "Редагувати"
 
@@ -744,13 +676,11 @@ msgstr " %(count)s залежних уроків "
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:40
 msgid ""
 "\n"
-"                  There are no affected lessons. Registering this absence "
-"won't have any effect.\n"
+"                  There are no affected lessons. Registering this absence won't have any effect.\n"
 "                "
 msgstr ""
 "\n"
-"                  Залежних уроків немає. Реєстрація пропуску ні на що не "
-"впливає.\n"
+"                  Залежних уроків немає. Реєстрація пропуску ні на що не впливає.\n"
 "                "
 
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:57
@@ -897,6 +827,7 @@ msgid "Close"
 msgstr "Закрити"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:79
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:49
 msgid "Filter"
 msgstr "Фільтри"
 
@@ -986,8 +917,7 @@ msgstr "Немає доступних уроків"
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:439
 msgid ""
 "\n"
-"            There are no lessons for the selected group or teacher in this "
-"week.\n"
+"            There are no lessons for the selected group or teacher in this week.\n"
 "          "
 msgstr ""
 "\n"
@@ -1009,17 +939,13 @@ msgstr "Редагувати тип пояснення"
 #: aleksis/apps/alsijil/templates/alsijil/group_role/warning.html:4
 msgid ""
 "\n"
-"    This function should only be used to define alternatives to the default "
-"excuse which also will be counted extra.\n"
-"    Don't use this to create a default excuse or if you don't divide between "
-"different types of excuse.\n"
+"    This function should only be used to define alternatives to the default excuse which also will be counted extra.\n"
+"    Don't use this to create a default excuse or if you don't divide between different types of excuse.\n"
 "  "
 msgstr ""
 "\n"
-"    Ця функція використовується лише для визначення альтернатив до типового "
-"пояснення, яке додатково буде враховане.\n"
-"    Не користуйтеся цим для створення типового пояснення або якщо не "
-"розділяєте на типи пояснень.\n"
+"    Ця функція використовується лише для визначення альтернатив до типового пояснення, яке додатково буде враховане.\n"
+"    Не користуйтеся цим для створення типового пояснення або якщо не розділяєте на типи пояснень.\n"
 "  "
 
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
@@ -1093,14 +1019,12 @@ msgstr "Ніхто не призначений."
 #: aleksis/apps/alsijil/templates/alsijil/group_role/partials/assigned_roles.html:41
 msgid ""
 "\n"
-"    You can get some additional actions for each group role assignment if "
-"you click on the name of the\n"
+"    You can get some additional actions for each group role assignment if you click on the name of the\n"
 "    corresponding person.\n"
 "  "
 msgstr ""
 "\n"
-"    Ви можете отримати деякі додаткові дії для кожного призначення ролі "
-"групи після кліку\n"
+"    Ви можете отримати деякі додаткові дії для кожного призначення ролі групи після кліку\n"
 "     на ім'я відповідної особи.\n"
 "  "
 
@@ -1108,12 +1032,42 @@ msgstr ""
 msgid "Stop"
 msgstr "Стоп"
 
-#: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
-msgid ""
-"Please check if the following class register entries are complete and "
-"correct:"
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/create.html:7
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:37
+msgid "Create instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:6
+#: aleksis/apps/alsijil/templates/alsijil/instruction/edit.html:7
+msgid "Edit instruction"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:15
+#, fuzzy
+#| msgid "Actions"
+msgid "All instructions"
+msgstr "Дії"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:43
+#, fuzzy
+#| msgid "Filter results"
+msgid "Filter instructions"
+msgstr "Результат фільтрів"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:53
+#, fuzzy
+#| msgid "Lesson filter"
+msgid "Reset filter"
+msgstr "Фільтр уроків"
+
+#: aleksis/apps/alsijil/templates/alsijil/instruction/list.html:86
+msgid "Show PDF file with instruction"
 msgstr ""
-"Перевірте, будь ласка, чи ці записи класного журналу повні та правильні:"
+
+#: aleksis/apps/alsijil/templates/alsijil/notifications/check.html:1
+msgid "Please check if the following class register entries are complete and correct:"
+msgstr "Перевірте, будь ласка, чи ці записи класного журналу повні та правильні:"
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/absences.html:6
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:22
@@ -1214,6 +1168,14 @@ msgstr ""
 "        Наступний урок %(subject)s\n"
 "      "
 
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:31
+msgid "Instruction done"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:81
+msgid "Instruction done in this lesson"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
 msgid "Change history"
 msgstr "Змінити історію"
@@ -1259,15 +1221,12 @@ msgstr ""
 #, python-format
 msgid ""
 "\n"
-"            This seating plan is taken from the parent group of "
-"%(child_group)s.\n"
-"            If you want, you can take it over for your group and then "
-"customize it.\n"
+"            This seating plan is taken from the parent group of %(child_group)s.\n"
+"            If you want, you can take it over for your group and then customize it.\n"
 "          "
 msgstr ""
 "\n"
-"            Цей план розсадження взятий із батьківської групи "
-"%(child_group)s.\n"
+"            Цей план розсадження взятий із батьківської групи %(child_group)s.\n"
 "            При необхідності, Ви можете його налаштувати під свою групу.\n"
 "          "
 
@@ -1287,13 +1246,11 @@ msgstr "Для цього уроку немає плану розсадженн
 #, python-format
 msgid ""
 "\n"
-"                  Create a new seating plan for %(group)s (%(subject)s) in "
-"%(room)s\n"
+"                  Create a new seating plan for %(group)s (%(subject)s) in %(room)s\n"
 "                "
 msgstr ""
 "\n"
-"                  Створити новий план розсадження %(group)s (%(subject)s) у "
-"%(room)s\n"
+"                  Створити новий план розсадження %(group)s (%(subject)s) у %(room)s\n"
 "                "
 
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/seating_plan.html:78
@@ -1545,8 +1502,6 @@ msgstr "Так"
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:386
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:483
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:498
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:484
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:499
 msgid "e"
 msgstr "п"
 
@@ -1558,83 +1513,96 @@ msgstr "Тиждень"
 msgid "Notes"
 msgstr "Нотатки"
 
-#: aleksis/apps/alsijil/views.py:118
-msgid ""
-"You either selected an invalid lesson or there is currently no lesson in "
-"progress."
+#: aleksis/apps/alsijil/views.py:122
+msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr "Або Ви обрали неправильний урок, або зараз уроку немає."
 
-#: aleksis/apps/alsijil/views.py:151
-msgid ""
-"You are not allowed to create a lesson documentation for a lesson in the "
-"future."
+#: aleksis/apps/alsijil/views.py:155
+msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr "Вам не дозволено створювати учбові матеріали для уроку у майбутньому."
 
-#: aleksis/apps/alsijil/views.py:268 aleksis/apps/alsijil/views.py:266
+#: aleksis/apps/alsijil/views.py:278
 msgid "The lesson documentation has been saved."
 msgstr "Учбовий матеріал збережений."
 
-#: aleksis/apps/alsijil/views.py:302 aleksis/apps/alsijil/views.py:300
+#: aleksis/apps/alsijil/views.py:312
 msgid "The personal notes have been saved."
 msgstr "Особисті нотатки збережені."
 
-#: aleksis/apps/alsijil/views.py:1119 aleksis/apps/alsijil/views.py:1079
+#: aleksis/apps/alsijil/views.py:1129
 msgid "The absence has been saved."
 msgstr "Пропуск збережений."
 
-#: aleksis/apps/alsijil/views.py:1140 aleksis/apps/alsijil/views.py:1100
+#: aleksis/apps/alsijil/views.py:1150
 msgid "The personal note has been deleted."
 msgstr "Особиста нотатка видалена."
 
-#: aleksis/apps/alsijil/views.py:1162 aleksis/apps/alsijil/views.py:1122
+#: aleksis/apps/alsijil/views.py:1172
 msgid "The extra mark has been created."
 msgstr "Додаткова позначка сторена."
 
-#: aleksis/apps/alsijil/views.py:1174 aleksis/apps/alsijil/views.py:1134
+#: aleksis/apps/alsijil/views.py:1184
 msgid "The extra mark has been saved."
 msgstr "Додаткова позначка збережена."
 
-#: aleksis/apps/alsijil/views.py:1185 aleksis/apps/alsijil/views.py:1145
+#: aleksis/apps/alsijil/views.py:1195
 msgid "The extra mark has been deleted."
 msgstr "Додаткова позначка видалена."
 
-#: aleksis/apps/alsijil/views.py:1206 aleksis/apps/alsijil/views.py:1166
+#: aleksis/apps/alsijil/views.py:1216
 msgid "The excuse type has been created."
 msgstr "Тип пояснення створений."
 
-#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1178
+#: aleksis/apps/alsijil/views.py:1228
 msgid "The excuse type has been saved."
 msgstr "Тип пояснення збережений."
 
-#: aleksis/apps/alsijil/views.py:1229 aleksis/apps/alsijil/views.py:1189
+#: aleksis/apps/alsijil/views.py:1239
 msgid "The excuse type has been deleted."
 msgstr "Тип пояснення видалений."
 
-#: aleksis/apps/alsijil/views.py:1250 aleksis/apps/alsijil/views.py:1210
+#: aleksis/apps/alsijil/views.py:1260
 msgid "The group role has been created."
 msgstr "Роль групи створена."
 
-#: aleksis/apps/alsijil/views.py:1262 aleksis/apps/alsijil/views.py:1222
+#: aleksis/apps/alsijil/views.py:1272
 msgid "The group role has been saved."
 msgstr "Роль групи збережена."
 
-#: aleksis/apps/alsijil/views.py:1273 aleksis/apps/alsijil/views.py:1233
+#: aleksis/apps/alsijil/views.py:1283
 msgid "The group role has been deleted."
 msgstr "Роль групи видалена."
 
-#: aleksis/apps/alsijil/views.py:1306 aleksis/apps/alsijil/views.py:1338
-#: aleksis/apps/alsijil/views.py:1266 aleksis/apps/alsijil/views.py:1298
+#: aleksis/apps/alsijil/views.py:1316 aleksis/apps/alsijil/views.py:1348
 msgid "The group role has been assigned."
 msgstr "Роль групи призначена."
 
-#: aleksis/apps/alsijil/views.py:1357 aleksis/apps/alsijil/views.py:1317
+#: aleksis/apps/alsijil/views.py:1367
 msgid "The group role assignment has been saved."
 msgstr "Призначення ролі групи збережене."
 
-#: aleksis/apps/alsijil/views.py:1378 aleksis/apps/alsijil/views.py:1338
+#: aleksis/apps/alsijil/views.py:1388
 msgid "The group role assignment has been stopped."
 msgstr "Призначення ролі групи зупинене."
 
-#: aleksis/apps/alsijil/views.py:1391 aleksis/apps/alsijil/views.py:1351
+#: aleksis/apps/alsijil/views.py:1401
 msgid "The group role assignment has been deleted."
 msgstr "Призначення ролі групи видалене."
+
+#: aleksis/apps/alsijil/views.py:1543
+#, fuzzy
+#| msgid "The group role has been created."
+msgid "The instruction has been created."
+msgstr "Роль групи створена."
+
+#: aleksis/apps/alsijil/views.py:1555
+#, fuzzy
+#| msgid "The absence has been saved."
+msgid "The instruction has been saved."
+msgstr "Пропуск збережений."
+
+#: aleksis/apps/alsijil/views.py:1566
+#, fuzzy
+#| msgid "The group role has been deleted."
+msgid "The instruction has been deleted."
+msgstr "Роль групи видалена."
-- 
GitLab