diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
index 30d41d21868fde3e5aed4655a80ea1b228e4570a..6789a3abca86d188ee71a30e14d1d17db1e851ef 100644
--- a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-28 17:33+0200\n"
+"POT-Creation-Date: 2021-12-24 13:24+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -110,10 +110,10 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:302
 #: aleksis/apps/alsijil/tables.py:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
+#: 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:169
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:200
 msgid "Subject"
@@ -131,99 +131,100 @@ msgstr ""
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:73 aleksis/apps/alsijil/forms.py:214
+#: aleksis/apps/alsijil/forms.py:301
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:75
+#: aleksis/apps/alsijil/forms.py:79
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:170
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:201
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:90
+#: aleksis/apps/alsijil/forms.py:96
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
-#: aleksis/apps/alsijil/models.py:446
+#: aleksis/apps/alsijil/forms.py:150 aleksis/apps/alsijil/forms.py:303
+#: aleksis/apps/alsijil/models.py:471
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
-#: aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/forms.py:304
+#: aleksis/apps/alsijil/models.py:475
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:146
+#: aleksis/apps/alsijil/forms.py:152
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:147
+#: aleksis/apps/alsijil/forms.py:153
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:148
+#: aleksis/apps/alsijil/forms.py:154 aleksis/apps/alsijil/tables.py:108
+#: aleksis/apps/alsijil/tables.py:129
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:312
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
+#: aleksis/apps/alsijil/forms.py:155 aleksis/apps/alsijil/tables.py:137
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/models.py:62
-#: aleksis/apps/alsijil/models.py:232
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:266
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:307
+#: aleksis/apps/alsijil/forms.py:157 aleksis/apps/alsijil/models.py:62
+#: aleksis/apps/alsijil/models.py:236
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:156
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:268
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:328
+#: aleksis/apps/alsijil/forms.py:162
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:33
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:93
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:314
 msgid "Remarks"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:218
+#: aleksis/apps/alsijil/forms.py:227
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:262
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:299
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/forms.py:300
 msgid "Has lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:16
+#: aleksis/apps/alsijil/managers.py:88 aleksis/apps/alsijil/tables.py:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:176
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:240
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:316
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:21
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:335
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:415
-#: aleksis/apps/alsijil/util/alsijil_helpers.py:314
+#: aleksis/apps/alsijil/util/alsijil_helpers.py:315
 msgid "Event"
 msgstr ""
 
@@ -275,12 +276,12 @@ msgstr ""
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:237
-#: aleksis/apps/alsijil/models.py:401
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:267
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:241
+#: aleksis/apps/alsijil/models.py:423 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
@@ -290,164 +291,178 @@ msgstr ""
 msgid "Manage group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:180
+#: aleksis/apps/alsijil/model_extensions.py:191
 msgid "Can view week overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:183
+#: aleksis/apps/alsijil/model_extensions.py:195
 msgid "Can view lesson overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:185
+#: aleksis/apps/alsijil/model_extensions.py:197
 msgid "Can view all personal notes of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:186
+#: aleksis/apps/alsijil/model_extensions.py:198
 msgid "Can edit all personal notes of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:188
+#: aleksis/apps/alsijil/model_extensions.py:200
 msgid "Can view all lesson documentation of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:191
+#: aleksis/apps/alsijil/model_extensions.py:203
 msgid "Can edit all lesson documentation of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:193
+#: aleksis/apps/alsijil/model_extensions.py:205
 msgid "Can view full register of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:195
+#: aleksis/apps/alsijil/model_extensions.py:207
 msgid "Can register an absence for all members of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:197
+#: aleksis/apps/alsijil/model_extensions.py:209
+msgid "Can assign a group role for this group"
+msgstr ""
+
+#: aleksis/apps/alsijil/model_extensions.py:210
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:388
+#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:410
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
-#: aleksis/apps/alsijil/models.py:413
+#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:411
+#: aleksis/apps/alsijil/models.py:435
 #: 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:22
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:303
+#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:315
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:271
+#: aleksis/apps/alsijil/models.py:275
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
+#: aleksis/apps/alsijil/models.py:276
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:317
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:18
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
+#: aleksis/apps/alsijil/models.py:327
+#: 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/print/full_register.html:381
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
+#: aleksis/apps/alsijil/models.py:328
+#: 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/print/full_register.html:382
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
+#: aleksis/apps/alsijil/models.py:329
+#: 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
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
+#: aleksis/apps/alsijil/models.py:376
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:364
+#: aleksis/apps/alsijil/models.py:377
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:68
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:400
+#: aleksis/apps/alsijil/models.py:422
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:414
+#: aleksis/apps/alsijil/models.py:436
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:415
+#: aleksis/apps/alsijil/models.py:437
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:421 aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/models.py:458
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
+#: aleksis/apps/alsijil/models.py:444
+#: 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:441
+#: aleksis/apps/alsijil/models.py:448
+msgid "Can assign group role"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:464
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:444 aleksis/apps/alsijil/tables.py:98
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:104
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:220
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/tables.py:98
+#: 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:451
+#: aleksis/apps/alsijil/models.py:476
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:466
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:492
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:474
+#: aleksis/apps/alsijil/models.py:499
+msgid "Can view lesson overview"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:500
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:475
+#: aleksis/apps/alsijil/models.py:501
+msgid "Can view full register"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:502
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:476
+#: aleksis/apps/alsijil/models.py:503
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -531,16 +546,28 @@ msgid "Date"
 msgstr ""
 
 #: aleksis/apps/alsijil/tables.py:95
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:102
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:17
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 msgid "Period"
 msgstr ""
 
 #: aleksis/apps/alsijil/tables.py:103
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:231
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:257
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:336
 msgid "Teachers"
 msgstr ""
 
+#: aleksis/apps/alsijil/tables.py:109
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
+msgid "Tardiness"
+msgstr ""
+
 #: aleksis/apps/alsijil/tables.py:110
 msgid "Excuse"
 msgstr ""
@@ -553,7 +580,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:5
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:385
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr ""
@@ -604,13 +631,15 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:35
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:76
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:40
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:51
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:78
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 msgid "Students list"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:39
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:60
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:69
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:27
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:16
@@ -630,8 +659,8 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:20
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:42
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:44
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:58
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:97
 msgid "Generate printout"
 msgstr ""
 
@@ -648,107 +677,39 @@ msgstr ""
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
-msgid "Back to week view"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:24
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:27
+msgid "Persons"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
-msgid "My previous lesson"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:34
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:82
+msgid "Previous"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
-msgid "My next lesson"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:42
+msgid "More"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
-#, python-format
-msgid "%(period)s. period"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:75
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:81
+msgid "My previous lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
-#, python-format
-msgid ""
-"\n"
-"            Previous %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
-#, python-format
-msgid ""
-"\n"
-"            Next %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
-msgid "Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
-msgid "Change history"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:186
-msgid "Overview: Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:193
-msgid "Lesson topic of previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:200
-msgid "Homework for this lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:207
-msgid "Group notes for previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:214
-msgid "Absent persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:221
-msgid "Late persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
-msgid "Tardiness"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:293
-msgid "Tardiness (in m)"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:399
-#, python-format
-msgid ""
-"\n"
-"              Previous %(subject)s lesson\n"
-"            "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:92
+msgid "My next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:409
-#, python-format
-msgid ""
-"\n"
-"              Next %(subject)s lesson\n"
-"            "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:93
+msgid "Next"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:425
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:143
 msgid ""
 "\n"
-"                This lesson overlaps with holidays and can't be edited.\n"
-"              "
+"                  This lesson overlaps with holidays and can't be edited.\n"
+"                "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:10
@@ -793,6 +754,10 @@ msgstr ""
 msgid "Filter"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:91
+msgid "Filter results"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:119
 msgid "Statistics on absences, tardiness and remarks"
 msgstr ""
@@ -824,35 +789,47 @@ msgstr ""
 msgid "Students list: %(group)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:23
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:54
 msgid "Select"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:31
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:62
+msgid "Toggle filters"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:69
 #, python-format
 msgid ""
 "CW %(week)s:\n"
 "      %(instance)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:340
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:293
+msgid "Unfold"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:360
+msgid "Visit lesson overview"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:398
 msgid "unexcused"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:343
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:401
 msgid "Summed up tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:404
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:436
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
+#: 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"
@@ -994,26 +971,95 @@ msgstr ""
 msgid "Excused absences"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:6
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:28
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:7
+#, python-format
+msgid "%(period)s. period"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:31
+#, python-format
+msgid ""
+"\n"
+"            %(period_from)s.–%(period_to)s.  period\n"
+"          "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:10
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:135
+msgid "Save"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:19
+#, python-format
+msgid ""
+"\n"
+"        Previous %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:30
+#, python-format
+msgid ""
+"\n"
+"        Next %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
+msgid "Change history"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:58
+msgid "Tardiness (in m)"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:6
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:13
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:20
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:27
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:34
+msgid "Absent persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:41
+msgid "Late persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:6
 msgid "Data complete"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:12
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:17
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:30
 msgid "Missing data"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:27
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:32
 msgid "Pending"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:426
 msgid "Lesson cancelled"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:34
 msgid "Substitution"
 msgstr ""
 
@@ -1217,78 +1263,78 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:117
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:150
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:241
+#: aleksis/apps/alsijil/views.py:246
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:275
+#: aleksis/apps/alsijil/views.py:280
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1031
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1052
+#: aleksis/apps/alsijil/views.py:1070
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1074
+#: aleksis/apps/alsijil/views.py:1092
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1086
+#: aleksis/apps/alsijil/views.py:1104
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1097
+#: aleksis/apps/alsijil/views.py:1115
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1118
+#: aleksis/apps/alsijil/views.py:1136
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1130
+#: aleksis/apps/alsijil/views.py:1148
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1141
+#: aleksis/apps/alsijil/views.py:1159
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1180
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1192
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1203
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1236 aleksis/apps/alsijil/views.py:1268
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1269
+#: aleksis/apps/alsijil/views.py:1287
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1290
+#: aleksis/apps/alsijil/views.py:1308
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1303
+#: aleksis/apps/alsijil/views.py:1321
 msgid "The group role assignment has been deleted."
 msgstr ""
diff --git a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
index 5be03766fc5fd2402de588d24f214fc62a8bde3a..021e79254ee615657288da8cc3bb96c0476925aa 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: 2021-08-28 17:33+0200\n"
+"POT-Creation-Date: 2021-12-24 13:24+0100\n"
 "PO-Revision-Date: 2021-08-28 15:59+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
-"Language-Team: German <https://translate.edugit.org/projects/aleksis/"
-"aleksis-app-alsijil/de/>\n"
+"Language-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"
@@ -111,10 +110,10 @@ msgstr "Nach"
 msgid "Before"
 msgstr "Bevor"
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:302
 #: aleksis/apps/alsijil/tables.py:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
+#: 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:169
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:200
 msgid "Subject"
@@ -132,99 +131,100 @@ msgstr "Verspätung ist größer als"
 msgid "Homework for the next lesson"
 msgstr "Hausaufgabe zur nächsten Stunde"
 
-#: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:73 aleksis/apps/alsijil/forms.py:214
+#: aleksis/apps/alsijil/forms.py:301
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr "Gruppe"
 
-#: aleksis/apps/alsijil/forms.py:75
+#: aleksis/apps/alsijil/forms.py:79
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:170
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:201
 msgid "Teacher"
 msgstr "Lehrkraft"
 
-#: aleksis/apps/alsijil/forms.py:90
+#: aleksis/apps/alsijil/forms.py:96
 msgid "You can't select a group and a teacher both."
 msgstr "Es kann nur entweder eine Gruppe oder eine Lehrkraft ausgewählt werden."
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
-#: aleksis/apps/alsijil/models.py:446
+#: aleksis/apps/alsijil/forms.py:150 aleksis/apps/alsijil/forms.py:303
+#: aleksis/apps/alsijil/models.py:471
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Startdatum"
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
-#: aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/forms.py:304
+#: aleksis/apps/alsijil/models.py:475
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Enddatum"
 
-#: aleksis/apps/alsijil/forms.py:146
+#: aleksis/apps/alsijil/forms.py:152
 msgid "Start period"
 msgstr "Startstunde"
 
-#: aleksis/apps/alsijil/forms.py:147
+#: aleksis/apps/alsijil/forms.py:153
 msgid "End period"
 msgstr "Endstunde"
 
-#: aleksis/apps/alsijil/forms.py:148
+#: aleksis/apps/alsijil/forms.py:154 aleksis/apps/alsijil/tables.py:108
+#: aleksis/apps/alsijil/tables.py:129
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:312
 msgid "Absent"
 msgstr "Abwesend"
 
-#: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
+#: aleksis/apps/alsijil/forms.py:155 aleksis/apps/alsijil/tables.py:137
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
 msgstr "Entschuldigt"
 
-#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/models.py:62
-#: aleksis/apps/alsijil/models.py:232
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:266
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:307
+#: aleksis/apps/alsijil/forms.py:157 aleksis/apps/alsijil/models.py:62
+#: aleksis/apps/alsijil/models.py:236
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
 msgstr "Entschuldigungsart"
 
-#: aleksis/apps/alsijil/forms.py:156
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:268
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:328
+#: aleksis/apps/alsijil/forms.py:162
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:33
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:93
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:314
 msgid "Remarks"
 msgstr "Bemerkungen"
 
-#: aleksis/apps/alsijil/forms.py:218
+#: aleksis/apps/alsijil/forms.py:227
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:262
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Person"
 
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:299
 msgid "School term"
 msgstr "Schuljahr"
 
-#: aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/forms.py:300
 msgid "Has lesson documentation"
 msgstr "Hat eine Stunden-Dokumentation"
 
-#: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:16
+#: aleksis/apps/alsijil/managers.py:88 aleksis/apps/alsijil/tables.py:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:176
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:240
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:316
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:21
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:335
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:415
-#: aleksis/apps/alsijil/util/alsijil_helpers.py:314
+#: aleksis/apps/alsijil/util/alsijil_helpers.py:315
 msgid "Event"
 msgstr "Veranstaltung"
 
@@ -276,12 +276,12 @@ msgstr "Alle Stunden"
 msgid "Excuse types"
 msgstr "Entschuldigungsarten"
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:237
-#: aleksis/apps/alsijil/models.py:401
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:267
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:241
+#: aleksis/apps/alsijil/models.py:423 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
@@ -291,164 +291,186 @@ msgstr "Zusätzliche Markierungen"
 msgid "Manage group roles"
 msgstr "Gruppenrollen verwalten"
 
-#: aleksis/apps/alsijil/model_extensions.py:180
+#: aleksis/apps/alsijil/model_extensions.py:191
 msgid "Can view week overview of group class register"
 msgstr "Kann Wochenübersicht des Gruppenklassenbuches sehen"
 
-#: aleksis/apps/alsijil/model_extensions.py:183
+#: aleksis/apps/alsijil/model_extensions.py:195
 msgid "Can view lesson overview of group class register"
 msgstr "Kann Stundenübersicht des Gruppenklassenbuches sehen"
 
-#: aleksis/apps/alsijil/model_extensions.py:185
+#: aleksis/apps/alsijil/model_extensions.py:197
 msgid "Can view all personal notes of a group"
 msgstr "Kann alle persönlichen Notizen einer Gruppe sehen"
 
-#: aleksis/apps/alsijil/model_extensions.py:186
+#: aleksis/apps/alsijil/model_extensions.py:198
 msgid "Can edit all personal notes of a group"
 msgstr "Kann alle persönlichen Notizen einer Gruppe bearbeiten"
 
-#: aleksis/apps/alsijil/model_extensions.py:188
+#: aleksis/apps/alsijil/model_extensions.py:200
 msgid "Can view all lesson documentation of a group"
 msgstr "Kann alle Unterrichtsdokumentationen für eine Gruppe sehen"
 
-#: aleksis/apps/alsijil/model_extensions.py:191
+#: aleksis/apps/alsijil/model_extensions.py:203
 msgid "Can edit all lesson documentation of a group"
 msgstr "Kann alle Unterrichtsdokumentationen für eine Gruppe bearbeiten"
 
-#: aleksis/apps/alsijil/model_extensions.py:193
+#: aleksis/apps/alsijil/model_extensions.py:205
 msgid "Can view full register of a group"
 msgstr "Kann komplettes Klassenbuch einer Gruppe sehen"
 
-#: aleksis/apps/alsijil/model_extensions.py:195
+#: aleksis/apps/alsijil/model_extensions.py:207
 msgid "Can register an absence for all members of a group"
 msgstr "Kann eine Absenz für alle Mitglieder eine Gruppe registrieren"
 
-#: aleksis/apps/alsijil/model_extensions.py:197
+#: aleksis/apps/alsijil/model_extensions.py:209
+#, fuzzy
+#| msgid "Assign group role for %(group)s"
+msgid "Can assign a group role for this group"
+msgstr "Gruppenrolle für %(group)s zuweisen"
+
+#: aleksis/apps/alsijil/model_extensions.py:210
 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:388
+#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:410
 msgid "Short name"
 msgstr "Kurzname"
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
-#: aleksis/apps/alsijil/models.py:413
+#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:411
+#: aleksis/apps/alsijil/models.py:435
 #: 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:22
 msgid "Name"
 msgstr "Name"
 
-#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:303
+#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:315
 msgid "Year"
 msgstr "Jahr"
 
-#: aleksis/apps/alsijil/models.py:271
+#: aleksis/apps/alsijil/models.py:275
 msgid "Personal note"
 msgstr "Persönliche Notiz"
 
-#: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
+#: aleksis/apps/alsijil/models.py:276
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:317
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:18
 msgid "Personal notes"
 msgstr "Persönliche Notizen"
 
-#: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
+#: aleksis/apps/alsijil/models.py:327
+#: 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/print/full_register.html:381
 msgid "Lesson topic"
 msgstr "Stundenthema"
 
-#: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
+#: aleksis/apps/alsijil/models.py:328
+#: 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/print/full_register.html:382
 msgid "Homework"
 msgstr "Hausaufgaben"
 
-#: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
+#: aleksis/apps/alsijil/models.py:329
+#: 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
 msgid "Group note"
 msgstr "Gruppennotiz"
 
-#: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
+#: aleksis/apps/alsijil/models.py:376
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr "Stunden-Dokumentation"
 
-#: aleksis/apps/alsijil/models.py:364
+#: aleksis/apps/alsijil/models.py:377
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:68
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr "Stunden-Dokumentationen"
 
-#: aleksis/apps/alsijil/models.py:400
+#: aleksis/apps/alsijil/models.py:422
 msgid "Extra mark"
 msgstr "Zusätzliche Markierung"
 
-#: aleksis/apps/alsijil/models.py:414
+#: aleksis/apps/alsijil/models.py:436
 msgid "Icon"
 msgstr "Symbol"
 
-#: aleksis/apps/alsijil/models.py:415
+#: aleksis/apps/alsijil/models.py:437
 msgid "Colour"
 msgstr "Farbe"
 
-#: aleksis/apps/alsijil/models.py:421 aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/models.py:458
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Gruppenrolle"
 
-#: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
+#: aleksis/apps/alsijil/models.py:444
+#: 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:441
+#: aleksis/apps/alsijil/models.py:448
+#, fuzzy
+#| msgid "Assign group role"
+msgid "Can assign group role"
+msgstr "Gruppenrolle zuweisen"
+
+#: aleksis/apps/alsijil/models.py:464
 msgid "Assigned person"
 msgstr "Zugewiesene Person"
 
-#: aleksis/apps/alsijil/models.py:444 aleksis/apps/alsijil/tables.py:98
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:104
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:220
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/tables.py:98
+#: 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:451
+#: aleksis/apps/alsijil/models.py:476
 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:466
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group role assignment"
 msgstr "Zuweisung von Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:492
 msgid "Group role assignments"
 msgstr "Zuweisungen von Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:474
+#: aleksis/apps/alsijil/models.py:499
+#, fuzzy
+#| msgid "Can view week overview"
+msgid "Can view lesson overview"
+msgstr "Kann die Wochenübersicht sehen"
+
+#: aleksis/apps/alsijil/models.py:500
 msgid "Can view week overview"
 msgstr "Kann die Wochenübersicht sehen"
 
-#: aleksis/apps/alsijil/models.py:475
+#: aleksis/apps/alsijil/models.py:501
+#, fuzzy
+#| msgid "Can view full register of a group"
+msgid "Can view full register"
+msgstr "Kann komplettes Klassenbuch einer Gruppe sehen"
+
+#: aleksis/apps/alsijil/models.py:502
 msgid "Can register absence"
 msgstr "Kann eine Absenz registrieren"
 
-#: aleksis/apps/alsijil/models.py:476
+#: aleksis/apps/alsijil/models.py:503
 msgid "Can list all personal note filters"
 msgstr "Kann alle Filter für persönliche Notizen anzeigen"
 
@@ -532,16 +554,28 @@ msgid "Date"
 msgstr "Datum"
 
 #: aleksis/apps/alsijil/tables.py:95
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:102
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:17
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 msgid "Period"
 msgstr "Stunde"
 
 #: aleksis/apps/alsijil/tables.py:103
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:231
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:257
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:336
 msgid "Teachers"
 msgstr "Lehrkräfte"
 
+#: aleksis/apps/alsijil/tables.py:109
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
+msgid "Tardiness"
+msgstr "Verspätung"
+
 #: aleksis/apps/alsijil/tables.py:110
 msgid "Excuse"
 msgstr "Entschuldigen"
@@ -554,7 +588,7 @@ msgstr "{value}' verspätet"
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:5
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:385
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr "Abwesenheit eintragen"
@@ -615,13 +649,15 @@ msgstr "Schülerinnen und Schüler"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:35
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:76
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:40
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:51
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:78
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 msgid "Students list"
 msgstr "Liste der Schülerinnen und Schüler"
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:39
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:60
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:69
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:27
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:16
@@ -641,8 +677,8 @@ msgstr "Rollen"
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:20
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:42
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:44
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:58
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:97
 msgid "Generate printout"
 msgstr "Ausdruck generieren"
 
@@ -659,119 +695,48 @@ msgstr "Schülerinnen und Schüler"
 msgid "Lesson"
 msgstr "Unterrichtsstunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
-msgid "Back to week view"
-msgstr "Zurück zur Wochenübersicht"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:24
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:27
+#, fuzzy
+#| msgid "Person"
+msgid "Persons"
+msgstr "Person"
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:34
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:82
+#, fuzzy
+#| msgid "Previous lesson"
+msgid "Previous"
+msgstr "Vorherige Unterrichtsstunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:42
+msgid "More"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:75
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:81
 msgid "My previous lesson"
 msgstr "Meine vorherige Stunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:92
 msgid "My next lesson"
 msgstr "Meine nächste Stunde"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
-#, python-format
-msgid "%(period)s. period"
-msgstr "%(period)s. Stunde"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
-#, python-format
-msgid ""
-"\n"
-"            Previous %(subject)s lesson\n"
-"          "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:93
+msgid "Next"
 msgstr ""
-"\n"
-"            Vorherige %(subject)s-Stunde\n"
-"          "
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
-#, python-format
-msgid ""
-"\n"
-"            Next %(subject)s lesson\n"
-"          "
-msgstr ""
-"\n"
-"            Nächste %(subject)s-Stunde\n"
-"          "
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
-msgid "Previous lesson"
-msgstr "Vorherige Unterrichtsstunde"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
-msgid "Change history"
-msgstr "Veränderungen"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:186
-msgid "Overview: Previous lesson"
-msgstr "Übersicht: Vorherige Stunde"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:193
-msgid "Lesson topic of previous lesson:"
-msgstr "Stundenthema der vorherigen Stunde:"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:200
-msgid "Homework for this lesson:"
-msgstr "Hausaufgaben zu dieser Stunde:"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:207
-msgid "Group notes for previous lesson:"
-msgstr "Gruppennotizen für die vorherige Stunde:"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:214
-msgid "Absent persons:"
-msgstr "Abwesende Personen:"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:221
-msgid "Late persons:"
-msgstr "Verspätete Personen:"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
-msgid "Tardiness"
-msgstr "Verspätung"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:293
-msgid "Tardiness (in m)"
-msgstr "Verspätung (in m)"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:399
-#, python-format
-msgid ""
-"\n"
-"              Previous %(subject)s lesson\n"
-"            "
-msgstr ""
-"\n"
-"              Vorherige %(subject)s Stunde\n"
-"            "
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:409
-#, python-format
-msgid ""
-"\n"
-"              Next %(subject)s lesson\n"
-"            "
-msgstr ""
-"\n"
-"              Nächste %(subject)s Stunde\n"
-"            "
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:425
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:143
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "                This lesson overlaps with holidays and can't be edited.\n"
+#| "              "
 msgid ""
 "\n"
-"                This lesson overlaps with holidays and can't be edited.\n"
-"              "
+"                  This lesson overlaps with holidays and can't be edited.\n"
+"                "
 msgstr ""
 "\n"
 "                Diese Stunde ist in den Ferien und kann somit nicht bearbeitet werden.\n"
@@ -822,6 +787,12 @@ msgstr "Schließen"
 msgid "Filter"
 msgstr "Filtern"
 
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:91
+#, fuzzy
+#| msgid "Filter personal notes"
+msgid "Filter results"
+msgstr "Persönliche Notizen filtern"
+
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:119
 msgid "Statistics on absences, tardiness and remarks"
 msgstr "Statistiken zu Fehlzeiten, Verspätungen und Bemerkungen"
@@ -853,11 +824,17 @@ msgstr "Unentschuldigt"
 msgid "Students list: %(group)s"
 msgstr "Liste der Schülerinnen und Schüler: %(group)s"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:23
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:54
 msgid "Select"
 msgstr "Auswählen"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:31
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:62
+#, fuzzy
+#| msgid "Clear all filters"
+msgid "Toggle filters"
+msgstr "Alle Filter zurücksetzen"
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:69
 #, python-format
 msgid ""
 "CW %(week)s:\n"
@@ -866,24 +843,34 @@ msgstr ""
 "KW %(week)s: \n"
 "%(instance)s"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:340
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:293
+msgid "Unfold"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:360
+#, fuzzy
+#| msgid "Personal overview"
+msgid "Visit lesson overview"
+msgstr "Persönliche Übersicht"
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:398
 msgid "unexcused"
 msgstr "unentschuldigt"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:343
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:401
 msgid "Summed up tardiness"
 msgstr "Summierte Verspätung"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:404
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr "Anzahl der Verspätungen"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:436
 msgid "No lessons available"
 msgstr "Keine Stunden verfügbar"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
+#: 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"
@@ -913,11 +900,8 @@ msgid ""
 "  "
 msgstr ""
 "\n"
-"    Diese Funktion sollte nur benutzt werden, um Alternativen zur normalen "
-"Entschuldigung, welche von sich aus extra gezählt wird, zu definieren.\n"
-"Benutzen Sie diese Funktion nicht, um eine Entschuldigungsart für normale "
-"Entschuldigungen zu erstellen oder wenn Sie nicht zwischen verschiedenen "
-"Entschuldigungsarten unterscheiden möchten.\n"
+"    Diese Funktion sollte nur benutzt werden, um Alternativen zur normalen Entschuldigung, welche von sich aus extra gezählt wird, zu definieren.\n"
+"Benutzen Sie diese Funktion nicht, um eine Entschuldigungsart für normale Entschuldigungen zu erstellen oder wenn Sie nicht zwischen verschiedenen Entschuldigungsarten unterscheiden möchten.\n"
 "  "
 
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html:6
@@ -996,8 +980,7 @@ msgid ""
 "  "
 msgstr ""
 "\n"
-"    Sie können zusätzliche Aktionen für jede Gruppenrollenzuweisung "
-"aufrufen, \n"
+"    Sie können zusätzliche Aktionen für jede Gruppenrollenzuweisung aufrufen, \n"
 "wenn Sie auf den Namen der entsprechenden Person klicken.\n"
 "  "
 
@@ -1040,26 +1023,116 @@ msgstr "Unentschuldigte Fehlzeiten"
 msgid "Excused absences"
 msgstr "Entschuldigte Fehlzeiten"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:6
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:28
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:7
+#, python-format
+msgid "%(period)s. period"
+msgstr "%(period)s. Stunde"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:31
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| "            Previous %(subject)s lesson\n"
+#| "          "
+msgid ""
+"\n"
+"            %(period_from)s.–%(period_to)s.  period\n"
+"          "
+msgstr ""
+"\n"
+"            Vorherige %(subject)s-Stunde\n"
+"          "
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:10
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:135
+msgid "Save"
+msgstr "Speichern"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:19
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| "          Previous %(subject)s lesson\n"
+#| "        "
+msgid ""
+"\n"
+"        Previous %(subject)s lesson\n"
+"      "
+msgstr ""
+"\n"
+"          Vorherige %(subject)s Stunde\n"
+"        "
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:30
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| "          Next %(subject)s lesson\n"
+#| "        "
+msgid ""
+"\n"
+"        Next %(subject)s lesson\n"
+"      "
+msgstr ""
+"\n"
+"          Nächste %(subject)s Stunde\n"
+"        "
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
+msgid "Change history"
+msgstr "Veränderungen"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:58
+msgid "Tardiness (in m)"
+msgstr "Verspätung (in m)"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:6
+msgid "Overview: Previous lesson"
+msgstr "Übersicht: Vorherige Stunde"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:13
+msgid "Lesson topic of previous lesson:"
+msgstr "Stundenthema der vorherigen Stunde:"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:20
+msgid "Homework for this lesson:"
+msgstr "Hausaufgaben zu dieser Stunde:"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:27
+msgid "Group notes for previous lesson:"
+msgstr "Gruppennotizen für die vorherige Stunde:"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:34
+msgid "Absent persons:"
+msgstr "Abwesende Personen:"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:41
+msgid "Late persons:"
+msgstr "Verspätete Personen:"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:6
 msgid "Data complete"
 msgstr "Daten vollständig"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:12
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:17
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:30
 msgid "Missing data"
 msgstr "Fehlende Daten"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:27
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:32
 msgid "Pending"
 msgstr "Findet gerade statt"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:426
 msgid "Lesson cancelled"
 msgstr "Stunde ist ausgefallen"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:34
 msgid "Substitution"
 msgstr "Vertretung"
 
@@ -1277,84 +1350,117 @@ msgstr "KW"
 msgid "Notes"
 msgstr "Notizen"
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:117
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 "Sie haben eine ungültige Stunde ausgewählt oder es\n"
 "      läuft momentan keine Stunde."
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:150
 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:241
+#: aleksis/apps/alsijil/views.py:246
 msgid "The lesson documentation has been saved."
 msgstr "Die Stunden-Dokumentation wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:275
+#: aleksis/apps/alsijil/views.py:280
 msgid "The personal notes have been saved."
 msgstr "Die persönlichen Notizen wurden gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1031
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The absence has been saved."
 msgstr "Die Abwesenheit wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1052
+#: aleksis/apps/alsijil/views.py:1070
 msgid "The personal note has been deleted."
 msgstr "Die persönliche Notiz wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1074
+#: aleksis/apps/alsijil/views.py:1092
 msgid "The extra mark has been created."
 msgstr "Die zusätzliche Markierung wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1086
+#: aleksis/apps/alsijil/views.py:1104
 msgid "The extra mark has been saved."
 msgstr "Die zusätzliche Markierung wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1097
+#: aleksis/apps/alsijil/views.py:1115
 msgid "The extra mark has been deleted."
 msgstr "Die zusätzliche Markierung wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1118
+#: aleksis/apps/alsijil/views.py:1136
 msgid "The excuse type has been created."
 msgstr "Die Entschuldigungsart wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1130
+#: aleksis/apps/alsijil/views.py:1148
 msgid "The excuse type has been saved."
 msgstr "Die Entschuldigunsart wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1141
+#: aleksis/apps/alsijil/views.py:1159
 msgid "The excuse type has been deleted."
 msgstr "Die Entschuldigungsart wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1180
 msgid "The group role has been created."
 msgstr "Die Gruppenrolle wurde erstellt."
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1192
 msgid "The group role has been saved."
 msgstr "Die Gruppenrolle wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1203
 msgid "The group role has been deleted."
 msgstr "Die Gruppenrolle wurde gelöscht."
 
-#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1236 aleksis/apps/alsijil/views.py:1268
 msgid "The group role has been assigned."
 msgstr "Die Gruppenrolle wurde zugewiesen."
 
-#: aleksis/apps/alsijil/views.py:1269
+#: aleksis/apps/alsijil/views.py:1287
 msgid "The group role assignment has been saved."
 msgstr "Die Gruppenrollenzuweisung wurde gespeichert."
 
-#: aleksis/apps/alsijil/views.py:1290
+#: aleksis/apps/alsijil/views.py:1308
 msgid "The group role assignment has been stopped."
 msgstr "Die Gruppenrollenzuweisung wurde beendet."
 
-#: aleksis/apps/alsijil/views.py:1303
+#: aleksis/apps/alsijil/views.py:1321
 msgid "The group role assignment has been deleted."
 msgstr "Die Gruppenrollenzuweisung wurde gelöscht."
 
+#~ msgid "Back to week view"
+#~ msgstr "Zurück zur Wochenübersicht"
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ "            Next %(subject)s lesson\n"
+#~ "          "
+#~ msgstr ""
+#~ "\n"
+#~ "            Nächste %(subject)s-Stunde\n"
+#~ "          "
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ "              Previous %(subject)s lesson\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              Vorherige %(subject)s Stunde\n"
+#~ "            "
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ "              Next %(subject)s lesson\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              Nächste %(subject)s Stunde\n"
+#~ "            "
+
 #~ msgid "Delete note"
 #~ msgstr "Notiz löschen"
 
@@ -1388,24 +1494,6 @@ msgstr "Die Gruppenrollenzuweisung wurde gelöscht."
 #~ msgid "Lesson documentation for week"
 #~ msgstr "Unterrichtsdokumentation für Woche"
 
-#~ msgid ""
-#~ "\n"
-#~ "          Previous %(subject)s lesson\n"
-#~ "        "
-#~ msgstr ""
-#~ "\n"
-#~ "          Vorherige %(subject)s Stunde\n"
-#~ "        "
-
-#~ msgid ""
-#~ "\n"
-#~ "          Next %(subject)s lesson\n"
-#~ "        "
-#~ msgstr ""
-#~ "\n"
-#~ "          Nächste %(subject)s Stunde\n"
-#~ "        "
-
 #~ msgid "There is no current school term."
 #~ msgstr "Es gibt aktuell kein Schuljahr."
 
@@ -1445,9 +1533,6 @@ msgstr "Die Gruppenrollenzuweisung wurde gelöscht."
 #~ msgid "No group selected"
 #~ msgstr "Keine Gruppe ausgewählt"
 
-#~ msgid "Save"
-#~ msgstr "Speichern"
-
 #, fuzzy
 #~| msgid "Current lesson"
 #~ msgid "Starting lesson"
diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
index abffdb41cdf1c23f9ab05a7ca1b612ef9d1a4db1..d25ac9f4f0bdc1613df656adab70a6add98209d2 100644
--- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-28 17:33+0200\n"
+"POT-Creation-Date: 2021-12-24 13:24+0100\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"
@@ -122,10 +122,10 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:302
 #: aleksis/apps/alsijil/tables.py:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
+#: 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:169
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:200
 msgid "Subject"
@@ -147,107 +147,108 @@ msgstr "Retard"
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:73 aleksis/apps/alsijil/forms.py:214
+#: aleksis/apps/alsijil/forms.py:301
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr "groupe"
 
-#: aleksis/apps/alsijil/forms.py:75
+#: aleksis/apps/alsijil/forms.py:79
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:170
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:201
 msgid "Teacher"
 msgstr "prof"
 
-#: aleksis/apps/alsijil/forms.py:90
+#: aleksis/apps/alsijil/forms.py:96
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
-#: aleksis/apps/alsijil/models.py:446
+#: aleksis/apps/alsijil/forms.py:150 aleksis/apps/alsijil/forms.py:303
+#: aleksis/apps/alsijil/models.py:471
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Date de début"
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
-#: aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/forms.py:304
+#: aleksis/apps/alsijil/models.py:475
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Date de fin"
 
-#: aleksis/apps/alsijil/forms.py:146
+#: aleksis/apps/alsijil/forms.py:152
 #, fuzzy
 #| msgid "From period"
 msgid "Start period"
 msgstr "De la période"
 
-#: aleksis/apps/alsijil/forms.py:147
+#: aleksis/apps/alsijil/forms.py:153
 #, fuzzy
 #| msgid "From period"
 msgid "End period"
 msgstr "De la période"
 
-#: aleksis/apps/alsijil/forms.py:148
+#: aleksis/apps/alsijil/forms.py:154 aleksis/apps/alsijil/tables.py:108
+#: aleksis/apps/alsijil/tables.py:129
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:312
 msgid "Absent"
 msgstr "Absent(e)"
 
-#: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
+#: aleksis/apps/alsijil/forms.py:155 aleksis/apps/alsijil/tables.py:137
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/models.py:62
-#: aleksis/apps/alsijil/models.py:232
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:266
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:307
+#: aleksis/apps/alsijil/forms.py:157 aleksis/apps/alsijil/models.py:62
+#: aleksis/apps/alsijil/models.py:236
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 #, fuzzy
 #| msgid "Excused"
 msgid "Excuse type"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/forms.py:156
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:268
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:328
+#: aleksis/apps/alsijil/forms.py:162
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:33
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:93
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:314
 msgid "Remarks"
 msgstr "Remarque"
 
-#: aleksis/apps/alsijil/forms.py:218
+#: aleksis/apps/alsijil/forms.py:227
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:262
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Personne"
 
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:299
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/forms.py:300
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Has lesson documentation"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:16
+#: aleksis/apps/alsijil/managers.py:88 aleksis/apps/alsijil/tables.py:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:176
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:240
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:316
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:21
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:335
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:415
-#: aleksis/apps/alsijil/util/alsijil_helpers.py:314
+#: aleksis/apps/alsijil/util/alsijil_helpers.py:315
 msgid "Event"
 msgstr ""
 
@@ -307,12 +308,12 @@ msgstr ""
 msgid "Excuse types"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:237
-#: aleksis/apps/alsijil/models.py:401
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:267
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:241
+#: aleksis/apps/alsijil/models.py:423 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
@@ -322,148 +323,149 @@ msgstr ""
 msgid "Manage group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:180
+#: aleksis/apps/alsijil/model_extensions.py:191
 msgid "Can view week overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:183
+#: aleksis/apps/alsijil/model_extensions.py:195
 msgid "Can view lesson overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:185
+#: aleksis/apps/alsijil/model_extensions.py:197
 #, fuzzy
 #| msgid "List of all personal note filters"
 msgid "Can view all personal notes of a group"
 msgstr "Liste de filtres de notes personnelles"
 
-#: aleksis/apps/alsijil/model_extensions.py:186
+#: aleksis/apps/alsijil/model_extensions.py:198
 #, fuzzy
 #| msgid "List of all personal note filters"
 msgid "Can edit all personal notes of a group"
 msgstr "Liste de filtres de notes personnelles"
 
-#: aleksis/apps/alsijil/model_extensions.py:188
+#: aleksis/apps/alsijil/model_extensions.py:200
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "Can view all lesson documentation of a group"
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/model_extensions.py:191
+#: aleksis/apps/alsijil/model_extensions.py:203
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "Can edit all lesson documentation of a group"
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/model_extensions.py:193
+#: aleksis/apps/alsijil/model_extensions.py:205
 msgid "Can view full register of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:195
+#: aleksis/apps/alsijil/model_extensions.py:207
 msgid "Can register an absence for all members of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:197
+#: aleksis/apps/alsijil/model_extensions.py:209
+msgid "Can assign a group role for this group"
+msgstr ""
+
+#: aleksis/apps/alsijil/model_extensions.py:210
 #, fuzzy
 #| msgid "Class register"
 msgid "Can register an absence for a person"
 msgstr "Registre de la classe"
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:388
+#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:410
 #, fuzzy
 #| msgid "First name"
 msgid "Short name"
 msgstr "Prénom"
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
-#: aleksis/apps/alsijil/models.py:413
+#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:411
+#: aleksis/apps/alsijil/models.py:435
 #: 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:22
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:303
+#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:315
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:271
+#: aleksis/apps/alsijil/models.py:275
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal note"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
+#: aleksis/apps/alsijil/models.py:276
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:317
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:18
 msgid "Personal notes"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
+#: aleksis/apps/alsijil/models.py:327
+#: 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/print/full_register.html:381
 msgid "Lesson topic"
 msgstr "Sujet de cours"
 
-#: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
+#: aleksis/apps/alsijil/models.py:328
+#: 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/print/full_register.html:382
 msgid "Homework"
 msgstr "Devoirs"
 
-#: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
+#: aleksis/apps/alsijil/models.py:329
+#: 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
 #, fuzzy
 #| msgid "Group"
 msgid "Group note"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
+#: aleksis/apps/alsijil/models.py:376
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:364
+#: aleksis/apps/alsijil/models.py:377
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:68
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Lesson documentations"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:400
+#: aleksis/apps/alsijil/models.py:422
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:414
+#: aleksis/apps/alsijil/models.py:436
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:415
+#: aleksis/apps/alsijil/models.py:437
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:421 aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/models.py:458
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 #, fuzzy
 #| msgid "Group"
 msgid "Group role"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
+#: aleksis/apps/alsijil/models.py:444
+#: 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
 #, fuzzy
@@ -471,43 +473,62 @@ msgstr "Groupe"
 msgid "Group roles"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:441
+#: aleksis/apps/alsijil/models.py:448
+#, fuzzy
+#| msgid "Persons in group"
+msgid "Can assign group role"
+msgstr "Personnes en groupe"
+
+#: aleksis/apps/alsijil/models.py:464
 #, fuzzy
 #| msgid "Absences"
 msgid "Assigned person"
 msgstr "Absences"
 
-#: aleksis/apps/alsijil/models.py:444 aleksis/apps/alsijil/tables.py:98
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:104
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:220
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/tables.py:98
+#: 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
 #, fuzzy
 #| msgid "Group"
 msgid "Groups"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:451
+#: aleksis/apps/alsijil/models.py:476
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:466
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:492
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:474
+#: aleksis/apps/alsijil/models.py:499
+#, fuzzy
+#| msgid "Personal overview"
+msgid "Can view lesson overview"
+msgstr "Vue d'ensemble personnelle"
+
+#: aleksis/apps/alsijil/models.py:500
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:475
+#: aleksis/apps/alsijil/models.py:501
+#, fuzzy
+#| msgid "Class register"
+msgid "Can view full register"
+msgstr "Registre de la classe"
+
+#: aleksis/apps/alsijil/models.py:502
 #, fuzzy
 #| msgid "Register absence"
 msgid "Can register absence"
 msgstr "Registre de Absence"
 
-#: aleksis/apps/alsijil/models.py:476
+#: aleksis/apps/alsijil/models.py:503
 #, fuzzy
 #| msgid "List of all personal note filters"
 msgid "Can list all personal note filters"
@@ -595,16 +616,28 @@ msgid "Date"
 msgstr "Date"
 
 #: aleksis/apps/alsijil/tables.py:95
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:102
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:17
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 msgid "Period"
 msgstr "Période"
 
 #: aleksis/apps/alsijil/tables.py:103
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:231
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:257
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:336
 msgid "Teachers"
 msgstr "Profs"
 
+#: aleksis/apps/alsijil/tables.py:109
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
+msgid "Tardiness"
+msgstr "Retard"
+
 #: aleksis/apps/alsijil/tables.py:110
 #, fuzzy
 #| msgid "Excused"
@@ -619,7 +652,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:5
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:385
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr "Registre de Absence"
@@ -680,13 +713,15 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:35
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:76
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:40
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:51
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:78
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 msgid "Students list"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:39
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:60
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:69
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:27
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:16
@@ -706,8 +741,8 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:20
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:42
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:44
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:58
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:97
 msgid "Generate printout"
 msgstr ""
 
@@ -724,116 +759,43 @@ msgstr ""
 msgid "Lesson"
 msgstr "Cours"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:24
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:27
 #, fuzzy
-#| msgid "Week view"
-msgid "Back to week view"
-msgstr "Vue de semaine"
+#| msgid "Person"
+msgid "Persons"
+msgstr "Personne"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:34
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:82
 #, fuzzy
 #| msgid "Current lesson"
-msgid "My previous lesson"
+msgid "Previous"
 msgstr "Lecon actuelle"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:42
+msgid "More"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:75
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:81
 #, fuzzy
 #| msgid "Current lesson"
-msgid "My next lesson"
+msgid "My previous lesson"
 msgstr "Lecon actuelle"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
-#, fuzzy, python-format
-#| msgid "From period"
-msgid "%(period)s. period"
-msgstr "De la période"
-
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
-#, python-format
-msgid ""
-"\n"
-"            Previous %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
-#, python-format
-msgid ""
-"\n"
-"            Next %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:92
 #, fuzzy
 #| msgid "Current lesson"
-msgid "Previous lesson"
+msgid "My next lesson"
 msgstr "Lecon actuelle"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
-msgid "Change history"
-msgstr "Changement d' histoire"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:186
-msgid "Overview: Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:193
-msgid "Lesson topic of previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:200
-msgid "Homework for this lesson:"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:93
+msgid "Next"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:207
-msgid "Group notes for previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:214
-#, fuzzy
-#| msgid "Absences"
-msgid "Absent persons:"
-msgstr "Absences"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:221
-msgid "Late persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
-msgid "Tardiness"
-msgstr "Retard"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:293
-#, fuzzy
-#| msgid "Tardiness"
-msgid "Tardiness (in m)"
-msgstr "Retard"
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:399
-#, python-format
-msgid ""
-"\n"
-"              Previous %(subject)s lesson\n"
-"            "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:409
-#, python-format
-msgid ""
-"\n"
-"              Next %(subject)s lesson\n"
-"            "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:425
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:143
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -841,8 +803,8 @@ msgstr ""
 #| "          "
 msgid ""
 "\n"
-"                This lesson overlaps with holidays and can't be edited.\n"
-"              "
+"                  This lesson overlaps with holidays and can't be edited.\n"
+"                "
 msgstr ""
 "\n"
 "            Il n' y a pas des cours pour le groupe sélectionné, les profs, le salle ou le temps.\n"
@@ -896,6 +858,12 @@ msgstr ""
 msgid "Filter"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:91
+#, fuzzy
+#| msgid "Relevant personal notes"
+msgid "Filter results"
+msgstr "Notes personnelles importantes"
+
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:119
 msgid "Statistics on absences, tardiness and remarks"
 msgstr ""
@@ -927,37 +895,53 @@ msgstr "injustifié(e)"
 msgid "Students list: %(group)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:23
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:54
 msgid "Select"
 msgstr "Sélectionner"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:31
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:62
+#, fuzzy
+#| msgid "Personal note filters"
+msgid "Toggle filters"
+msgstr "Filtres de notes personnelles"
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:69
 #, python-format
 msgid ""
 "CW %(week)s:\n"
 "      %(instance)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:340
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:293
+msgid "Unfold"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:360
+#, fuzzy
+#| msgid "Personal overview"
+msgid "Visit lesson overview"
+msgstr "Vue d'ensemble personnelle"
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:398
 msgid "unexcused"
 msgstr "Injustifié(e)"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:343
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:401
 msgid "Summed up tardiness"
 msgstr "Résumé des retards"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:404
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 #, fuzzy
 #| msgid "Summed up tardiness"
 msgid "Count of tardiness"
 msgstr "Résumé des retards"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:436
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:439
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -1115,26 +1099,100 @@ msgstr "injustifié(e)"
 msgid "Excused absences"
 msgstr "injustifié(e)"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:6
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:28
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:7
+#, fuzzy, python-format
+#| msgid "From period"
+msgid "%(period)s. period"
+msgstr "De la période"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:31
+#, python-format
+msgid ""
+"\n"
+"            %(period_from)s.–%(period_to)s.  period\n"
+"          "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:10
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:135
+msgid "Save"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:19
+#, python-format
+msgid ""
+"\n"
+"        Previous %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:30
+#, python-format
+msgid ""
+"\n"
+"        Next %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
+msgid "Change history"
+msgstr "Changement d' histoire"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:58
+#, fuzzy
+#| msgid "Tardiness"
+msgid "Tardiness (in m)"
+msgstr "Retard"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:6
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:13
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:20
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:27
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:34
+#, fuzzy
+#| msgid "Absences"
+msgid "Absent persons:"
+msgstr "Absences"
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:41
+msgid "Late persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:6
 msgid "Data complete"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:12
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:17
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:30
 msgid "Missing data"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:27
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:32
 msgid "Pending"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:426
 msgid "Lesson cancelled"
 msgstr "Cours annulés"
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:34
 msgid "Substitution"
 msgstr ""
 
@@ -1352,104 +1410,109 @@ msgstr "Vue de semaine"
 msgid "Notes"
 msgstr "Notes"
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:117
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:150
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:241
+#: aleksis/apps/alsijil/views.py:246
 #, 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:275
+#: aleksis/apps/alsijil/views.py:280
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1031
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1052
+#: aleksis/apps/alsijil/views.py:1070
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The personal note has been deleted."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1074
+#: aleksis/apps/alsijil/views.py:1092
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The extra mark has been created."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1086
+#: aleksis/apps/alsijil/views.py:1104
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The extra mark has been saved."
 msgstr "Documentation de cours pour la semaine calendrier"
 
-#: aleksis/apps/alsijil/views.py:1097
+#: aleksis/apps/alsijil/views.py:1115
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1118
+#: aleksis/apps/alsijil/views.py:1136
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1130
+#: aleksis/apps/alsijil/views.py:1148
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1141
+#: aleksis/apps/alsijil/views.py:1159
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1180
 #, 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:1174
+#: aleksis/apps/alsijil/views.py:1192
 #, 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:1185
+#: aleksis/apps/alsijil/views.py:1203
 #, 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:1218 aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1236 aleksis/apps/alsijil/views.py:1268
 #, 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:1269
+#: aleksis/apps/alsijil/views.py:1287
 #, 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:1290
+#: aleksis/apps/alsijil/views.py:1308
 #, 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:1303
+#: aleksis/apps/alsijil/views.py:1321
 #, fuzzy
 #| msgid "Lesson documentation for calendar week"
 msgid "The group role assignment has been deleted."
 msgstr "Documentation de cours pour la semaine calendrier"
 
+#, fuzzy
+#~| msgid "Week view"
+#~ msgid "Back to week view"
+#~ msgstr "Vue de semaine"
+
 #, fuzzy
 #~| msgid "Lesson documentation for calendar week"
 #~ msgid "Lesson documentation for week"
diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
index 629487406bc5de79c6e899c4080e8147f9c7a723..fc62666b0939662f7b64dd2b03f1cfa3e68dedb6 100644
--- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-28 17:33+0200\n"
+"POT-Creation-Date: 2021-12-24 13:24+0100\n"
 "PO-Revision-Date: 2020-07-26 14:08+0000\n"
 "Last-Translator: Julian <leuckerj@gmail.com>\n"
 "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/la/>\n"
@@ -110,10 +110,10 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:302
 #: aleksis/apps/alsijil/tables.py:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
+#: 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:169
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:200
 msgid "Subject"
@@ -131,99 +131,100 @@ msgstr ""
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:73 aleksis/apps/alsijil/forms.py:214
+#: aleksis/apps/alsijil/forms.py:301
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/forms.py:75
+#: aleksis/apps/alsijil/forms.py:79
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:170
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:201
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:90
+#: aleksis/apps/alsijil/forms.py:96
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
-#: aleksis/apps/alsijil/models.py:446
+#: aleksis/apps/alsijil/forms.py:150 aleksis/apps/alsijil/forms.py:303
+#: aleksis/apps/alsijil/models.py:471
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
-#: aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/forms.py:304
+#: aleksis/apps/alsijil/models.py:475
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:146
+#: aleksis/apps/alsijil/forms.py:152
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:147
+#: aleksis/apps/alsijil/forms.py:153
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:148
+#: aleksis/apps/alsijil/forms.py:154 aleksis/apps/alsijil/tables.py:108
+#: aleksis/apps/alsijil/tables.py:129
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:312
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
+#: aleksis/apps/alsijil/forms.py:155 aleksis/apps/alsijil/tables.py:137
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/models.py:62
-#: aleksis/apps/alsijil/models.py:232
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:266
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:307
+#: aleksis/apps/alsijil/forms.py:157 aleksis/apps/alsijil/models.py:62
+#: aleksis/apps/alsijil/models.py:236
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:156
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:268
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:328
+#: aleksis/apps/alsijil/forms.py:162
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:33
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:93
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:314
 msgid "Remarks"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:218
+#: aleksis/apps/alsijil/forms.py:227
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:262
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:299
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/forms.py:300
 msgid "Has lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:16
+#: aleksis/apps/alsijil/managers.py:88 aleksis/apps/alsijil/tables.py:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:176
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:240
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:316
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:21
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:335
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:415
-#: aleksis/apps/alsijil/util/alsijil_helpers.py:314
+#: aleksis/apps/alsijil/util/alsijil_helpers.py:315
 msgid "Event"
 msgstr ""
 
@@ -277,12 +278,12 @@ msgstr ""
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:237
-#: aleksis/apps/alsijil/models.py:401
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:267
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:241
+#: aleksis/apps/alsijil/models.py:423 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
@@ -292,136 +293,137 @@ msgstr ""
 msgid "Manage group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:180
+#: aleksis/apps/alsijil/model_extensions.py:191
 msgid "Can view week overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:183
+#: aleksis/apps/alsijil/model_extensions.py:195
 msgid "Can view lesson overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:185
+#: aleksis/apps/alsijil/model_extensions.py:197
 msgid "Can view all personal notes of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:186
+#: aleksis/apps/alsijil/model_extensions.py:198
 msgid "Can edit all personal notes of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:188
+#: aleksis/apps/alsijil/model_extensions.py:200
 msgid "Can view all lesson documentation of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:191
+#: aleksis/apps/alsijil/model_extensions.py:203
 msgid "Can edit all lesson documentation of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:193
+#: aleksis/apps/alsijil/model_extensions.py:205
 msgid "Can view full register of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:195
+#: aleksis/apps/alsijil/model_extensions.py:207
 msgid "Can register an absence for all members of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:197
+#: aleksis/apps/alsijil/model_extensions.py:209
+msgid "Can assign a group role for this group"
+msgstr ""
+
+#: aleksis/apps/alsijil/model_extensions.py:210
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:388
+#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:410
 #, fuzzy
 #| msgid "First name"
 msgid "Short name"
 msgstr "Primus nomen"
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
-#: aleksis/apps/alsijil/models.py:413
+#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:411
+#: aleksis/apps/alsijil/models.py:435
 #: 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:22
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:303
+#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:315
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:271
+#: aleksis/apps/alsijil/models.py:275
 #, fuzzy
 #| msgid "Person"
 msgid "Personal note"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
+#: aleksis/apps/alsijil/models.py:276
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:317
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:18
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
+#: aleksis/apps/alsijil/models.py:327
+#: 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/print/full_register.html:381
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
+#: aleksis/apps/alsijil/models.py:328
+#: 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/print/full_register.html:382
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
+#: aleksis/apps/alsijil/models.py:329
+#: 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
 #, fuzzy
 #| msgid "Group"
 msgid "Group note"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
+#: aleksis/apps/alsijil/models.py:376
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:364
+#: aleksis/apps/alsijil/models.py:377
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:68
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:400
+#: aleksis/apps/alsijil/models.py:422
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:414
+#: aleksis/apps/alsijil/models.py:436
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:415
+#: aleksis/apps/alsijil/models.py:437
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:421 aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/models.py:458
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 #, fuzzy
 #| msgid "Group"
 msgid "Group role"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
+#: aleksis/apps/alsijil/models.py:444
+#: 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
 #, fuzzy
@@ -429,39 +431,52 @@ msgstr "Grex"
 msgid "Group roles"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:441
+#: aleksis/apps/alsijil/models.py:448
+msgid "Can assign group role"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:464
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:444 aleksis/apps/alsijil/tables.py:98
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:104
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:220
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/tables.py:98
+#: 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
 #, fuzzy
 #| msgid "Group"
 msgid "Groups"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:451
+#: aleksis/apps/alsijil/models.py:476
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:466
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:492
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:474
+#: aleksis/apps/alsijil/models.py:499
+msgid "Can view lesson overview"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:500
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:475
+#: aleksis/apps/alsijil/models.py:501
+msgid "Can view full register"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:502
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:476
+#: aleksis/apps/alsijil/models.py:503
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -545,16 +560,28 @@ msgid "Date"
 msgstr "dies"
 
 #: aleksis/apps/alsijil/tables.py:95
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:102
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:17
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 msgid "Period"
 msgstr ""
 
 #: aleksis/apps/alsijil/tables.py:103
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:231
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:257
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:336
 msgid "Teachers"
 msgstr ""
 
+#: aleksis/apps/alsijil/tables.py:109
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
+msgid "Tardiness"
+msgstr ""
+
 #: aleksis/apps/alsijil/tables.py:110
 msgid "Excuse"
 msgstr ""
@@ -567,7 +594,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:5
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:385
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr ""
@@ -618,13 +645,15 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:35
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:76
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:40
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:51
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:78
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 msgid "Students list"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:39
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:60
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:69
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:27
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:16
@@ -644,8 +673,8 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:20
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:42
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:44
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:58
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:97
 msgid "Generate printout"
 msgstr ""
 
@@ -662,107 +691,41 @@ msgstr ""
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
-msgid "Back to week view"
-msgstr ""
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:24
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:27
+#, fuzzy
+#| msgid "Person"
+msgid "Persons"
+msgstr "Persona"
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
-msgid "My previous lesson"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:34
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:82
+msgid "Previous"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
-msgid "My next lesson"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:42
+msgid "More"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
-#, python-format
-msgid "%(period)s. period"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:75
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:81
+msgid "My previous lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
-#, python-format
-msgid ""
-"\n"
-"            Previous %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
-#, python-format
-msgid ""
-"\n"
-"            Next %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
-msgid "Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
-msgid "Change history"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:186
-msgid "Overview: Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:193
-msgid "Lesson topic of previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:200
-msgid "Homework for this lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:207
-msgid "Group notes for previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:214
-msgid "Absent persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:221
-msgid "Late persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
-msgid "Tardiness"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:293
-msgid "Tardiness (in m)"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:399
-#, python-format
-msgid ""
-"\n"
-"              Previous %(subject)s lesson\n"
-"            "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:92
+msgid "My next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:409
-#, python-format
-msgid ""
-"\n"
-"              Next %(subject)s lesson\n"
-"            "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:93
+msgid "Next"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:425
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:143
 msgid ""
 "\n"
-"                This lesson overlaps with holidays and can't be edited.\n"
-"              "
+"                  This lesson overlaps with holidays and can't be edited.\n"
+"                "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:10
@@ -809,6 +772,12 @@ msgstr ""
 msgid "Filter"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:91
+#, fuzzy
+#| msgid "Person"
+msgid "Filter results"
+msgstr "Persona"
+
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:119
 msgid "Statistics on absences, tardiness and remarks"
 msgstr ""
@@ -840,35 +809,47 @@ msgstr ""
 msgid "Students list: %(group)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:23
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:54
 msgid "Select"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:31
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:62
+msgid "Toggle filters"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:69
 #, python-format
 msgid ""
 "CW %(week)s:\n"
 "      %(instance)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:340
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:293
+msgid "Unfold"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:360
+msgid "Visit lesson overview"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:398
 msgid "unexcused"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:343
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:401
 msgid "Summed up tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:404
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:436
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
+#: 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"
@@ -1012,26 +993,95 @@ msgstr ""
 msgid "Excused absences"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:6
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:28
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:7
+#, python-format
+msgid "%(period)s. period"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:31
+#, python-format
+msgid ""
+"\n"
+"            %(period_from)s.–%(period_to)s.  period\n"
+"          "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:10
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:135
+msgid "Save"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:19
+#, python-format
+msgid ""
+"\n"
+"        Previous %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:30
+#, python-format
+msgid ""
+"\n"
+"        Next %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
+msgid "Change history"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:58
+msgid "Tardiness (in m)"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:6
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:13
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:20
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:27
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:34
+msgid "Absent persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:41
+msgid "Late persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:6
 msgid "Data complete"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:12
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:17
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:30
 msgid "Missing data"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:27
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:32
 msgid "Pending"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:426
 msgid "Lesson cancelled"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:34
 msgid "Substitution"
 msgstr ""
 
@@ -1237,79 +1287,79 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:117
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:150
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:241
+#: aleksis/apps/alsijil/views.py:246
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:275
+#: aleksis/apps/alsijil/views.py:280
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1031
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1052
+#: aleksis/apps/alsijil/views.py:1070
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1074
+#: aleksis/apps/alsijil/views.py:1092
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1086
+#: aleksis/apps/alsijil/views.py:1104
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1097
+#: aleksis/apps/alsijil/views.py:1115
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1118
+#: aleksis/apps/alsijil/views.py:1136
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1130
+#: aleksis/apps/alsijil/views.py:1148
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1141
+#: aleksis/apps/alsijil/views.py:1159
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1180
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1192
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1203
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1236 aleksis/apps/alsijil/views.py:1268
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1269
+#: aleksis/apps/alsijil/views.py:1287
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1290
+#: aleksis/apps/alsijil/views.py:1308
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1303
+#: aleksis/apps/alsijil/views.py:1321
 msgid "The group role assignment has been deleted."
 msgstr ""
 
diff --git a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
index c9fcfa46f7015bda5734a25052658daacf71e2fb..0f75a14f7e9b4a4ec0b20f5fe915794fbb6aa540 100644
--- a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-28 17:33+0200\n"
+"POT-Creation-Date: 2021-12-24 13:24+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -109,10 +109,10 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:302
 #: aleksis/apps/alsijil/tables.py:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
+#: 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:169
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:200
 msgid "Subject"
@@ -130,99 +130,100 @@ msgstr ""
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:73 aleksis/apps/alsijil/forms.py:214
+#: aleksis/apps/alsijil/forms.py:301
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:75
+#: aleksis/apps/alsijil/forms.py:79
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:170
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:201
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:90
+#: aleksis/apps/alsijil/forms.py:96
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
-#: aleksis/apps/alsijil/models.py:446
+#: aleksis/apps/alsijil/forms.py:150 aleksis/apps/alsijil/forms.py:303
+#: aleksis/apps/alsijil/models.py:471
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
-#: aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/forms.py:304
+#: aleksis/apps/alsijil/models.py:475
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:146
+#: aleksis/apps/alsijil/forms.py:152
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:147
+#: aleksis/apps/alsijil/forms.py:153
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:148
+#: aleksis/apps/alsijil/forms.py:154 aleksis/apps/alsijil/tables.py:108
+#: aleksis/apps/alsijil/tables.py:129
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:312
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
+#: aleksis/apps/alsijil/forms.py:155 aleksis/apps/alsijil/tables.py:137
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/models.py:62
-#: aleksis/apps/alsijil/models.py:232
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:266
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:307
+#: aleksis/apps/alsijil/forms.py:157 aleksis/apps/alsijil/models.py:62
+#: aleksis/apps/alsijil/models.py:236
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:156
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:268
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:328
+#: aleksis/apps/alsijil/forms.py:162
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:33
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:93
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:314
 msgid "Remarks"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:218
+#: aleksis/apps/alsijil/forms.py:227
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:262
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:299
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/forms.py:300
 msgid "Has lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:16
+#: aleksis/apps/alsijil/managers.py:88 aleksis/apps/alsijil/tables.py:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:176
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:240
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:316
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:21
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:335
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:415
-#: aleksis/apps/alsijil/util/alsijil_helpers.py:314
+#: aleksis/apps/alsijil/util/alsijil_helpers.py:315
 msgid "Event"
 msgstr ""
 
@@ -274,12 +275,12 @@ msgstr ""
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:237
-#: aleksis/apps/alsijil/models.py:401
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:267
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:241
+#: aleksis/apps/alsijil/models.py:423 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
@@ -289,164 +290,178 @@ msgstr ""
 msgid "Manage group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:180
+#: aleksis/apps/alsijil/model_extensions.py:191
 msgid "Can view week overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:183
+#: aleksis/apps/alsijil/model_extensions.py:195
 msgid "Can view lesson overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:185
+#: aleksis/apps/alsijil/model_extensions.py:197
 msgid "Can view all personal notes of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:186
+#: aleksis/apps/alsijil/model_extensions.py:198
 msgid "Can edit all personal notes of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:188
+#: aleksis/apps/alsijil/model_extensions.py:200
 msgid "Can view all lesson documentation of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:191
+#: aleksis/apps/alsijil/model_extensions.py:203
 msgid "Can edit all lesson documentation of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:193
+#: aleksis/apps/alsijil/model_extensions.py:205
 msgid "Can view full register of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:195
+#: aleksis/apps/alsijil/model_extensions.py:207
 msgid "Can register an absence for all members of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:197
+#: aleksis/apps/alsijil/model_extensions.py:209
+msgid "Can assign a group role for this group"
+msgstr ""
+
+#: aleksis/apps/alsijil/model_extensions.py:210
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:388
+#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:410
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
-#: aleksis/apps/alsijil/models.py:413
+#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:411
+#: aleksis/apps/alsijil/models.py:435
 #: 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:22
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:303
+#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:315
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:271
+#: aleksis/apps/alsijil/models.py:275
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
+#: aleksis/apps/alsijil/models.py:276
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:317
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:18
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
+#: aleksis/apps/alsijil/models.py:327
+#: 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/print/full_register.html:381
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
+#: aleksis/apps/alsijil/models.py:328
+#: 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/print/full_register.html:382
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
+#: aleksis/apps/alsijil/models.py:329
+#: 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
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
+#: aleksis/apps/alsijil/models.py:376
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:364
+#: aleksis/apps/alsijil/models.py:377
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:68
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:400
+#: aleksis/apps/alsijil/models.py:422
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:414
+#: aleksis/apps/alsijil/models.py:436
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:415
+#: aleksis/apps/alsijil/models.py:437
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:421 aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/models.py:458
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
+#: aleksis/apps/alsijil/models.py:444
+#: 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:441
+#: aleksis/apps/alsijil/models.py:448
+msgid "Can assign group role"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:464
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:444 aleksis/apps/alsijil/tables.py:98
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:104
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:220
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/tables.py:98
+#: 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:451
+#: aleksis/apps/alsijil/models.py:476
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:466
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:492
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:474
+#: aleksis/apps/alsijil/models.py:499
+msgid "Can view lesson overview"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:500
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:475
+#: aleksis/apps/alsijil/models.py:501
+msgid "Can view full register"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:502
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:476
+#: aleksis/apps/alsijil/models.py:503
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -530,16 +545,28 @@ msgid "Date"
 msgstr ""
 
 #: aleksis/apps/alsijil/tables.py:95
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:102
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:17
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 msgid "Period"
 msgstr ""
 
 #: aleksis/apps/alsijil/tables.py:103
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:231
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:257
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:336
 msgid "Teachers"
 msgstr ""
 
+#: aleksis/apps/alsijil/tables.py:109
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
+msgid "Tardiness"
+msgstr ""
+
 #: aleksis/apps/alsijil/tables.py:110
 msgid "Excuse"
 msgstr ""
@@ -552,7 +579,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:5
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:385
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr ""
@@ -603,13 +630,15 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:35
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:76
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:40
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:51
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:78
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 msgid "Students list"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:39
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:60
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:69
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:27
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:16
@@ -629,8 +658,8 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:20
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:42
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:44
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:58
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:97
 msgid "Generate printout"
 msgstr ""
 
@@ -647,107 +676,39 @@ msgstr ""
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
-msgid "Back to week view"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:24
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:27
+msgid "Persons"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
-msgid "My previous lesson"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:34
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:82
+msgid "Previous"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
-msgid "My next lesson"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:42
+msgid "More"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
-#, python-format
-msgid "%(period)s. period"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:75
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:81
+msgid "My previous lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
-#, python-format
-msgid ""
-"\n"
-"            Previous %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
-#, python-format
-msgid ""
-"\n"
-"            Next %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
-msgid "Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
-msgid "Change history"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:186
-msgid "Overview: Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:193
-msgid "Lesson topic of previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:200
-msgid "Homework for this lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:207
-msgid "Group notes for previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:214
-msgid "Absent persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:221
-msgid "Late persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
-msgid "Tardiness"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:293
-msgid "Tardiness (in m)"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:399
-#, python-format
-msgid ""
-"\n"
-"              Previous %(subject)s lesson\n"
-"            "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:92
+msgid "My next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:409
-#, python-format
-msgid ""
-"\n"
-"              Next %(subject)s lesson\n"
-"            "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:93
+msgid "Next"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:425
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:143
 msgid ""
 "\n"
-"                This lesson overlaps with holidays and can't be edited.\n"
-"              "
+"                  This lesson overlaps with holidays and can't be edited.\n"
+"                "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:10
@@ -792,6 +753,10 @@ msgstr ""
 msgid "Filter"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:91
+msgid "Filter results"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:119
 msgid "Statistics on absences, tardiness and remarks"
 msgstr ""
@@ -823,35 +788,47 @@ msgstr ""
 msgid "Students list: %(group)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:23
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:54
 msgid "Select"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:31
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:62
+msgid "Toggle filters"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:69
 #, python-format
 msgid ""
 "CW %(week)s:\n"
 "      %(instance)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:340
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:293
+msgid "Unfold"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:360
+msgid "Visit lesson overview"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:398
 msgid "unexcused"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:343
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:401
 msgid "Summed up tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:404
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:436
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
+#: 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"
@@ -993,26 +970,95 @@ msgstr ""
 msgid "Excused absences"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:6
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:28
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:7
+#, python-format
+msgid "%(period)s. period"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:31
+#, python-format
+msgid ""
+"\n"
+"            %(period_from)s.–%(period_to)s.  period\n"
+"          "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:10
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:135
+msgid "Save"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:19
+#, python-format
+msgid ""
+"\n"
+"        Previous %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:30
+#, python-format
+msgid ""
+"\n"
+"        Next %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
+msgid "Change history"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:58
+msgid "Tardiness (in m)"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:6
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:13
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:20
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:27
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:34
+msgid "Absent persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:41
+msgid "Late persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:6
 msgid "Data complete"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:12
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:17
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:30
 msgid "Missing data"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:27
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:32
 msgid "Pending"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:426
 msgid "Lesson cancelled"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:34
 msgid "Substitution"
 msgstr ""
 
@@ -1216,78 +1262,78 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:117
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:150
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:241
+#: aleksis/apps/alsijil/views.py:246
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:275
+#: aleksis/apps/alsijil/views.py:280
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1031
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1052
+#: aleksis/apps/alsijil/views.py:1070
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1074
+#: aleksis/apps/alsijil/views.py:1092
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1086
+#: aleksis/apps/alsijil/views.py:1104
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1097
+#: aleksis/apps/alsijil/views.py:1115
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1118
+#: aleksis/apps/alsijil/views.py:1136
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1130
+#: aleksis/apps/alsijil/views.py:1148
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1141
+#: aleksis/apps/alsijil/views.py:1159
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1180
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1192
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1203
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1236 aleksis/apps/alsijil/views.py:1268
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1269
+#: aleksis/apps/alsijil/views.py:1287
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1290
+#: aleksis/apps/alsijil/views.py:1308
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1303
+#: aleksis/apps/alsijil/views.py:1321
 msgid "The group role assignment has been deleted."
 msgstr ""
diff --git a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
index c9fcfa46f7015bda5734a25052658daacf71e2fb..0f75a14f7e9b4a4ec0b20f5fe915794fbb6aa540 100644
--- a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-28 17:33+0200\n"
+"POT-Creation-Date: 2021-12-24 13:24+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -109,10 +109,10 @@ msgstr ""
 msgid "Before"
 msgstr ""
 
-#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:293
+#: aleksis/apps/alsijil/filters.py:12 aleksis/apps/alsijil/forms.py:302
 #: aleksis/apps/alsijil/tables.py:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:106
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:202
+#: 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:169
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:200
 msgid "Subject"
@@ -130,99 +130,100 @@ msgstr ""
 msgid "Homework for the next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:72 aleksis/apps/alsijil/forms.py:208
-#: aleksis/apps/alsijil/forms.py:292
+#: aleksis/apps/alsijil/forms.py:73 aleksis/apps/alsijil/forms.py:214
+#: aleksis/apps/alsijil/forms.py:301
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:199
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:75
+#: aleksis/apps/alsijil/forms.py:79
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:170
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:201
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:90
+#: aleksis/apps/alsijil/forms.py:96
 msgid "You can't select a group and a teacher both."
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:144 aleksis/apps/alsijil/forms.py:294
-#: aleksis/apps/alsijil/models.py:446
+#: aleksis/apps/alsijil/forms.py:150 aleksis/apps/alsijil/forms.py:303
+#: aleksis/apps/alsijil/models.py:471
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:145 aleksis/apps/alsijil/forms.py:295
-#: aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/forms.py:304
+#: aleksis/apps/alsijil/models.py:475
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:146
+#: aleksis/apps/alsijil/forms.py:152
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:147
+#: aleksis/apps/alsijil/forms.py:153
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:148
+#: aleksis/apps/alsijil/forms.py:154 aleksis/apps/alsijil/tables.py:108
+#: aleksis/apps/alsijil/tables.py:129
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:263
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:339
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:397
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:75
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:312
 msgid "Absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:149 aleksis/apps/alsijil/tables.py:137
+#: aleksis/apps/alsijil/forms.py:155 aleksis/apps/alsijil/tables.py:137
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:54
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:134
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:30
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:72
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:84
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:275
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:151 aleksis/apps/alsijil/models.py:62
-#: aleksis/apps/alsijil/models.py:232
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:266
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:307
+#: aleksis/apps/alsijil/forms.py:157 aleksis/apps/alsijil/models.py:62
+#: aleksis/apps/alsijil/models.py:236
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:156
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:268
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:328
+#: aleksis/apps/alsijil/forms.py:162
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:33
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:93
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:314
 msgid "Remarks"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:218
+#: aleksis/apps/alsijil/forms.py:227
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:9
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:262
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:290
+#: aleksis/apps/alsijil/forms.py:299
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:291
+#: aleksis/apps/alsijil/forms.py:300
 msgid "Has lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/managers.py:81 aleksis/apps/alsijil/tables.py:121
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:57
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:151
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:214
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:268
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:16
+#: aleksis/apps/alsijil/managers.py:88 aleksis/apps/alsijil/tables.py:121
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:176
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:240
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:316
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:50
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:21
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:335
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:415
-#: aleksis/apps/alsijil/util/alsijil_helpers.py:314
+#: aleksis/apps/alsijil/util/alsijil_helpers.py:315
 msgid "Event"
 msgstr ""
 
@@ -274,12 +275,12 @@ msgstr ""
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:237
-#: aleksis/apps/alsijil/models.py:401
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:267
+#: aleksis/apps/alsijil/menus.py:104 aleksis/apps/alsijil/models.py:241
+#: aleksis/apps/alsijil/models.py:423 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:41
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:32
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:17
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:293
 msgid "Extra marks"
@@ -289,164 +290,178 @@ msgstr ""
 msgid "Manage group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:180
+#: aleksis/apps/alsijil/model_extensions.py:191
 msgid "Can view week overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:183
+#: aleksis/apps/alsijil/model_extensions.py:195
 msgid "Can view lesson overview of group class register"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:185
+#: aleksis/apps/alsijil/model_extensions.py:197
 msgid "Can view all personal notes of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:186
+#: aleksis/apps/alsijil/model_extensions.py:198
 msgid "Can edit all personal notes of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:188
+#: aleksis/apps/alsijil/model_extensions.py:200
 msgid "Can view all lesson documentation of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:191
+#: aleksis/apps/alsijil/model_extensions.py:203
 msgid "Can edit all lesson documentation of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:193
+#: aleksis/apps/alsijil/model_extensions.py:205
 msgid "Can view full register of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:195
+#: aleksis/apps/alsijil/model_extensions.py:207
 msgid "Can register an absence for all members of a group"
 msgstr ""
 
-#: aleksis/apps/alsijil/model_extensions.py:197
+#: aleksis/apps/alsijil/model_extensions.py:209
+msgid "Can assign a group role for this group"
+msgstr ""
+
+#: aleksis/apps/alsijil/model_extensions.py:210
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:388
+#: aleksis/apps/alsijil/models.py:50 aleksis/apps/alsijil/models.py:410
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:389
-#: aleksis/apps/alsijil/models.py:413
+#: aleksis/apps/alsijil/models.py:51 aleksis/apps/alsijil/models.py:411
+#: aleksis/apps/alsijil/models.py:435
 #: 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:22
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:303
+#: aleksis/apps/alsijil/models.py:216 aleksis/apps/alsijil/models.py:315
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:271
+#: aleksis/apps/alsijil/models.py:275
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:272
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:115
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:253
+#: aleksis/apps/alsijil/models.py:276
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:71
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:317
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:375
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:18
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:315
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:150
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:108
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:237
+#: aleksis/apps/alsijil/models.py:327
+#: 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/print/full_register.html:381
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:316
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:158
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:109
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:243
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:289
+#: aleksis/apps/alsijil/models.py:328
+#: 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/print/full_register.html:382
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:317
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:166
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:110
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:249
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:295
+#: aleksis/apps/alsijil/models.py:329
+#: 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
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:363
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:111
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:141
+#: aleksis/apps/alsijil/models.py:376
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:17
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:364
+#: aleksis/apps/alsijil/models.py:377
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:68
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:21
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:400
+#: aleksis/apps/alsijil/models.py:422
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:414
+#: aleksis/apps/alsijil/models.py:436
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:415
+#: aleksis/apps/alsijil/models.py:437
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:421 aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:443 aleksis/apps/alsijil/models.py:458
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:422
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:128
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:75
+#: aleksis/apps/alsijil/models.py:444
+#: 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:441
+#: aleksis/apps/alsijil/models.py:448
+msgid "Can assign group role"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:464
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:444 aleksis/apps/alsijil/tables.py:98
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:104
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:220
+#: aleksis/apps/alsijil/models.py:469 aleksis/apps/alsijil/tables.py:98
+#: 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:451
+#: aleksis/apps/alsijil/models.py:476
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:466
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:492
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:474
+#: aleksis/apps/alsijil/models.py:499
+msgid "Can view lesson overview"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:500
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:475
+#: aleksis/apps/alsijil/models.py:501
+msgid "Can view full register"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:502
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:476
+#: aleksis/apps/alsijil/models.py:503
 msgid "Can list all personal note filters"
 msgstr ""
 
@@ -530,16 +545,28 @@ msgid "Date"
 msgstr ""
 
 #: aleksis/apps/alsijil/tables.py:95
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:102
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:17
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 msgid "Period"
 msgstr ""
 
 #: aleksis/apps/alsijil/tables.py:103
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:107
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:231
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:131
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:257
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:336
 msgid "Teachers"
 msgstr ""
 
+#: aleksis/apps/alsijil/tables.py:109
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
+#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
+#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
+msgid "Tardiness"
+msgstr ""
+
 #: aleksis/apps/alsijil/tables.py:110
 msgid "Excuse"
 msgstr ""
@@ -552,7 +579,7 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:5
 #: aleksis/apps/alsijil/templates/alsijil/absences/register.html:6
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:30
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:327
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:385
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:113
 msgid "Register absence"
 msgstr ""
@@ -603,13 +630,15 @@ msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:35
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:76
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:40
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:51
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:78
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 msgid "Students list"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:39
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:60
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:69
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:27
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:16
@@ -629,8 +658,8 @@ msgstr ""
 #: aleksis/apps/alsijil/templates/alsijil/class_register/persons.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:20
 #: aleksis/apps/alsijil/templates/alsijil/class_register/students_list.html:42
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:44
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:58
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:82
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:97
 msgid "Generate printout"
 msgstr ""
 
@@ -647,107 +676,39 @@ msgstr ""
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:21
-msgid "Back to week view"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:24
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:27
+msgid "Persons"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:30
-msgid "My previous lesson"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:34
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:82
+msgid "Previous"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:39
-msgid "My next lesson"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:42
+msgid "More"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:51
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:187
-#, python-format
-msgid "%(period)s. period"
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:75
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:81
+msgid "My previous lesson"
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:86
-#, python-format
-msgid ""
-"\n"
-"            Previous %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:96
-#, python-format
-msgid ""
-"\n"
-"            Next %(subject)s lesson\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:122
-msgid "Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:132
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:380
-msgid "Change history"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:186
-msgid "Overview: Previous lesson"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:193
-msgid "Lesson topic of previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:200
-msgid "Homework for this lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:207
-msgid "Group notes for previous lesson:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:214
-msgid "Absent persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:221
-msgid "Late persons:"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:264
-#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:146
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:15
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:32
-#: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:89
-#: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:287
-msgid "Tardiness"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:293
-msgid "Tardiness (in m)"
-msgstr ""
-
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:399
-#, python-format
-msgid ""
-"\n"
-"              Previous %(subject)s lesson\n"
-"            "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:92
+msgid "My next lesson"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:409
-#, python-format
-msgid ""
-"\n"
-"              Next %(subject)s lesson\n"
-"            "
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:93
+msgid "Next"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:425
+#: aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html:143
 msgid ""
 "\n"
-"                This lesson overlaps with holidays and can't be edited.\n"
-"              "
+"                  This lesson overlaps with holidays and can't be edited.\n"
+"                "
 msgstr ""
 
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:10
@@ -792,6 +753,10 @@ msgstr ""
 msgid "Filter"
 msgstr ""
 
+#: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:91
+msgid "Filter results"
+msgstr ""
+
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:119
 msgid "Statistics on absences, tardiness and remarks"
 msgstr ""
@@ -823,35 +788,47 @@ msgstr ""
 msgid "Students list: %(group)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:23
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:54
 msgid "Select"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:31
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:62
+msgid "Toggle filters"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:69
 #, python-format
 msgid ""
 "CW %(week)s:\n"
 "      %(instance)s"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:340
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:293
+msgid "Unfold"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:360
+msgid "Visit lesson overview"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:398
 msgid "unexcused"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:343
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:401
 msgid "Summed up tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:404
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:92
 msgid "Count of tardiness"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:377
+#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:436
 msgid "No lessons available"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:380
+#: 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"
@@ -993,26 +970,95 @@ msgstr ""
 msgid "Excused absences"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:6
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:28
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:42
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:7
+#, python-format
+msgid "%(period)s. period"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/heading.html:31
+#, python-format
+msgid ""
+"\n"
+"            %(period_from)s.–%(period_to)s.  period\n"
+"          "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:8
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:10
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:135
+msgid "Save"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:19
+#, python-format
+msgid ""
+"\n"
+"        Previous %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/prev_next.html:30
+#, python-format
+msgid ""
+"\n"
+"        Next %(subject)s lesson\n"
+"      "
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/more.html:13
+msgid "Change history"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:58
+msgid "Tardiness (in m)"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:6
+msgid "Overview: Previous lesson"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:13
+msgid "Lesson topic of previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:20
+msgid "Homework for this lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:27
+msgid "Group notes for previous lesson:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:34
+msgid "Absent persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/previous_lesson.html:41
+msgid "Late persons:"
+msgstr ""
+
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:6
 msgid "Data complete"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:12
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:25
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:17
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:30
 msgid "Missing data"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:14
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:27
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:19
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:32
 msgid "Pending"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:23
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:28
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:426
 msgid "Lesson cancelled"
 msgstr ""
 
-#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html:29
+#: aleksis/apps/alsijil/templates/alsijil/partials/lesson_status.html:34
 msgid "Substitution"
 msgstr ""
 
@@ -1216,78 +1262,78 @@ msgstr ""
 msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:114
+#: aleksis/apps/alsijil/views.py:117
 msgid "You either selected an invalid lesson or there is currently no lesson in progress."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:147
+#: aleksis/apps/alsijil/views.py:150
 msgid "You are not allowed to create a lesson documentation for a lesson in the future."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:241
+#: aleksis/apps/alsijil/views.py:246
 msgid "The lesson documentation has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:275
+#: aleksis/apps/alsijil/views.py:280
 msgid "The personal notes have been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1031
+#: aleksis/apps/alsijil/views.py:1049
 msgid "The absence has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1052
+#: aleksis/apps/alsijil/views.py:1070
 msgid "The personal note has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1074
+#: aleksis/apps/alsijil/views.py:1092
 msgid "The extra mark has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1086
+#: aleksis/apps/alsijil/views.py:1104
 msgid "The extra mark has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1097
+#: aleksis/apps/alsijil/views.py:1115
 msgid "The extra mark has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1118
+#: aleksis/apps/alsijil/views.py:1136
 msgid "The excuse type has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1130
+#: aleksis/apps/alsijil/views.py:1148
 msgid "The excuse type has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1141
+#: aleksis/apps/alsijil/views.py:1159
 msgid "The excuse type has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1162
+#: aleksis/apps/alsijil/views.py:1180
 msgid "The group role has been created."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1174
+#: aleksis/apps/alsijil/views.py:1192
 msgid "The group role has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1185
+#: aleksis/apps/alsijil/views.py:1203
 msgid "The group role has been deleted."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1218 aleksis/apps/alsijil/views.py:1250
+#: aleksis/apps/alsijil/views.py:1236 aleksis/apps/alsijil/views.py:1268
 msgid "The group role has been assigned."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1269
+#: aleksis/apps/alsijil/views.py:1287
 msgid "The group role assignment has been saved."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1290
+#: aleksis/apps/alsijil/views.py:1308
 msgid "The group role assignment has been stopped."
 msgstr ""
 
-#: aleksis/apps/alsijil/views.py:1303
+#: aleksis/apps/alsijil/views.py:1321
 msgid "The group role assignment has been deleted."
 msgstr ""