diff --git a/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po
index e58e5abfe555ff77cc0b2d8dd6f04c317fc23fcb..7bfa932f4f871a7787fc4f238c190419a4f07021 100644
--- a/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 11:32+0200\n"
+"POT-Creation-Date: 2024-08-18 14:23+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,76 +18,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
 
-#: aleksis/apps/chronos/form_extensions.py:7
-msgid "Options for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/form_extensions.py:8
-msgid "Optional data for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:10
-msgid "Timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:16
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:18
-msgid "My timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:27
-#: aleksis/apps/chronos/templates/chronos/all.html:11
-#: aleksis/apps/chronos/templates/chronos/all.html:12
-msgid "All timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:38
-msgid "Daily lessons"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:49
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:11
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:17
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
-msgid "Substitutions"
-msgstr ""
-
 #: aleksis/apps/chronos/mixins.py:25
 msgid "Linked validity range"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:142
-msgid "Show announcement in timetable views?"
-msgstr ""
-
-#: aleksis/apps/chronos/model_extensions.py:151
+#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:155
+#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:86
+#: aleksis/apps/chronos/models.py:87
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:89 aleksis/apps/chronos/models.py:699
+#: aleksis/apps/chronos/models.py:90 aleksis/apps/chronos/models.py:626
+#: aleksis/apps/chronos/models.py:1310
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:91 aleksis/apps/chronos/models.py:754
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:1061
+#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
+#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:755
-#: aleksis/apps/chronos/models.py:828 aleksis/apps/chronos/models.py:1062
+#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
+#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:111
+#: aleksis/apps/chronos/models.py:112
 msgid "The start date must be earlier than the end date."
 msgstr ""
 
@@ -107,547 +69,506 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:150
+#: aleksis/apps/chronos/models.py:149
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:152
+#: aleksis/apps/chronos/models.py:151
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:154
+#: aleksis/apps/chronos/models.py:153
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:155
+#: aleksis/apps/chronos/models.py:154
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:338 aleksis/apps/chronos/models.py:525
-#: aleksis/apps/chronos/models.py:1191
+#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
+#: aleksis/apps/chronos/models.py:1122
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:339
+#: aleksis/apps/chronos/models.py:325
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:343 aleksis/apps/chronos/models.py:364
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:873
-#: aleksis/apps/chronos/models.py:895
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
+#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:344 aleksis/apps/chronos/models.py:365
-#: aleksis/apps/chronos/models.py:874 aleksis/apps/chronos/models.py:896
+#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
+#: aleksis/apps/chronos/models.py:811
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:346
+#: aleksis/apps/chronos/models.py:332
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:347
+#: aleksis/apps/chronos/models.py:333
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:354 aleksis/apps/chronos/models.py:390
-#: aleksis/apps/chronos/models.py:446 aleksis/apps/chronos/models.py:1198
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:47
+#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
+#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
+#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:355
+#: aleksis/apps/chronos/models.py:341
 msgid "Subjects"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:374
-msgid "Can view room timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:376 aleksis/apps/chronos/models.py:454
-#: aleksis/apps/chronos/models.py:533 aleksis/apps/chronos/models.py:751
-#: aleksis/apps/chronos/models.py:1213
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:48
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-msgid "Room"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:377 aleksis/apps/chronos/models.py:1078
-#: aleksis/apps/chronos/templates/chronos/all.html:45
-msgid "Rooms"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:393 aleksis/apps/chronos/models.py:452
-#: aleksis/apps/chronos/models.py:1080 aleksis/apps/chronos/models.py:1206
-#: aleksis/apps/chronos/tables.py:35
-#: aleksis/apps/chronos/templates/chronos/all.html:17
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
+#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
+#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:358
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1077
-#: aleksis/apps/chronos/models.py:1201 aleksis/apps/chronos/tables.py:34
-#: aleksis/apps/chronos/templates/chronos/all.html:31
+#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
+#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:424 aleksis/apps/chronos/models.py:519
-#: aleksis/apps/chronos/models.py:795
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
+#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
+#: aleksis/apps/chronos/models.py:1454
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:425
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
+#: aleksis/apps/chronos/models.py:395 aleksis/apps/chronos/models.py:1306
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:1185
+#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:434 aleksis/apps/chronos/models.py:1186
+#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437 aleksis/apps/chronos/models.py:654
+#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:456
+#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
+#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
+msgid "Room"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:428
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:458
+#: aleksis/apps/chronos/models.py:430
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:461 aleksis/apps/chronos/models.py:770
-#: aleksis/apps/chronos/models.py:813 aleksis/apps/chronos/models.py:1216
+#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:734 aleksis/apps/chronos/models.py:1147
+#: aleksis/apps/chronos/models.py:1357
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:465
+#: aleksis/apps/chronos/models.py:437
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:506
+#: aleksis/apps/chronos/models.py:477
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:507
+#: aleksis/apps/chronos/models.py:478
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:655
+#: aleksis/apps/chronos/models.py:621
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:693
-msgid "Timetable widget"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:694
-msgid "Timetable widgets"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:708 aleksis/apps/chronos/models.py:726
+#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:709
+#: aleksis/apps/chronos/models.py:636
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:735 aleksis/apps/chronos/models.py:974
-#: aleksis/apps/chronos/models.py:1025
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:46
+#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
+#: aleksis/apps/chronos/models.py:943
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:665
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:759 aleksis/apps/chronos/models.py:802
+#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:808
+#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:780
+#: aleksis/apps/chronos/models.py:702
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:786
+#: aleksis/apps/chronos/models.py:707
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:708
 msgid "Absences"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:798
+#: aleksis/apps/chronos/models.py:719
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:812 aleksis/apps/chronos/models.py:826
-#: aleksis/apps/chronos/models.py:1059
+#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
+#: aleksis/apps/chronos/models.py:977
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:819
+#: aleksis/apps/chronos/models.py:739
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:820
+#: aleksis/apps/chronos/models.py:740
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:829
+#: aleksis/apps/chronos/models.py:749
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:868
+#: aleksis/apps/chronos/models.py:788
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:869
+#: aleksis/apps/chronos/models.py:789
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:883 aleksis/apps/chronos/models.py:964
+#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:804
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:901
+#: aleksis/apps/chronos/models.py:816
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:909
+#: aleksis/apps/chronos/models.py:824
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:949 aleksis/apps/chronos/models.py:968
+#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:950
+#: aleksis/apps/chronos/models.py:865
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1005 aleksis/apps/chronos/models.py:1018
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
-#: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
+#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1006
+#: aleksis/apps/chronos/models.py:924 aleksis/apps/chronos/models.py:1622
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:932
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1048
+#: aleksis/apps/chronos/models.py:966
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1049
+#: aleksis/apps/chronos/models.py:967
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1067
+#: aleksis/apps/chronos/models.py:985
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:991
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1087
+#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+msgid "Rooms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1005
 #, python-brace-format
 msgid "Event {pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1172
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
+#: aleksis/apps/chronos/models.py:1103
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1173
+#: aleksis/apps/chronos/models.py:1104
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1221
+#: aleksis/apps/chronos/models.py:1152
 msgid "Related exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1251
+#: aleksis/apps/chronos/models.py:1181
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1252
+#: aleksis/apps/chronos/models.py:1182
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1264
+#: aleksis/apps/chronos/models.py:1194
 msgid "Number of days shown in the plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1268
+#: aleksis/apps/chronos/models.py:1198
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1269 aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1276
+#: aleksis/apps/chronos/models.py:1206
 msgid "Revision which triggered the last update"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1337
+#: aleksis/apps/chronos/models.py:1278
 msgid "Automatic plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/models.py:1279
 msgid "Automatic plans"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1352
+#: aleksis/apps/chronos/models.py:1293
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/models.py:1294
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1354
+#: aleksis/apps/chronos/models.py:1295
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1355
+#: aleksis/apps/chronos/models.py:1296
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1356
+#: aleksis/apps/chronos/models.py:1297
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:18
-msgid "Use parent groups in timetable views"
+#: aleksis/apps/chronos/models.py:1298
+msgid "Can view all supervisions per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:20
-msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+#: aleksis/apps/chronos/models.py:1313
+msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
-msgid "Shorten groups in timetable views"
+#: aleksis/apps/chronos/models.py:1316
+msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:32
-msgid "If there are more groups than the set limit, they will be collapsed."
+#: aleksis/apps/chronos/models.py:1320
+msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:40
-msgid "Limit of groups for shortening of groups"
+#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
+msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
+#: aleksis/apps/chronos/models.py:1425
+msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:52
-msgid "Number of days shown on substitutions print view"
+#: aleksis/apps/chronos/models.py:1614
+msgid "Lesson Event"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:60
-msgid "Show header box in substitution views"
+#: aleksis/apps/chronos/models.py:1615
+msgid "Lesson Events"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
-msgid "Show parent groups in header box in substitution views instead of original groups"
+#: aleksis/apps/chronos/models.py:1630
+msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:79
-msgid "How many days in advance users should be notified about timetable changes?"
+#: aleksis/apps/chronos/preferences.py:21
+msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:87
-msgid "Time for sending notifications about timetable changes"
+#: aleksis/apps/chronos/preferences.py:29
+msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:90
-msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
+#: aleksis/apps/chronos/preferences.py:31
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:101
-#: aleksis/apps/chronos/preferences.py:109
-msgid "Send notifications for current timetable changes"
+#: aleksis/apps/chronos/preferences.py:42
+msgid "Shorten groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:41
-msgid "Substitution"
+#: aleksis/apps/chronos/preferences.py:43
+msgid "If there are more groups than the set limit, they will be collapsed."
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:43
-msgid "Manage substitution"
+#: aleksis/apps/chronos/preferences.py:51
+msgid "Limit of groups for shortening of groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:25
-msgid "No teachers timetables available."
+#: aleksis/apps/chronos/preferences.py:53
+msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:39
-msgid "No group timetables available."
+#: aleksis/apps/chronos/preferences.py:65
+msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:53
-msgid "No room timetables available."
+#: aleksis/apps/chronos/preferences.py:82
+msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:11
-msgid "Edit substitution."
+#: aleksis/apps/chronos/preferences.py:91
+msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:12
-msgid "Edit substitution"
+#: aleksis/apps/chronos/preferences.py:99
+msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:25
-msgid "Delete"
+#: aleksis/apps/chronos/preferences.py:109
+msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:19
-#: aleksis/apps/chronos/templates/chronos/timetable.html:50
-msgid "SMART PLAN"
+#: aleksis/apps/chronos/preferences.py:118
+msgid "How many days in advance users should be notified about timetable changes?"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:22
-msgid "Show week timetable for"
+#: aleksis/apps/chronos/preferences.py:126
+msgid "Time for sending notifications about timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
-msgid "Absent teachers"
+#: aleksis/apps/chronos/preferences.py:129
+msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:22
-msgid "Absent groups"
+#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:148
+msgid "Send notifications for current timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:34
-msgid "Affected teachers"
+#: aleksis/apps/chronos/preferences.py:158
+msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:46
-msgid "Affected groups"
+#: aleksis/apps/chronos/preferences.py:159
+msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/lesson.html:27
-msgid "Cancelled due to an event"
+#: aleksis/apps/chronos/preferences.py:169
+msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-msgid "Cancelled"
+#: aleksis/apps/chronos/preferences.py:181
+msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:6
-msgid "Cancelled for teachers"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
+msgid "Absent teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/today.html:2
-msgid "Today"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:22
+msgid "Absent groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:14
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:25
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:36
-msgid "CW"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:34
+msgid "Affected teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:49
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
-msgid "Notes"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:46
+msgid "Affected groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:57
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
-msgid "No substitutions available."
+#: aleksis/apps/chronos/templates/chronos/partials/subs/period.html:12
+msgid "all day"
 msgstr ""
 
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
 msgid "Print: Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/timetable.html:24
-#: aleksis/apps/chronos/templates/chronos/timetable_print.html:11
-#: aleksis/apps/chronos/util/notifications.py:206
-msgid "Timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:29
-msgid "Group teachers:"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:55
-msgid "Show regular timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:63
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of this week"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
+msgid "Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:76
-msgid "Show SMART PLAN"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:27
+msgid "Time"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:8
-#, python-format
-msgid ""
-"\n"
-"        My timetable for %(day)s\n"
-"      "
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
+msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:18
-msgid ""
-"\n"
-"          There is no timetable linked to your person.\n"
-"          "
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
+msgid "No substitutions available."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:27
-msgid "Go to smart plan"
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:2
+msgid "Areas"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:50
+#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:57
+#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:66
+#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
 msgid "The teacher {old} is substituted by {new}."
 msgid_plural "The teachers {old} are substituted by {new}."
@@ -658,81 +579,77 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
-#: aleksis/apps/chronos/util/notifications.py:78
+#: aleksis/apps/chronos/util/notifications.py:76
 #, python-brace-format
 msgid "The subject is changed to {subject}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:84
+#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
 msgid "The lesson is moved from {old} to {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:93
+#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
 msgid "There is an additional comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:101
+#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
 msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:114
+#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
 msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:145
+#: aleksis/apps/chronos/util/notifications.py:123
+#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
 msgid "Groups: {groups}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:127
-#: aleksis/apps/chronos/util/notifications.py:149
+#: aleksis/apps/chronos/util/notifications.py:125
+#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
 msgid "Teachers: {teachers}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:130
+#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
 msgid "Rooms: {rooms}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:137
+#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
 msgid "There is an extra lesson on {date} in the {period}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:147
+#: aleksis/apps/chronos/util/notifications.py:145
 #, python-brace-format
 msgid "Subject: {subject}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:151
+#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
 msgid "Room: {room}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:153
+#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
 msgid "Comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:156
+#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
 msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:207
-msgid "There are current changes to your timetable."
-msgstr ""
-
-#: aleksis/apps/chronos/views.py:270
-msgid "The substitution has been saved."
+#: aleksis/apps/chronos/util/notifications.py:204
+msgid "Timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/views.py:291
-msgid "The substitution has been deleted."
+#: aleksis/apps/chronos/util/notifications.py:205
+msgid "There are current changes to your timetable."
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po
index 7d60974cc959b0b54c7f753f2eb40b1404e13f6f..bb0175b705ae309551c35631e0445c8e6ef2e2f5 100644
--- a/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/de_DE/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 11:32+0200\n"
+"POT-Creation-Date: 2024-08-18 14:23+0200\n"
 "PO-Revision-Date: 2023-01-25 05:57+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/de/>\n"
@@ -18,76 +18,38 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.12.1\n"
 
-#: aleksis/apps/chronos/form_extensions.py:7
-msgid "Options for timetables"
-msgstr "Einstellungen für Stundenpläne"
-
-#: aleksis/apps/chronos/form_extensions.py:8
-msgid "Optional data for timetables"
-msgstr "Optionale Daten für Stundenpläne"
-
-#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:10
-msgid "Timetables"
-msgstr "Stundenpläne"
-
-#: aleksis/apps/chronos/menus.py:16
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:18
-msgid "My timetable"
-msgstr "Mein Plan"
-
-#: aleksis/apps/chronos/menus.py:27
-#: aleksis/apps/chronos/templates/chronos/all.html:11
-#: aleksis/apps/chronos/templates/chronos/all.html:12
-msgid "All timetables"
-msgstr "Alle Stundenpläne"
-
-#: aleksis/apps/chronos/menus.py:38
-msgid "Daily lessons"
-msgstr "Tagesstunden"
-
-#: aleksis/apps/chronos/menus.py:49
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:11
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:17
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
-msgid "Substitutions"
-msgstr "Vertretungen"
-
 #: aleksis/apps/chronos/mixins.py:25
 msgid "Linked validity range"
 msgstr "Zugeordneter Gültigkeitsbereich"
 
-#: aleksis/apps/chronos/model_extensions.py:142
-msgid "Show announcement in timetable views?"
-msgstr "Ankündigungen in Stundenplanansichten anzeigen?"
-
-#: aleksis/apps/chronos/model_extensions.py:151
+#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr "Kann Gruppenstundenpläne sehen"
 
-#: aleksis/apps/chronos/model_extensions.py:155
+#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr "Kann Personenstundenpläne sehen"
 
-#: aleksis/apps/chronos/models.py:86
+#: aleksis/apps/chronos/models.py:87
 msgid "School term"
 msgstr "Schuljahr"
 
-#: aleksis/apps/chronos/models.py:89 aleksis/apps/chronos/models.py:699
+#: aleksis/apps/chronos/models.py:90 aleksis/apps/chronos/models.py:626
+#: aleksis/apps/chronos/models.py:1310
 msgid "Name"
 msgstr "Name"
 
-#: aleksis/apps/chronos/models.py:91 aleksis/apps/chronos/models.py:754
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:1061
+#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
+#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
 msgid "Start date"
 msgstr "Startdatum"
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:755
-#: aleksis/apps/chronos/models.py:828 aleksis/apps/chronos/models.py:1062
+#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
+#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
 msgid "End date"
 msgstr "Enddatum"
 
-#: aleksis/apps/chronos/models.py:111
+#: aleksis/apps/chronos/models.py:112
 msgid "The start date must be earlier than the end date."
 msgstr "Das Startdatum muss vor dem Enddatum liegen."
 
@@ -107,440 +69,472 @@ msgstr "Gültigkeitsbereich"
 msgid "Validity ranges"
 msgstr "Gültigkeitsbereiche"
 
-#: aleksis/apps/chronos/models.py:150
+#: aleksis/apps/chronos/models.py:149
 msgid "Week day"
 msgstr "Wochentag"
 
-#: aleksis/apps/chronos/models.py:152
+#: aleksis/apps/chronos/models.py:151
 msgid "Number of period"
 msgstr "Nummer der Stunde"
 
-#: aleksis/apps/chronos/models.py:154
+#: aleksis/apps/chronos/models.py:153
 msgid "Start time"
 msgstr "Startzeit"
 
-#: aleksis/apps/chronos/models.py:155
+#: aleksis/apps/chronos/models.py:154
 msgid "End time"
 msgstr "Endzeit"
 
-#: aleksis/apps/chronos/models.py:338 aleksis/apps/chronos/models.py:525
-#: aleksis/apps/chronos/models.py:1191
+#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
+#: aleksis/apps/chronos/models.py:1122
 msgid "Time period"
 msgstr "Stunde"
 
-#: aleksis/apps/chronos/models.py:339
+#: aleksis/apps/chronos/models.py:325
 msgid "Time periods"
 msgstr "Stunden"
 
-#: aleksis/apps/chronos/models.py:343 aleksis/apps/chronos/models.py:364
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:873
-#: aleksis/apps/chronos/models.py:895
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
+#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
 msgid "Short name"
 msgstr "Kurzname"
 
-#: aleksis/apps/chronos/models.py:344 aleksis/apps/chronos/models.py:365
-#: aleksis/apps/chronos/models.py:874 aleksis/apps/chronos/models.py:896
+#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
+#: aleksis/apps/chronos/models.py:811
 msgid "Long name"
 msgstr "Langname"
 
-#: aleksis/apps/chronos/models.py:346
+#: aleksis/apps/chronos/models.py:332
 msgid "Foreground colour"
 msgstr "Vordergrundfarbe"
 
-#: aleksis/apps/chronos/models.py:347
+#: aleksis/apps/chronos/models.py:333
 msgid "Background colour"
 msgstr "Hintergrundfarbe"
 
-#: aleksis/apps/chronos/models.py:354 aleksis/apps/chronos/models.py:390
-#: aleksis/apps/chronos/models.py:446 aleksis/apps/chronos/models.py:1198
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:47
+#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
+#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
+#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr "Fach"
 
-#: aleksis/apps/chronos/models.py:355
+#: aleksis/apps/chronos/models.py:341
 msgid "Subjects"
 msgstr "Fächer"
 
-#: aleksis/apps/chronos/models.py:374
-msgid "Can view room timetable"
-msgstr "Kann Raum-Stundenplan sehen"
-
-#: aleksis/apps/chronos/models.py:376 aleksis/apps/chronos/models.py:454
-#: aleksis/apps/chronos/models.py:533 aleksis/apps/chronos/models.py:751
-#: aleksis/apps/chronos/models.py:1213
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:48
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-msgid "Room"
-msgstr "Raum"
-
-#: aleksis/apps/chronos/models.py:377 aleksis/apps/chronos/models.py:1078
-#: aleksis/apps/chronos/templates/chronos/all.html:45
-msgid "Rooms"
-msgstr "Räume"
-
-#: aleksis/apps/chronos/models.py:393 aleksis/apps/chronos/models.py:452
-#: aleksis/apps/chronos/models.py:1080 aleksis/apps/chronos/models.py:1206
-#: aleksis/apps/chronos/tables.py:35
-#: aleksis/apps/chronos/templates/chronos/all.html:17
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
+#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
+#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr "Lehrkräfte"
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:358
 msgid "Periods"
 msgstr "Stunden"
 
-#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1077
-#: aleksis/apps/chronos/models.py:1201 aleksis/apps/chronos/tables.py:34
-#: aleksis/apps/chronos/templates/chronos/all.html:31
+#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
+#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr "Gruppen"
 
-#: aleksis/apps/chronos/models.py:424 aleksis/apps/chronos/models.py:519
-#: aleksis/apps/chronos/models.py:795
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
+#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
+#: aleksis/apps/chronos/models.py:1454
 msgid "Lesson"
 msgstr "Unterrichtsstunde"
 
-#: aleksis/apps/chronos/models.py:425
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
+#: aleksis/apps/chronos/models.py:395 aleksis/apps/chronos/models.py:1306
 msgid "Lessons"
 msgstr "Unterrichtsstunden"
 
-#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:1185
+#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
 msgid "Week"
 msgstr "KW"
 
-#: aleksis/apps/chronos/models.py:434 aleksis/apps/chronos/models.py:1186
+#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
 msgid "Year"
 msgstr "Jahr"
 
-#: aleksis/apps/chronos/models.py:437 aleksis/apps/chronos/models.py:654
+#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
 msgid "Lesson period"
 msgstr "Unterrichtsstunde"
 
-#: aleksis/apps/chronos/models.py:456
+#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
+#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
+msgid "Room"
+msgstr "Raum"
+
+#: aleksis/apps/chronos/models.py:428
 msgid "Cancelled?"
 msgstr "Entfällt?"
 
-#: aleksis/apps/chronos/models.py:458
+#: aleksis/apps/chronos/models.py:430
 msgid "Cancelled for teachers?"
 msgstr "Entfällt für Lehrkräfte?"
 
-#: aleksis/apps/chronos/models.py:461 aleksis/apps/chronos/models.py:770
-#: aleksis/apps/chronos/models.py:813 aleksis/apps/chronos/models.py:1216
+#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:734 aleksis/apps/chronos/models.py:1147
+#: aleksis/apps/chronos/models.py:1357
 msgid "Comment"
 msgstr "Kommentar"
 
-#: aleksis/apps/chronos/models.py:465
+#: aleksis/apps/chronos/models.py:437
 msgid "Lessons can only be either substituted or cancelled."
 msgstr "Unterrichtsstunden können nur entweder vertreten werden oder ausfallen."
 
-#: aleksis/apps/chronos/models.py:506
+#: aleksis/apps/chronos/models.py:477
 msgid "Lesson substitution"
 msgstr "Vertretung"
 
-#: aleksis/apps/chronos/models.py:507
+#: aleksis/apps/chronos/models.py:478
 msgid "Lesson substitutions"
 msgstr "Vertretungen"
 
-#: aleksis/apps/chronos/models.py:655
+#: aleksis/apps/chronos/models.py:621
 msgid "Lesson periods"
 msgstr "Unterrichtsstunden"
 
-#: aleksis/apps/chronos/models.py:693
-msgid "Timetable widget"
-msgstr "Stundenplanwidget"
-
-#: aleksis/apps/chronos/models.py:694
-msgid "Timetable widgets"
-msgstr "Stundenplanwidgets"
-
-#: aleksis/apps/chronos/models.py:708 aleksis/apps/chronos/models.py:726
+#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
 msgid "Absence reason"
 msgstr "Absenzgrund"
 
-#: aleksis/apps/chronos/models.py:709
+#: aleksis/apps/chronos/models.py:636
 msgid "Absence reasons"
 msgstr "Absenzgründe"
 
-#: aleksis/apps/chronos/models.py:735 aleksis/apps/chronos/models.py:974
-#: aleksis/apps/chronos/models.py:1025
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:46
+#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
+#: aleksis/apps/chronos/models.py:943
 msgid "Teacher"
 msgstr "Lehrkraft"
 
-#: aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:665
 msgid "Group"
 msgstr "Gruppe"
 
-#: aleksis/apps/chronos/models.py:759 aleksis/apps/chronos/models.py:802
+#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
 msgid "Start period"
 msgstr "Startstunde"
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:808
+#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
 msgid "End period"
 msgstr "Endstunde"
 
-#: aleksis/apps/chronos/models.py:780
+#: aleksis/apps/chronos/models.py:702
 msgid "Unknown absence"
 msgstr "Unbekannte Absenz"
 
-#: aleksis/apps/chronos/models.py:786
+#: aleksis/apps/chronos/models.py:707
 msgid "Absence"
 msgstr "Absenz"
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:708
 msgid "Absences"
 msgstr "Fehlstunden"
 
-#: aleksis/apps/chronos/models.py:798
+#: aleksis/apps/chronos/models.py:719
 msgid "Date of exam"
 msgstr "Datum der Klausur"
 
-#: aleksis/apps/chronos/models.py:812 aleksis/apps/chronos/models.py:826
-#: aleksis/apps/chronos/models.py:1059
+#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
+#: aleksis/apps/chronos/models.py:977
 msgid "Title"
 msgstr "Titel"
 
-#: aleksis/apps/chronos/models.py:819
+#: aleksis/apps/chronos/models.py:739
 msgid "Exam"
 msgstr "Klausur"
 
-#: aleksis/apps/chronos/models.py:820
+#: aleksis/apps/chronos/models.py:740
 msgid "Exams"
 msgstr "Klausuren"
 
-#: aleksis/apps/chronos/models.py:829
+#: aleksis/apps/chronos/models.py:749
 msgid "Comments"
 msgstr "Kommentare"
 
-#: aleksis/apps/chronos/models.py:868
+#: aleksis/apps/chronos/models.py:788
 msgid "Holiday"
 msgstr "Ferien"
 
-#: aleksis/apps/chronos/models.py:869
+#: aleksis/apps/chronos/models.py:789
 msgid "Holidays"
 msgstr "Ferien"
 
-#: aleksis/apps/chronos/models.py:883 aleksis/apps/chronos/models.py:964
+#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
 msgid "Supervision area"
 msgstr "Aufsichtsgebiet"
 
-#: aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:804
 msgid "Supervision areas"
 msgstr "Aufsichtsgebiete"
 
-#: aleksis/apps/chronos/models.py:901
+#: aleksis/apps/chronos/models.py:816
 msgid "Time period after break starts"
 msgstr "Stunde, nach der die Pause startet"
 
-#: aleksis/apps/chronos/models.py:909
+#: aleksis/apps/chronos/models.py:824
 msgid "Time period before break ends"
 msgstr "Stunde nach der Pause"
 
-#: aleksis/apps/chronos/models.py:949 aleksis/apps/chronos/models.py:968
+#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
 msgid "Break"
 msgstr "Pause"
 
-#: aleksis/apps/chronos/models.py:950
+#: aleksis/apps/chronos/models.py:865
 msgid "Breaks"
 msgstr "Pausen"
 
-#: aleksis/apps/chronos/models.py:1005 aleksis/apps/chronos/models.py:1018
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
-#: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
+#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
 msgid "Supervision"
 msgstr "Aufsicht"
 
-#: aleksis/apps/chronos/models.py:1006
+#: aleksis/apps/chronos/models.py:924 aleksis/apps/chronos/models.py:1622
 msgid "Supervisions"
 msgstr "Aufsichten"
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:932
 msgid "Date"
 msgstr "Datum"
 
-#: aleksis/apps/chronos/models.py:1048
+#: aleksis/apps/chronos/models.py:966
 msgid "Supervision substitution"
 msgstr "Aufsichtsvertretung"
 
-#: aleksis/apps/chronos/models.py:1049
+#: aleksis/apps/chronos/models.py:967
 msgid "Supervision substitutions"
 msgstr "Aufsichtsvertretungen"
 
-#: aleksis/apps/chronos/models.py:1067
+#: aleksis/apps/chronos/models.py:985
 msgid "Start time period"
 msgstr "Startstunde"
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:991
 msgid "End time period"
 msgstr "Endstunde"
 
-#: aleksis/apps/chronos/models.py:1087
+#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+msgid "Rooms"
+msgstr "Räume"
+
+#: aleksis/apps/chronos/models.py:1005
 #, python-brace-format
 msgid "Event {pk}"
 msgstr "Veranstaltung {pk}"
 
-#: aleksis/apps/chronos/models.py:1172
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
+#: aleksis/apps/chronos/models.py:1103
 msgid "Event"
 msgstr "Veranstaltung"
 
-#: aleksis/apps/chronos/models.py:1173
+#: aleksis/apps/chronos/models.py:1104
 msgid "Events"
 msgstr "Veranstaltungen"
 
-#: aleksis/apps/chronos/models.py:1221
+#: aleksis/apps/chronos/models.py:1152
 msgid "Related exam"
 msgstr "Zugehörige Klausur"
 
-#: aleksis/apps/chronos/models.py:1251
+#: aleksis/apps/chronos/models.py:1181
 msgid "Extra lesson"
 msgstr "Sonderstunde"
 
-#: aleksis/apps/chronos/models.py:1252
+#: aleksis/apps/chronos/models.py:1182
 msgid "Extra lessons"
 msgstr "Sonderstunden"
 
-#: aleksis/apps/chronos/models.py:1264
+#: aleksis/apps/chronos/models.py:1194
 msgid "Number of days shown in the plan"
 msgstr "Anzahl der Tage, die im Plan angezeigt werden"
 
-#: aleksis/apps/chronos/models.py:1268
+#: aleksis/apps/chronos/models.py:1198
 msgid "Show header box"
 msgstr "Kopfbox anzeigen"
 
-#: aleksis/apps/chronos/models.py:1269 aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
 msgid "The header box shows affected teachers/groups."
 msgstr "Die Kopfbox zeigt betroffene Lehrkräfte/Gruppen."
 
-#: aleksis/apps/chronos/models.py:1276
+#: aleksis/apps/chronos/models.py:1206
 msgid "Revision which triggered the last update"
 msgstr "Revision, die die letzte Aktualisierung ausgelöst hat"
 
-#: aleksis/apps/chronos/models.py:1337
+#: aleksis/apps/chronos/models.py:1278
 msgid "Automatic plan"
 msgstr "Automatischer Plan"
 
-#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/models.py:1279
 msgid "Automatic plans"
 msgstr "Automatische Pläne"
 
-#: aleksis/apps/chronos/models.py:1352
+#: aleksis/apps/chronos/models.py:1293
 msgid "Can view all room timetables"
 msgstr "Kann alle Raumstundenpläne sehen"
 
-#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/models.py:1294
 msgid "Can view all group timetables"
 msgstr "Kann alle Gruppenstundenpläne sehen"
 
-#: aleksis/apps/chronos/models.py:1354
+#: aleksis/apps/chronos/models.py:1295
 msgid "Can view all person timetables"
 msgstr "Kann alle Personenstundenpläne sehen"
 
-#: aleksis/apps/chronos/models.py:1355
+#: aleksis/apps/chronos/models.py:1296
 msgid "Can view timetable overview"
 msgstr "Kann Stundenplanübersicht sehen"
 
-#: aleksis/apps/chronos/models.py:1356
+#: aleksis/apps/chronos/models.py:1297
 msgid "Can view all lessons per day"
 msgstr "Kann alle Tagesstunden sehen"
 
-#: aleksis/apps/chronos/preferences.py:18
+#: aleksis/apps/chronos/models.py:1298
+#, fuzzy
+#| msgid "Can view all lessons per day"
+msgid "Can view all supervisions per day"
+msgstr "Kann alle Tagesstunden sehen"
+
+#: aleksis/apps/chronos/models.py:1313
+#, fuzzy
+#| msgid "Start time"
+msgid "Start slot number"
+msgstr "Startzeit"
+
+#: aleksis/apps/chronos/models.py:1316
+#, fuzzy
+#| msgid "End time"
+msgid "End slot number"
+msgstr "Endzeit"
+
+#: aleksis/apps/chronos/models.py:1320
+msgid "Course"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
+msgid "Cancelled"
+msgstr "Entfall"
+
+#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
+#: aleksis/apps/chronos/models.py:1425
+msgid "{} (instead of {})"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1614
+#, fuzzy
+#| msgid "Lesson"
+msgid "Lesson Event"
+msgstr "Unterrichtsstunde"
+
+#: aleksis/apps/chronos/models.py:1615
+#, fuzzy
+#| msgid "Lessons"
+msgid "Lesson Events"
+msgstr "Unterrichtsstunden"
+
+#: aleksis/apps/chronos/models.py:1630
+#, fuzzy
+#| msgid "Supervision"
+msgid "Supervision: {}"
+msgstr "Aufsicht"
+
+#: aleksis/apps/chronos/preferences.py:21
+msgid "Timetables"
+msgstr "Stundenpläne"
+
+#: aleksis/apps/chronos/preferences.py:29
 msgid "Use parent groups in timetable views"
 msgstr "Elterngruppen in Stundenplanansichten benutzen"
 
-#: aleksis/apps/chronos/preferences.py:20
-msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+#: aleksis/apps/chronos/preferences.py:31
+#, fuzzy
+#| msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr "Wenn eine Stunde oder Vertretung nur eine Gruppe hat und diese Gruppe Elterngruppen hat, zeige die Elterngruppen anstelle der eigentlichen Gruppe."
 
-#: aleksis/apps/chronos/preferences.py:31
+#: aleksis/apps/chronos/preferences.py:42
 msgid "Shorten groups in timetable views"
 msgstr "Gruppen in Stundenplanansichten kürzen"
 
-#: aleksis/apps/chronos/preferences.py:32
+#: aleksis/apps/chronos/preferences.py:43
 msgid "If there are more groups than the set limit, they will be collapsed."
 msgstr "Wenn es mehr Gruppen als das gesetzte Limit gibt, werden die Gruppenangaben gekürzt."
 
-#: aleksis/apps/chronos/preferences.py:40
+#: aleksis/apps/chronos/preferences.py:51
 msgid "Limit of groups for shortening of groups"
 msgstr "Anzahl der Gruppen, ab der gekürzt wird"
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+#: aleksis/apps/chronos/preferences.py:53
+#, fuzzy
+#| msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
 msgstr "Wenn ein Benutzer die Kürzung von Gruppen aktiviert hat, werden sie ab diesem Limit gekürzt."
 
-#: aleksis/apps/chronos/preferences.py:52
+#: aleksis/apps/chronos/preferences.py:65
+#, fuzzy
+#| msgid "Lesson substitutions"
+msgid "Relevant days for substitution plans"
+msgstr "Vertretungen"
+
+#: aleksis/apps/chronos/preferences.py:82
+msgid "Time when substitution plans switch to the next day"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:91
 msgid "Number of days shown on substitutions print view"
 msgstr "Anzahl der Tage, die in der Druckansicht des Vertretungsplanes angezeigt werden soll"
 
-#: aleksis/apps/chronos/preferences.py:60
+#: aleksis/apps/chronos/preferences.py:99
 msgid "Show header box in substitution views"
 msgstr "Kopfbox in Vertretungsplänen anzeigen"
 
-#: aleksis/apps/chronos/preferences.py:70
+#: aleksis/apps/chronos/preferences.py:109
 msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr "Elterngruppen in der Kopfbox in Vertretungsplänen an Stelle der eigentlichen Gruppen anzeigen"
 
-#: aleksis/apps/chronos/preferences.py:79
+#: aleksis/apps/chronos/preferences.py:118
 msgid "How many days in advance users should be notified about timetable changes?"
 msgstr "Wie viele Tage im Voraus sollen Benutzer über Stundenplanänderungen benachrichtigt werden?"
 
-#: aleksis/apps/chronos/preferences.py:87
+#: aleksis/apps/chronos/preferences.py:126
 msgid "Time for sending notifications about timetable changes"
 msgstr "Zeitpunkt zum Senden von Benachrichtigungen über Stundenplanänderungen"
 
-#: aleksis/apps/chronos/preferences.py:90
+#: aleksis/apps/chronos/preferences.py:129
 msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
 msgstr "Dies wird nur benutzt, um Benachrichtigungen zu planen, welche nicht den oben konfigurierten Zeitraum betreffen. Alle weiteren Benachrichtigungen, die die nächsten Tage betreffen, werden sofort gesendet."
 
-#: aleksis/apps/chronos/preferences.py:101
-#: aleksis/apps/chronos/preferences.py:109
+#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:148
 msgid "Send notifications for current timetable changes"
 msgstr "Benachrichtigungen für aktuelle Stundenplanänderungen verschicken"
 
-#: aleksis/apps/chronos/tables.py:41
-msgid "Substitution"
-msgstr "Vertretung"
-
-#: aleksis/apps/chronos/tables.py:43
-msgid "Manage substitution"
-msgstr "Vertretung verwalten"
-
-#: aleksis/apps/chronos/templates/chronos/all.html:25
-msgid "No teachers timetables available."
-msgstr "Keine Stundenpläne von Lehrkräften vorhanden."
-
-#: aleksis/apps/chronos/templates/chronos/all.html:39
-msgid "No group timetables available."
-msgstr "Keine Gruppen-Stundenpläne verfügbar."
-
-#: aleksis/apps/chronos/templates/chronos/all.html:53
-msgid "No room timetables available."
-msgstr "Keine Raum-Stundenpläne verfügbar."
-
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:11
-msgid "Edit substitution."
-msgstr "Vertretung bearbeiten."
-
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:12
-msgid "Edit substitution"
-msgstr "Vertretung bearbeiten"
+#: aleksis/apps/chronos/preferences.py:158
+#, fuzzy
+#| msgid "Shorten groups in timetable views"
+msgid "Group types to show in timetables"
+msgstr "Gruppen in Stundenplanansichten kürzen"
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:25
-msgid "Delete"
-msgstr "Löschen"
+#: aleksis/apps/chronos/preferences.py:159
+msgid "If you leave it empty, all groups will be shown."
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:19
-#: aleksis/apps/chronos/templates/chronos/timetable.html:50
-msgid "SMART PLAN"
-msgstr "SMART PLAN"
+#: aleksis/apps/chronos/preferences.py:169
+msgid "Lesson calendar feed color"
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:22
-msgid "Show week timetable for"
-msgstr "Wochenplan anzeigen für"
+#: aleksis/apps/chronos/preferences.py:181
+#, fuzzy
+#| msgid "Supervision area"
+msgid "Supervision calendar feed color"
+msgstr "Aufsichtsgebiet"
 
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
@@ -558,186 +552,236 @@ msgstr "Betroffene Lehrkräfte"
 msgid "Affected groups"
 msgstr "Betroffene Gruppen"
 
-#: aleksis/apps/chronos/templates/chronos/partials/lesson.html:27
-msgid "Cancelled due to an event"
-msgstr "Fällt wg. einer Veranstaltung aus"
-
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-msgid "Cancelled"
-msgstr "Entfall"
+#: aleksis/apps/chronos/templates/chronos/partials/subs/period.html:12
+msgid "all day"
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:6
-msgid "Cancelled for teachers"
-msgstr "Entfall für Lehrkräfte"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
+msgid "Print: Substitutions"
+msgstr "Druckansicht: Vertretungen"
 
-#: aleksis/apps/chronos/templates/chronos/partials/today.html:2
-msgid "Today"
-msgstr "Heute"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
+msgid "Substitutions"
+msgstr "Vertretungen"
 
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:14
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:25
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:36
-msgid "CW"
-msgstr "KW"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:27
+#, fuzzy
+#| msgid "Times"
+msgid "Time"
+msgstr "Zeiten"
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:49
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
 msgid "Notes"
 msgstr "Notizen"
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:57
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
 msgid "No substitutions available."
 msgstr "Keine Vertretungen vorhanden."
 
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
-msgid "Print: Substitutions"
-msgstr "Druckansicht: Vertretungen"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/timetable.html:24
-#: aleksis/apps/chronos/templates/chronos/timetable_print.html:11
-#: aleksis/apps/chronos/util/notifications.py:206
-msgid "Timetable"
-msgstr "Stundenplan"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:29
-msgid "Group teachers:"
-msgstr "Gruppenlehrkräfte:"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:55
-msgid "Show regular timetable"
-msgstr "Regulären Plan anzeigen"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:63
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of this week"
-msgstr "Klassenbuch dieser Woche anzeigen"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:76
-msgid "Show SMART PLAN"
-msgstr "SMART PLAN anzeigen"
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:8
-#, python-format
-msgid ""
-"\n"
-"        My timetable for %(day)s\n"
-"      "
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:2
+msgid "Areas"
 msgstr ""
-"\n"
-"        Mein Stundenplan für %(day)s\n"
-"      "
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:18
-msgid ""
-"\n"
-"          There is no timetable linked to your person.\n"
-"          "
-msgstr ""
-"\n"
-"          Es gibt keine Stundenplan, der Ihrer Person zugeordnet ist.\n"
-"          "
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:27
-msgid "Go to smart plan"
-msgstr "SMART PLAN anzeigen"
-
-#: aleksis/apps/chronos/util/notifications.py:50
+#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
 msgstr "Die {subject}-Stunde in der {period}. Stunde am {day} fällt aus."
 
-#: aleksis/apps/chronos/util/notifications.py:57
+#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
 msgstr "Die {subject}-Stunde in der {period}. Stunde am {day} hat aktuelle Änderungen."
 
-#: aleksis/apps/chronos/util/notifications.py:66
+#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
 msgid "The teacher {old} is substituted by {new}."
 msgid_plural "The teachers {old} are substituted by {new}."
 msgstr[0] "Die Lehrkraft {old} wird von {new} vertreten."
 msgstr[1] "Die Lehrkräfte {old} werden von {new} vertreten."
 
-#: aleksis/apps/chronos/util/notifications.py:78
+#: aleksis/apps/chronos/util/notifications.py:76
 #, python-brace-format
 msgid "The subject is changed to {subject}."
 msgstr "Das Fach ist zu {subject} geändert."
 
-#: aleksis/apps/chronos/util/notifications.py:84
+#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
 msgid "The lesson is moved from {old} to {new}."
 msgstr "Die Stunde wurde von {old} nach {new} verschoben."
 
-#: aleksis/apps/chronos/util/notifications.py:93
+#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
 msgid "There is an additional comment: {comment}."
 msgstr "Es gibt einen zusätzlichen Hinweis: {comment}."
 
-#: aleksis/apps/chronos/util/notifications.py:101
+#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
 msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
 msgstr "Es gibt eine Veranstaltung, die am {date_start} in der {period_from}. Stunde startet und am {date_end} in der {period_to}. Stunde endet:"
 
-#: aleksis/apps/chronos/util/notifications.py:114
+#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
 msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
 msgstr "Es gibt eine Veranstaltung am {date} von der {period_from}. Stunde bis zur {period_to}. Stunde:"
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:145
+#: aleksis/apps/chronos/util/notifications.py:123
+#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
 msgid "Groups: {groups}"
 msgstr "Gruppen: {groups}"
 
-#: aleksis/apps/chronos/util/notifications.py:127
-#: aleksis/apps/chronos/util/notifications.py:149
+#: aleksis/apps/chronos/util/notifications.py:125
+#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
 msgid "Teachers: {teachers}"
 msgstr "Lehrkräfte: {teachers}"
 
-#: aleksis/apps/chronos/util/notifications.py:130
+#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
 msgid "Rooms: {rooms}"
 msgstr "Räume: {rooms}"
 
-#: aleksis/apps/chronos/util/notifications.py:137
+#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
 msgid "There is an extra lesson on {date} in the {period}. period:"
 msgstr "Es gibt eine Zusatzstunde am {date} in der {period}. Stunde:"
 
-#: aleksis/apps/chronos/util/notifications.py:147
+#: aleksis/apps/chronos/util/notifications.py:145
 #, python-brace-format
 msgid "Subject: {subject}"
 msgstr "Fach: {subject}"
 
-#: aleksis/apps/chronos/util/notifications.py:151
+#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
 msgid "Room: {room}"
 msgstr "Raum: {room}"
 
-#: aleksis/apps/chronos/util/notifications.py:153
+#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
 msgid "Comment: {comment}."
 msgstr "Kommentar: {comment}."
 
-#: aleksis/apps/chronos/util/notifications.py:156
+#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
 msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
 msgstr "Die Aufsicht von {old} am {date} zwischen der {period_from}. Stunde un der {period_to}. Stunde im Gebiet {area} wird von {new} vertreten."
 
-#: aleksis/apps/chronos/util/notifications.py:207
+#: aleksis/apps/chronos/util/notifications.py:204
+msgid "Timetable"
+msgstr "Stundenplan"
+
+#: aleksis/apps/chronos/util/notifications.py:205
 msgid "There are current changes to your timetable."
 msgstr "Es gibt aktuelle Änderungen in Ihrem Stundenplan."
 
-#: aleksis/apps/chronos/views.py:270
-msgid "The substitution has been saved."
-msgstr "Die Vertretung wurde gespeichert."
+#~ msgid "Options for timetables"
+#~ msgstr "Einstellungen für Stundenpläne"
+
+#~ msgid "Optional data for timetables"
+#~ msgstr "Optionale Daten für Stundenpläne"
+
+#~ msgid "My timetable"
+#~ msgstr "Mein Plan"
+
+#~ msgid "All timetables"
+#~ msgstr "Alle Stundenpläne"
+
+#~ msgid "Daily lessons"
+#~ msgstr "Tagesstunden"
+
+#~ msgid "Show announcement in timetable views?"
+#~ msgstr "Ankündigungen in Stundenplanansichten anzeigen?"
+
+#~ msgid "Can view room timetable"
+#~ msgstr "Kann Raum-Stundenplan sehen"
+
+#~ msgid "Timetable widget"
+#~ msgstr "Stundenplanwidget"
+
+#~ msgid "Timetable widgets"
+#~ msgstr "Stundenplanwidgets"
+
+#~ msgid "Substitution"
+#~ msgstr "Vertretung"
+
+#~ msgid "Manage substitution"
+#~ msgstr "Vertretung verwalten"
 
-#: aleksis/apps/chronos/views.py:291
-msgid "The substitution has been deleted."
-msgstr "Die Vertretung wurde gelöscht."
+#~ msgid "No teachers timetables available."
+#~ msgstr "Keine Stundenpläne von Lehrkräften vorhanden."
+
+#~ msgid "No group timetables available."
+#~ msgstr "Keine Gruppen-Stundenpläne verfügbar."
+
+#~ msgid "No room timetables available."
+#~ msgstr "Keine Raum-Stundenpläne verfügbar."
+
+#~ msgid "Edit substitution."
+#~ msgstr "Vertretung bearbeiten."
+
+#~ msgid "Edit substitution"
+#~ msgstr "Vertretung bearbeiten"
+
+#~ msgid "Delete"
+#~ msgstr "Löschen"
+
+#~ msgid "SMART PLAN"
+#~ msgstr "SMART PLAN"
+
+#~ msgid "Show week timetable for"
+#~ msgstr "Wochenplan anzeigen für"
+
+#~ msgid "Cancelled due to an event"
+#~ msgstr "Fällt wg. einer Veranstaltung aus"
+
+#~ msgid "Cancelled for teachers"
+#~ msgstr "Entfall für Lehrkräfte"
+
+#~ msgid "Today"
+#~ msgstr "Heute"
+
+#~ msgid "CW"
+#~ msgstr "KW"
+
+#~ msgid "Group teachers:"
+#~ msgstr "Gruppenlehrkräfte:"
+
+#~ msgid "Show regular timetable"
+#~ msgstr "Regulären Plan anzeigen"
+
+#~ msgid "View class register of this week"
+#~ msgstr "Klassenbuch dieser Woche anzeigen"
+
+#~ msgid "Show SMART PLAN"
+#~ msgstr "SMART PLAN anzeigen"
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ "        My timetable for %(day)s\n"
+#~ "      "
+#~ msgstr ""
+#~ "\n"
+#~ "        Mein Stundenplan für %(day)s\n"
+#~ "      "
+
+#~ msgid ""
+#~ "\n"
+#~ "          There is no timetable linked to your person.\n"
+#~ "          "
+#~ msgstr ""
+#~ "\n"
+#~ "          Es gibt keine Stundenplan, der Ihrer Person zugeordnet ist.\n"
+#~ "          "
+
+#~ msgid "Go to smart plan"
+#~ msgstr "SMART PLAN anzeigen"
+
+#~ msgid "The substitution has been saved."
+#~ msgstr "Die Vertretung wurde gespeichert."
+
+#~ msgid "The substitution has been deleted."
+#~ msgstr "Die Vertretung wurde gelöscht."
 
 #~ msgid "View class register of the current week"
 #~ msgstr "Klassenbuch der aktuellen Woche anzeigen"
@@ -841,9 +885,6 @@ msgstr "Die Vertretung wurde gelöscht."
 #~ msgid "Select"
 #~ msgstr "Auswählen"
 
-#~ msgid "Times"
-#~ msgstr "Zeiten"
-
 #~ msgid "Calendar Week"
 #~ msgstr "Kalenderwoche"
 
diff --git a/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po
index 2de6a0f73e58b9d49c4178a9947ad53e61475c72..0efbbcbc0bddc2a0dfd0fc65f2f487e69d5c6532 100644
--- a/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 11:32+0200\n"
+"POT-Creation-Date: 2024-08-18 14:23+0200\n"
 "PO-Revision-Date: 2021-06-16 11:59+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/fr/>\n"
@@ -18,76 +18,38 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 4.4\n"
 
-#: aleksis/apps/chronos/form_extensions.py:7
-msgid "Options for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/form_extensions.py:8
-msgid "Optional data for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:10
-msgid "Timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:16
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:18
-msgid "My timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:27
-#: aleksis/apps/chronos/templates/chronos/all.html:11
-#: aleksis/apps/chronos/templates/chronos/all.html:12
-msgid "All timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:38
-msgid "Daily lessons"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:49
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:11
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:17
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
-msgid "Substitutions"
-msgstr ""
-
 #: aleksis/apps/chronos/mixins.py:25
 msgid "Linked validity range"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:142
-msgid "Show announcement in timetable views?"
-msgstr ""
-
-#: aleksis/apps/chronos/model_extensions.py:151
+#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:155
+#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:86
+#: aleksis/apps/chronos/models.py:87
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:89 aleksis/apps/chronos/models.py:699
+#: aleksis/apps/chronos/models.py:90 aleksis/apps/chronos/models.py:626
+#: aleksis/apps/chronos/models.py:1310
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:91 aleksis/apps/chronos/models.py:754
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:1061
+#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
+#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:755
-#: aleksis/apps/chronos/models.py:828 aleksis/apps/chronos/models.py:1062
+#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
+#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:111
+#: aleksis/apps/chronos/models.py:112
 msgid "The start date must be earlier than the end date."
 msgstr ""
 
@@ -107,441 +69,455 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:150
+#: aleksis/apps/chronos/models.py:149
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:152
+#: aleksis/apps/chronos/models.py:151
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:154
+#: aleksis/apps/chronos/models.py:153
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:155
+#: aleksis/apps/chronos/models.py:154
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:338 aleksis/apps/chronos/models.py:525
-#: aleksis/apps/chronos/models.py:1191
+#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
+#: aleksis/apps/chronos/models.py:1122
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:339
+#: aleksis/apps/chronos/models.py:325
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:343 aleksis/apps/chronos/models.py:364
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:873
-#: aleksis/apps/chronos/models.py:895
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
+#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:344 aleksis/apps/chronos/models.py:365
-#: aleksis/apps/chronos/models.py:874 aleksis/apps/chronos/models.py:896
+#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
+#: aleksis/apps/chronos/models.py:811
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:346
+#: aleksis/apps/chronos/models.py:332
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:347
+#: aleksis/apps/chronos/models.py:333
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:354 aleksis/apps/chronos/models.py:390
-#: aleksis/apps/chronos/models.py:446 aleksis/apps/chronos/models.py:1198
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:47
+#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
+#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
+#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr "Sujet"
 
-#: aleksis/apps/chronos/models.py:355
+#: aleksis/apps/chronos/models.py:341
 #, fuzzy
 #| msgid "Subject"
 msgid "Subjects"
 msgstr "Sujet"
 
-#: aleksis/apps/chronos/models.py:374
-msgid "Can view room timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:376 aleksis/apps/chronos/models.py:454
-#: aleksis/apps/chronos/models.py:533 aleksis/apps/chronos/models.py:751
-#: aleksis/apps/chronos/models.py:1213
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:48
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-msgid "Room"
-msgstr "Salle"
-
-#: aleksis/apps/chronos/models.py:377 aleksis/apps/chronos/models.py:1078
-#: aleksis/apps/chronos/templates/chronos/all.html:45
-msgid "Rooms"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:393 aleksis/apps/chronos/models.py:452
-#: aleksis/apps/chronos/models.py:1080 aleksis/apps/chronos/models.py:1206
-#: aleksis/apps/chronos/tables.py:35
-#: aleksis/apps/chronos/templates/chronos/all.html:17
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
+#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
+#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr "Profs"
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:358
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1077
-#: aleksis/apps/chronos/models.py:1201 aleksis/apps/chronos/tables.py:34
-#: aleksis/apps/chronos/templates/chronos/all.html:31
+#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
+#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:424 aleksis/apps/chronos/models.py:519
-#: aleksis/apps/chronos/models.py:795
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
+#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
+#: aleksis/apps/chronos/models.py:1454
 msgid "Lesson"
 msgstr "Cours"
 
-#: aleksis/apps/chronos/models.py:425
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
+#: aleksis/apps/chronos/models.py:395 aleksis/apps/chronos/models.py:1306
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:1185
+#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:434 aleksis/apps/chronos/models.py:1186
+#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437 aleksis/apps/chronos/models.py:654
+#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:456
+#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
+#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
+msgid "Room"
+msgstr "Salle"
+
+#: aleksis/apps/chronos/models.py:428
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:458
+#: aleksis/apps/chronos/models.py:430
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:461 aleksis/apps/chronos/models.py:770
-#: aleksis/apps/chronos/models.py:813 aleksis/apps/chronos/models.py:1216
+#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:734 aleksis/apps/chronos/models.py:1147
+#: aleksis/apps/chronos/models.py:1357
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:465
+#: aleksis/apps/chronos/models.py:437
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:506
+#: aleksis/apps/chronos/models.py:477
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:507
+#: aleksis/apps/chronos/models.py:478
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:655
+#: aleksis/apps/chronos/models.py:621
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:693
-msgid "Timetable widget"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:694
-msgid "Timetable widgets"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:708 aleksis/apps/chronos/models.py:726
+#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:709
+#: aleksis/apps/chronos/models.py:636
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:735 aleksis/apps/chronos/models.py:974
-#: aleksis/apps/chronos/models.py:1025
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:46
+#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
+#: aleksis/apps/chronos/models.py:943
 msgid "Teacher"
 msgstr "prof"
 
-#: aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:665
 msgid "Group"
 msgstr "groupe"
 
-#: aleksis/apps/chronos/models.py:759 aleksis/apps/chronos/models.py:802
+#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:808
+#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:780
+#: aleksis/apps/chronos/models.py:702
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:786
+#: aleksis/apps/chronos/models.py:707
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:708
 msgid "Absences"
 msgstr "Absences"
 
-#: aleksis/apps/chronos/models.py:798
+#: aleksis/apps/chronos/models.py:719
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:812 aleksis/apps/chronos/models.py:826
-#: aleksis/apps/chronos/models.py:1059
+#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
+#: aleksis/apps/chronos/models.py:977
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:819
+#: aleksis/apps/chronos/models.py:739
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:820
+#: aleksis/apps/chronos/models.py:740
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:829
+#: aleksis/apps/chronos/models.py:749
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:868
+#: aleksis/apps/chronos/models.py:788
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:869
+#: aleksis/apps/chronos/models.py:789
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:883 aleksis/apps/chronos/models.py:964
+#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:804
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:901
+#: aleksis/apps/chronos/models.py:816
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:909
+#: aleksis/apps/chronos/models.py:824
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:949 aleksis/apps/chronos/models.py:968
+#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:950
+#: aleksis/apps/chronos/models.py:865
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1005 aleksis/apps/chronos/models.py:1018
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
-#: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
+#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1006
+#: aleksis/apps/chronos/models.py:924 aleksis/apps/chronos/models.py:1622
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:932
 msgid "Date"
 msgstr "Date"
 
-#: aleksis/apps/chronos/models.py:1048
+#: aleksis/apps/chronos/models.py:966
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1049
+#: aleksis/apps/chronos/models.py:967
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1067
+#: aleksis/apps/chronos/models.py:985
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:991
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1087
+#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+msgid "Rooms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1005
 #, python-brace-format
 msgid "Event {pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1172
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
+#: aleksis/apps/chronos/models.py:1103
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1173
+#: aleksis/apps/chronos/models.py:1104
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1221
+#: aleksis/apps/chronos/models.py:1152
 msgid "Related exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1251
+#: aleksis/apps/chronos/models.py:1181
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1252
+#: aleksis/apps/chronos/models.py:1182
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1264
+#: aleksis/apps/chronos/models.py:1194
 msgid "Number of days shown in the plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1268
+#: aleksis/apps/chronos/models.py:1198
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1269 aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1276
+#: aleksis/apps/chronos/models.py:1206
 msgid "Revision which triggered the last update"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1337
+#: aleksis/apps/chronos/models.py:1278
 msgid "Automatic plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/models.py:1279
 msgid "Automatic plans"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1352
+#: aleksis/apps/chronos/models.py:1293
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/models.py:1294
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1354
+#: aleksis/apps/chronos/models.py:1295
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1355
+#: aleksis/apps/chronos/models.py:1296
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1356
+#: aleksis/apps/chronos/models.py:1297
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:18
-msgid "Use parent groups in timetable views"
+#: aleksis/apps/chronos/models.py:1298
+msgid "Can view all supervisions per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:20
-msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+#: aleksis/apps/chronos/models.py:1313
+msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
-msgid "Shorten groups in timetable views"
+#: aleksis/apps/chronos/models.py:1316
+msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:32
-msgid "If there are more groups than the set limit, they will be collapsed."
+#: aleksis/apps/chronos/models.py:1320
+msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:40
-msgid "Limit of groups for shortening of groups"
+#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
+msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
+#: aleksis/apps/chronos/models.py:1425
+msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:52
-msgid "Number of days shown on substitutions print view"
+#: aleksis/apps/chronos/models.py:1614
+#, fuzzy
+#| msgid "Lesson"
+msgid "Lesson Event"
+msgstr "Cours"
+
+#: aleksis/apps/chronos/models.py:1615
+#, fuzzy
+#| msgid "Lesson"
+msgid "Lesson Events"
+msgstr "Cours"
+
+#: aleksis/apps/chronos/models.py:1630
+msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:60
-msgid "Show header box in substitution views"
+#: aleksis/apps/chronos/preferences.py:21
+msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
-msgid "Show parent groups in header box in substitution views instead of original groups"
+#: aleksis/apps/chronos/preferences.py:29
+msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:79
-msgid "How many days in advance users should be notified about timetable changes?"
+#: aleksis/apps/chronos/preferences.py:31
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:87
-msgid "Time for sending notifications about timetable changes"
+#: aleksis/apps/chronos/preferences.py:42
+msgid "Shorten groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:90
-msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
+#: aleksis/apps/chronos/preferences.py:43
+msgid "If there are more groups than the set limit, they will be collapsed."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:101
-#: aleksis/apps/chronos/preferences.py:109
-msgid "Send notifications for current timetable changes"
+#: aleksis/apps/chronos/preferences.py:51
+msgid "Limit of groups for shortening of groups"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:53
+msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:41
-msgid "Substitution"
+#: aleksis/apps/chronos/preferences.py:65
+msgid "Relevant days for substitution plans"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:82
+msgid "Time when substitution plans switch to the next day"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:91
+msgid "Number of days shown on substitutions print view"
+msgstr ""
+
+#: aleksis/apps/chronos/preferences.py:99
+msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:43
-msgid "Manage substitution"
+#: aleksis/apps/chronos/preferences.py:109
+msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:25
-msgid "No teachers timetables available."
+#: aleksis/apps/chronos/preferences.py:118
+msgid "How many days in advance users should be notified about timetable changes?"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:39
-msgid "No group timetables available."
+#: aleksis/apps/chronos/preferences.py:126
+msgid "Time for sending notifications about timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:53
-msgid "No room timetables available."
+#: aleksis/apps/chronos/preferences.py:129
+msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:11
-msgid "Edit substitution."
+#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:148
+msgid "Send notifications for current timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:12
-msgid "Edit substitution"
+#: aleksis/apps/chronos/preferences.py:158
+msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:25
-msgid "Delete"
+#: aleksis/apps/chronos/preferences.py:159
+msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:19
-#: aleksis/apps/chronos/templates/chronos/timetable.html:50
-msgid "SMART PLAN"
+#: aleksis/apps/chronos/preferences.py:169
+msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:22
-msgid "Show week timetable for"
+#: aleksis/apps/chronos/preferences.py:181
+msgid "Supervision calendar feed color"
 msgstr ""
 
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
@@ -560,178 +536,123 @@ msgstr ""
 msgid "Affected groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/lesson.html:27
-msgid "Cancelled due to an event"
+#: aleksis/apps/chronos/templates/chronos/partials/subs/period.html:12
+msgid "all day"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-msgid "Cancelled"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:6
-msgid "Cancelled for teachers"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
+msgid "Print: Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/today.html:2
-msgid "Today"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
+msgid "Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:14
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:25
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:36
-msgid "CW"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:27
+msgid "Time"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:49
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
 msgid "Notes"
 msgstr "Notes"
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:57
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
 msgid "No substitutions available."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
-msgid "Print: Substitutions"
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:2
+msgid "Areas"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/timetable.html:24
-#: aleksis/apps/chronos/templates/chronos/timetable_print.html:11
-#: aleksis/apps/chronos/util/notifications.py:206
-msgid "Timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:29
-msgid "Group teachers:"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:55
-msgid "Show regular timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:63
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of this week"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:76
-msgid "Show SMART PLAN"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:8
-#, python-format
-msgid ""
-"\n"
-"        My timetable for %(day)s\n"
-"      "
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:18
-msgid ""
-"\n"
-"          There is no timetable linked to your person.\n"
-"          "
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:27
-msgid "Go to smart plan"
-msgstr ""
-
-#: aleksis/apps/chronos/util/notifications.py:50
+#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:57
+#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:66
+#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
 msgid "The teacher {old} is substituted by {new}."
 msgid_plural "The teachers {old} are substituted by {new}."
 msgstr[0] ""
 msgstr[1] ""
 
-#: aleksis/apps/chronos/util/notifications.py:78
+#: aleksis/apps/chronos/util/notifications.py:76
 #, python-brace-format
 msgid "The subject is changed to {subject}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:84
+#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
 msgid "The lesson is moved from {old} to {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:93
+#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
 msgid "There is an additional comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:101
+#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
 msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:114
+#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
 msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:145
+#: aleksis/apps/chronos/util/notifications.py:123
+#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
 msgid "Groups: {groups}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:127
-#: aleksis/apps/chronos/util/notifications.py:149
+#: aleksis/apps/chronos/util/notifications.py:125
+#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
 msgid "Teachers: {teachers}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:130
+#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
 msgid "Rooms: {rooms}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:137
+#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
 msgid "There is an extra lesson on {date} in the {period}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:147
+#: aleksis/apps/chronos/util/notifications.py:145
 #, fuzzy, python-brace-format
 #| msgid "Subject"
 msgid "Subject: {subject}"
 msgstr "Sujet"
 
-#: aleksis/apps/chronos/util/notifications.py:151
+#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
 msgid "Room: {room}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:153
+#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
 msgid "Comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:156
+#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
 msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:207
-msgid "There are current changes to your timetable."
-msgstr ""
-
-#: aleksis/apps/chronos/views.py:270
-msgid "The substitution has been saved."
+#: aleksis/apps/chronos/util/notifications.py:204
+msgid "Timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/views.py:291
-msgid "The substitution has been deleted."
+#: aleksis/apps/chronos/util/notifications.py:205
+msgid "There are current changes to your timetable."
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po
index 64f39ae10f914f1706a38e03dc6bf944a6f71d60..279ead538768dffda25f3cdb31fb9af609117621 100644
--- a/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/la/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 11:32+0200\n"
+"POT-Creation-Date: 2024-08-18 14:23+0200\n"
 "PO-Revision-Date: 2020-08-23 13:49+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/la/>\n"
@@ -18,76 +18,38 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.1.1\n"
 
-#: aleksis/apps/chronos/form_extensions.py:7
-msgid "Options for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/form_extensions.py:8
-msgid "Optional data for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:10
-msgid "Timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:16
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:18
-msgid "My timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:27
-#: aleksis/apps/chronos/templates/chronos/all.html:11
-#: aleksis/apps/chronos/templates/chronos/all.html:12
-msgid "All timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:38
-msgid "Daily lessons"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:49
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:11
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:17
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
-msgid "Substitutions"
-msgstr ""
-
 #: aleksis/apps/chronos/mixins.py:25
 msgid "Linked validity range"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:142
-msgid "Show announcement in timetable views?"
-msgstr ""
-
-#: aleksis/apps/chronos/model_extensions.py:151
+#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:155
+#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:86
+#: aleksis/apps/chronos/models.py:87
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:89 aleksis/apps/chronos/models.py:699
+#: aleksis/apps/chronos/models.py:90 aleksis/apps/chronos/models.py:626
+#: aleksis/apps/chronos/models.py:1310
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:91 aleksis/apps/chronos/models.py:754
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:1061
+#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
+#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:755
-#: aleksis/apps/chronos/models.py:828 aleksis/apps/chronos/models.py:1062
+#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
+#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:111
+#: aleksis/apps/chronos/models.py:112
 msgid "The start date must be earlier than the end date."
 msgstr ""
 
@@ -107,628 +69,583 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:150
+#: aleksis/apps/chronos/models.py:149
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:152
+#: aleksis/apps/chronos/models.py:151
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:154
+#: aleksis/apps/chronos/models.py:153
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:155
+#: aleksis/apps/chronos/models.py:154
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:338 aleksis/apps/chronos/models.py:525
-#: aleksis/apps/chronos/models.py:1191
+#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
+#: aleksis/apps/chronos/models.py:1122
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:339
+#: aleksis/apps/chronos/models.py:325
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:343 aleksis/apps/chronos/models.py:364
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:873
-#: aleksis/apps/chronos/models.py:895
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
+#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:344 aleksis/apps/chronos/models.py:365
-#: aleksis/apps/chronos/models.py:874 aleksis/apps/chronos/models.py:896
+#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
+#: aleksis/apps/chronos/models.py:811
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:346
+#: aleksis/apps/chronos/models.py:332
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:347
+#: aleksis/apps/chronos/models.py:333
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:354 aleksis/apps/chronos/models.py:390
-#: aleksis/apps/chronos/models.py:446 aleksis/apps/chronos/models.py:1198
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:47
+#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
+#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
+#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:355
+#: aleksis/apps/chronos/models.py:341
 msgid "Subjects"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:374
-msgid "Can view room timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:376 aleksis/apps/chronos/models.py:454
-#: aleksis/apps/chronos/models.py:533 aleksis/apps/chronos/models.py:751
-#: aleksis/apps/chronos/models.py:1213
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:48
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-msgid "Room"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:377 aleksis/apps/chronos/models.py:1078
-#: aleksis/apps/chronos/templates/chronos/all.html:45
-msgid "Rooms"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:393 aleksis/apps/chronos/models.py:452
-#: aleksis/apps/chronos/models.py:1080 aleksis/apps/chronos/models.py:1206
-#: aleksis/apps/chronos/tables.py:35
-#: aleksis/apps/chronos/templates/chronos/all.html:17
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
+#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
+#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:358
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1077
-#: aleksis/apps/chronos/models.py:1201 aleksis/apps/chronos/tables.py:34
-#: aleksis/apps/chronos/templates/chronos/all.html:31
+#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
+#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:424 aleksis/apps/chronos/models.py:519
-#: aleksis/apps/chronos/models.py:795
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
+#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
+#: aleksis/apps/chronos/models.py:1454
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:425
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
+#: aleksis/apps/chronos/models.py:395 aleksis/apps/chronos/models.py:1306
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:1185
+#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:434 aleksis/apps/chronos/models.py:1186
+#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437 aleksis/apps/chronos/models.py:654
+#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:456
+#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
+#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
+msgid "Room"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:428
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:458
+#: aleksis/apps/chronos/models.py:430
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:461 aleksis/apps/chronos/models.py:770
-#: aleksis/apps/chronos/models.py:813 aleksis/apps/chronos/models.py:1216
+#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:734 aleksis/apps/chronos/models.py:1147
+#: aleksis/apps/chronos/models.py:1357
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:465
+#: aleksis/apps/chronos/models.py:437
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:506
+#: aleksis/apps/chronos/models.py:477
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:507
+#: aleksis/apps/chronos/models.py:478
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:655
+#: aleksis/apps/chronos/models.py:621
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:693
-msgid "Timetable widget"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:694
-msgid "Timetable widgets"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:708 aleksis/apps/chronos/models.py:726
+#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:709
+#: aleksis/apps/chronos/models.py:636
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:735 aleksis/apps/chronos/models.py:974
-#: aleksis/apps/chronos/models.py:1025
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:46
+#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
+#: aleksis/apps/chronos/models.py:943
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:665
 msgid "Group"
 msgstr "Grex"
 
-#: aleksis/apps/chronos/models.py:759 aleksis/apps/chronos/models.py:802
+#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:808
+#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:780
+#: aleksis/apps/chronos/models.py:702
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:786
+#: aleksis/apps/chronos/models.py:707
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:708
 msgid "Absences"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:798
+#: aleksis/apps/chronos/models.py:719
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:812 aleksis/apps/chronos/models.py:826
-#: aleksis/apps/chronos/models.py:1059
+#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
+#: aleksis/apps/chronos/models.py:977
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:819
+#: aleksis/apps/chronos/models.py:739
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:820
+#: aleksis/apps/chronos/models.py:740
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:829
+#: aleksis/apps/chronos/models.py:749
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:868
+#: aleksis/apps/chronos/models.py:788
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:869
+#: aleksis/apps/chronos/models.py:789
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:883 aleksis/apps/chronos/models.py:964
+#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:804
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:901
+#: aleksis/apps/chronos/models.py:816
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:909
+#: aleksis/apps/chronos/models.py:824
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:949 aleksis/apps/chronos/models.py:968
+#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:950
+#: aleksis/apps/chronos/models.py:865
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1005 aleksis/apps/chronos/models.py:1018
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
-#: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
+#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1006
+#: aleksis/apps/chronos/models.py:924 aleksis/apps/chronos/models.py:1622
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:932
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1048
+#: aleksis/apps/chronos/models.py:966
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1049
+#: aleksis/apps/chronos/models.py:967
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1067
+#: aleksis/apps/chronos/models.py:985
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:991
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1087
+#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+msgid "Rooms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1005
 #, python-brace-format
 msgid "Event {pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1172
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
+#: aleksis/apps/chronos/models.py:1103
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1173
+#: aleksis/apps/chronos/models.py:1104
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1221
+#: aleksis/apps/chronos/models.py:1152
 msgid "Related exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1251
+#: aleksis/apps/chronos/models.py:1181
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1252
+#: aleksis/apps/chronos/models.py:1182
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1264
+#: aleksis/apps/chronos/models.py:1194
 msgid "Number of days shown in the plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1268
+#: aleksis/apps/chronos/models.py:1198
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1269 aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1276
+#: aleksis/apps/chronos/models.py:1206
 msgid "Revision which triggered the last update"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1337
+#: aleksis/apps/chronos/models.py:1278
 msgid "Automatic plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/models.py:1279
 msgid "Automatic plans"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1352
+#: aleksis/apps/chronos/models.py:1293
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/models.py:1294
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1354
+#: aleksis/apps/chronos/models.py:1295
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1355
+#: aleksis/apps/chronos/models.py:1296
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1356
+#: aleksis/apps/chronos/models.py:1297
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:18
-msgid "Use parent groups in timetable views"
+#: aleksis/apps/chronos/models.py:1298
+msgid "Can view all supervisions per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:20
-msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+#: aleksis/apps/chronos/models.py:1313
+msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
-msgid "Shorten groups in timetable views"
+#: aleksis/apps/chronos/models.py:1316
+msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:32
-msgid "If there are more groups than the set limit, they will be collapsed."
+#: aleksis/apps/chronos/models.py:1320
+msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:40
-msgid "Limit of groups for shortening of groups"
+#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
+msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
+#: aleksis/apps/chronos/models.py:1425
+msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:52
-msgid "Number of days shown on substitutions print view"
+#: aleksis/apps/chronos/models.py:1614
+msgid "Lesson Event"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:60
-msgid "Show header box in substitution views"
+#: aleksis/apps/chronos/models.py:1615
+msgid "Lesson Events"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
-msgid "Show parent groups in header box in substitution views instead of original groups"
+#: aleksis/apps/chronos/models.py:1630
+msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:79
-msgid "How many days in advance users should be notified about timetable changes?"
+#: aleksis/apps/chronos/preferences.py:21
+msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:87
-msgid "Time for sending notifications about timetable changes"
+#: aleksis/apps/chronos/preferences.py:29
+msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:90
-msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
+#: aleksis/apps/chronos/preferences.py:31
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:101
-#: aleksis/apps/chronos/preferences.py:109
-msgid "Send notifications for current timetable changes"
+#: aleksis/apps/chronos/preferences.py:42
+msgid "Shorten groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:41
-msgid "Substitution"
+#: aleksis/apps/chronos/preferences.py:43
+msgid "If there are more groups than the set limit, they will be collapsed."
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:43
-msgid "Manage substitution"
+#: aleksis/apps/chronos/preferences.py:51
+msgid "Limit of groups for shortening of groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:25
-msgid "No teachers timetables available."
+#: aleksis/apps/chronos/preferences.py:53
+msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:39
-msgid "No group timetables available."
+#: aleksis/apps/chronos/preferences.py:65
+msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:53
-msgid "No room timetables available."
+#: aleksis/apps/chronos/preferences.py:82
+msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:11
-msgid "Edit substitution."
+#: aleksis/apps/chronos/preferences.py:91
+msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:12
-msgid "Edit substitution"
+#: aleksis/apps/chronos/preferences.py:99
+msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:25
-msgid "Delete"
+#: aleksis/apps/chronos/preferences.py:109
+msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:19
-#: aleksis/apps/chronos/templates/chronos/timetable.html:50
-msgid "SMART PLAN"
+#: aleksis/apps/chronos/preferences.py:118
+msgid "How many days in advance users should be notified about timetable changes?"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:22
-msgid "Show week timetable for"
+#: aleksis/apps/chronos/preferences.py:126
+msgid "Time for sending notifications about timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
-msgid "Absent teachers"
+#: aleksis/apps/chronos/preferences.py:129
+msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:22
-msgid "Absent groups"
+#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:148
+msgid "Send notifications for current timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:34
-msgid "Affected teachers"
+#: aleksis/apps/chronos/preferences.py:158
+msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:46
-msgid "Affected groups"
+#: aleksis/apps/chronos/preferences.py:159
+msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/lesson.html:27
-msgid "Cancelled due to an event"
+#: aleksis/apps/chronos/preferences.py:169
+msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-msgid "Cancelled"
+#: aleksis/apps/chronos/preferences.py:181
+msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:6
-msgid "Cancelled for teachers"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
+msgid "Absent teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/today.html:2
-msgid "Today"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:22
+msgid "Absent groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:14
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:25
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:36
-msgid "CW"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:34
+msgid "Affected teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:49
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
-msgid "Notes"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:46
+msgid "Affected groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:57
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
-msgid "No substitutions available."
+#: aleksis/apps/chronos/templates/chronos/partials/subs/period.html:12
+msgid "all day"
 msgstr ""
 
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
 msgid "Print: Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/timetable.html:24
-#: aleksis/apps/chronos/templates/chronos/timetable_print.html:11
-#: aleksis/apps/chronos/util/notifications.py:206
-msgid "Timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:29
-msgid "Group teachers:"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:55
-msgid "Show regular timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:63
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of this week"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
+msgid "Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:76
-msgid "Show SMART PLAN"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:27
+msgid "Time"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:8
-#, python-format
-msgid ""
-"\n"
-"        My timetable for %(day)s\n"
-"      "
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
+msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:18
-msgid ""
-"\n"
-"          There is no timetable linked to your person.\n"
-"          "
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
+msgid "No substitutions available."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:27
-msgid "Go to smart plan"
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:2
+msgid "Areas"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:50
+#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:57
+#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:66
+#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
 msgid "The teacher {old} is substituted by {new}."
 msgid_plural "The teachers {old} are substituted by {new}."
 msgstr[0] ""
 msgstr[1] ""
 
-#: aleksis/apps/chronos/util/notifications.py:78
+#: aleksis/apps/chronos/util/notifications.py:76
 #, python-brace-format
 msgid "The subject is changed to {subject}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:84
+#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
 msgid "The lesson is moved from {old} to {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:93
+#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
 msgid "There is an additional comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:101
+#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
 msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:114
+#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
 msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:145
+#: aleksis/apps/chronos/util/notifications.py:123
+#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
 msgid "Groups: {groups}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:127
-#: aleksis/apps/chronos/util/notifications.py:149
+#: aleksis/apps/chronos/util/notifications.py:125
+#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
 msgid "Teachers: {teachers}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:130
+#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
 msgid "Rooms: {rooms}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:137
+#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
 msgid "There is an extra lesson on {date} in the {period}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:147
+#: aleksis/apps/chronos/util/notifications.py:145
 #, python-brace-format
 msgid "Subject: {subject}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:151
+#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
 msgid "Room: {room}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:153
+#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
 msgid "Comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:156
+#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
 msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:207
-msgid "There are current changes to your timetable."
-msgstr ""
-
-#: aleksis/apps/chronos/views.py:270
-msgid "The substitution has been saved."
+#: aleksis/apps/chronos/util/notifications.py:204
+msgid "Timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/views.py:291
-msgid "The substitution has been deleted."
+#: aleksis/apps/chronos/util/notifications.py:205
+msgid "There are current changes to your timetable."
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/nb_NO/LC_MESSAGES/django.po
index f4190ee2c3668ce8a8a236aa9dbb007292e467a9..cfc760f01b3206aaf7123340eccf529e9e4db354 100644
--- a/aleksis/apps/chronos/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 11:32+0200\n"
+"POT-Creation-Date: 2024-08-18 14:23+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,76 +17,38 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: aleksis/apps/chronos/form_extensions.py:7
-msgid "Options for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/form_extensions.py:8
-msgid "Optional data for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:10
-msgid "Timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:16
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:18
-msgid "My timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:27
-#: aleksis/apps/chronos/templates/chronos/all.html:11
-#: aleksis/apps/chronos/templates/chronos/all.html:12
-msgid "All timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:38
-msgid "Daily lessons"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:49
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:11
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:17
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
-msgid "Substitutions"
-msgstr ""
-
 #: aleksis/apps/chronos/mixins.py:25
 msgid "Linked validity range"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:142
-msgid "Show announcement in timetable views?"
-msgstr ""
-
-#: aleksis/apps/chronos/model_extensions.py:151
+#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:155
+#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:86
+#: aleksis/apps/chronos/models.py:87
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:89 aleksis/apps/chronos/models.py:699
+#: aleksis/apps/chronos/models.py:90 aleksis/apps/chronos/models.py:626
+#: aleksis/apps/chronos/models.py:1310
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:91 aleksis/apps/chronos/models.py:754
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:1061
+#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
+#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:755
-#: aleksis/apps/chronos/models.py:828 aleksis/apps/chronos/models.py:1062
+#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
+#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:111
+#: aleksis/apps/chronos/models.py:112
 msgid "The start date must be earlier than the end date."
 msgstr ""
 
@@ -106,628 +68,583 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:150
+#: aleksis/apps/chronos/models.py:149
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:152
+#: aleksis/apps/chronos/models.py:151
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:154
+#: aleksis/apps/chronos/models.py:153
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:155
+#: aleksis/apps/chronos/models.py:154
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:338 aleksis/apps/chronos/models.py:525
-#: aleksis/apps/chronos/models.py:1191
+#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
+#: aleksis/apps/chronos/models.py:1122
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:339
+#: aleksis/apps/chronos/models.py:325
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:343 aleksis/apps/chronos/models.py:364
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:873
-#: aleksis/apps/chronos/models.py:895
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
+#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:344 aleksis/apps/chronos/models.py:365
-#: aleksis/apps/chronos/models.py:874 aleksis/apps/chronos/models.py:896
+#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
+#: aleksis/apps/chronos/models.py:811
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:346
+#: aleksis/apps/chronos/models.py:332
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:347
+#: aleksis/apps/chronos/models.py:333
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:354 aleksis/apps/chronos/models.py:390
-#: aleksis/apps/chronos/models.py:446 aleksis/apps/chronos/models.py:1198
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:47
+#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
+#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
+#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:355
+#: aleksis/apps/chronos/models.py:341
 msgid "Subjects"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:374
-msgid "Can view room timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:376 aleksis/apps/chronos/models.py:454
-#: aleksis/apps/chronos/models.py:533 aleksis/apps/chronos/models.py:751
-#: aleksis/apps/chronos/models.py:1213
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:48
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-msgid "Room"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:377 aleksis/apps/chronos/models.py:1078
-#: aleksis/apps/chronos/templates/chronos/all.html:45
-msgid "Rooms"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:393 aleksis/apps/chronos/models.py:452
-#: aleksis/apps/chronos/models.py:1080 aleksis/apps/chronos/models.py:1206
-#: aleksis/apps/chronos/tables.py:35
-#: aleksis/apps/chronos/templates/chronos/all.html:17
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
+#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
+#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:358
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1077
-#: aleksis/apps/chronos/models.py:1201 aleksis/apps/chronos/tables.py:34
-#: aleksis/apps/chronos/templates/chronos/all.html:31
+#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
+#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:424 aleksis/apps/chronos/models.py:519
-#: aleksis/apps/chronos/models.py:795
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
+#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
+#: aleksis/apps/chronos/models.py:1454
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:425
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
+#: aleksis/apps/chronos/models.py:395 aleksis/apps/chronos/models.py:1306
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:1185
+#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:434 aleksis/apps/chronos/models.py:1186
+#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437 aleksis/apps/chronos/models.py:654
+#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:456
+#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
+#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
+msgid "Room"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:428
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:458
+#: aleksis/apps/chronos/models.py:430
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:461 aleksis/apps/chronos/models.py:770
-#: aleksis/apps/chronos/models.py:813 aleksis/apps/chronos/models.py:1216
+#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:734 aleksis/apps/chronos/models.py:1147
+#: aleksis/apps/chronos/models.py:1357
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:465
+#: aleksis/apps/chronos/models.py:437
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:506
+#: aleksis/apps/chronos/models.py:477
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:507
+#: aleksis/apps/chronos/models.py:478
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:655
+#: aleksis/apps/chronos/models.py:621
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:693
-msgid "Timetable widget"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:694
-msgid "Timetable widgets"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:708 aleksis/apps/chronos/models.py:726
+#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:709
+#: aleksis/apps/chronos/models.py:636
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:735 aleksis/apps/chronos/models.py:974
-#: aleksis/apps/chronos/models.py:1025
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:46
+#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
+#: aleksis/apps/chronos/models.py:943
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:665
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:759 aleksis/apps/chronos/models.py:802
+#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:808
+#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:780
+#: aleksis/apps/chronos/models.py:702
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:786
+#: aleksis/apps/chronos/models.py:707
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:708
 msgid "Absences"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:798
+#: aleksis/apps/chronos/models.py:719
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:812 aleksis/apps/chronos/models.py:826
-#: aleksis/apps/chronos/models.py:1059
+#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
+#: aleksis/apps/chronos/models.py:977
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:819
+#: aleksis/apps/chronos/models.py:739
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:820
+#: aleksis/apps/chronos/models.py:740
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:829
+#: aleksis/apps/chronos/models.py:749
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:868
+#: aleksis/apps/chronos/models.py:788
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:869
+#: aleksis/apps/chronos/models.py:789
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:883 aleksis/apps/chronos/models.py:964
+#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:804
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:901
+#: aleksis/apps/chronos/models.py:816
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:909
+#: aleksis/apps/chronos/models.py:824
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:949 aleksis/apps/chronos/models.py:968
+#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:950
+#: aleksis/apps/chronos/models.py:865
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1005 aleksis/apps/chronos/models.py:1018
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
-#: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
+#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1006
+#: aleksis/apps/chronos/models.py:924 aleksis/apps/chronos/models.py:1622
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:932
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1048
+#: aleksis/apps/chronos/models.py:966
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1049
+#: aleksis/apps/chronos/models.py:967
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1067
+#: aleksis/apps/chronos/models.py:985
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:991
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1087
+#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+msgid "Rooms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1005
 #, python-brace-format
 msgid "Event {pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1172
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
+#: aleksis/apps/chronos/models.py:1103
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1173
+#: aleksis/apps/chronos/models.py:1104
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1221
+#: aleksis/apps/chronos/models.py:1152
 msgid "Related exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1251
+#: aleksis/apps/chronos/models.py:1181
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1252
+#: aleksis/apps/chronos/models.py:1182
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1264
+#: aleksis/apps/chronos/models.py:1194
 msgid "Number of days shown in the plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1268
+#: aleksis/apps/chronos/models.py:1198
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1269 aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1276
+#: aleksis/apps/chronos/models.py:1206
 msgid "Revision which triggered the last update"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1337
+#: aleksis/apps/chronos/models.py:1278
 msgid "Automatic plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/models.py:1279
 msgid "Automatic plans"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1352
+#: aleksis/apps/chronos/models.py:1293
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/models.py:1294
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1354
+#: aleksis/apps/chronos/models.py:1295
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1355
+#: aleksis/apps/chronos/models.py:1296
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1356
+#: aleksis/apps/chronos/models.py:1297
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:18
-msgid "Use parent groups in timetable views"
+#: aleksis/apps/chronos/models.py:1298
+msgid "Can view all supervisions per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:20
-msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+#: aleksis/apps/chronos/models.py:1313
+msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
-msgid "Shorten groups in timetable views"
+#: aleksis/apps/chronos/models.py:1316
+msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:32
-msgid "If there are more groups than the set limit, they will be collapsed."
+#: aleksis/apps/chronos/models.py:1320
+msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:40
-msgid "Limit of groups for shortening of groups"
+#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
+msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
+#: aleksis/apps/chronos/models.py:1425
+msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:52
-msgid "Number of days shown on substitutions print view"
+#: aleksis/apps/chronos/models.py:1614
+msgid "Lesson Event"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:60
-msgid "Show header box in substitution views"
+#: aleksis/apps/chronos/models.py:1615
+msgid "Lesson Events"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
-msgid "Show parent groups in header box in substitution views instead of original groups"
+#: aleksis/apps/chronos/models.py:1630
+msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:79
-msgid "How many days in advance users should be notified about timetable changes?"
+#: aleksis/apps/chronos/preferences.py:21
+msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:87
-msgid "Time for sending notifications about timetable changes"
+#: aleksis/apps/chronos/preferences.py:29
+msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:90
-msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
+#: aleksis/apps/chronos/preferences.py:31
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:101
-#: aleksis/apps/chronos/preferences.py:109
-msgid "Send notifications for current timetable changes"
+#: aleksis/apps/chronos/preferences.py:42
+msgid "Shorten groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:41
-msgid "Substitution"
+#: aleksis/apps/chronos/preferences.py:43
+msgid "If there are more groups than the set limit, they will be collapsed."
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:43
-msgid "Manage substitution"
+#: aleksis/apps/chronos/preferences.py:51
+msgid "Limit of groups for shortening of groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:25
-msgid "No teachers timetables available."
+#: aleksis/apps/chronos/preferences.py:53
+msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:39
-msgid "No group timetables available."
+#: aleksis/apps/chronos/preferences.py:65
+msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:53
-msgid "No room timetables available."
+#: aleksis/apps/chronos/preferences.py:82
+msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:11
-msgid "Edit substitution."
+#: aleksis/apps/chronos/preferences.py:91
+msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:12
-msgid "Edit substitution"
+#: aleksis/apps/chronos/preferences.py:99
+msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:25
-msgid "Delete"
+#: aleksis/apps/chronos/preferences.py:109
+msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:19
-#: aleksis/apps/chronos/templates/chronos/timetable.html:50
-msgid "SMART PLAN"
+#: aleksis/apps/chronos/preferences.py:118
+msgid "How many days in advance users should be notified about timetable changes?"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:22
-msgid "Show week timetable for"
+#: aleksis/apps/chronos/preferences.py:126
+msgid "Time for sending notifications about timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
-msgid "Absent teachers"
+#: aleksis/apps/chronos/preferences.py:129
+msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:22
-msgid "Absent groups"
+#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:148
+msgid "Send notifications for current timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:34
-msgid "Affected teachers"
+#: aleksis/apps/chronos/preferences.py:158
+msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:46
-msgid "Affected groups"
+#: aleksis/apps/chronos/preferences.py:159
+msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/lesson.html:27
-msgid "Cancelled due to an event"
+#: aleksis/apps/chronos/preferences.py:169
+msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-msgid "Cancelled"
+#: aleksis/apps/chronos/preferences.py:181
+msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:6
-msgid "Cancelled for teachers"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
+msgid "Absent teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/today.html:2
-msgid "Today"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:22
+msgid "Absent groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:14
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:25
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:36
-msgid "CW"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:34
+msgid "Affected teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:49
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
-msgid "Notes"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:46
+msgid "Affected groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:57
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
-msgid "No substitutions available."
+#: aleksis/apps/chronos/templates/chronos/partials/subs/period.html:12
+msgid "all day"
 msgstr ""
 
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
 msgid "Print: Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/timetable.html:24
-#: aleksis/apps/chronos/templates/chronos/timetable_print.html:11
-#: aleksis/apps/chronos/util/notifications.py:206
-msgid "Timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:29
-msgid "Group teachers:"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:55
-msgid "Show regular timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:63
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of this week"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
+msgid "Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:76
-msgid "Show SMART PLAN"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:27
+msgid "Time"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:8
-#, python-format
-msgid ""
-"\n"
-"        My timetable for %(day)s\n"
-"      "
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
+msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:18
-msgid ""
-"\n"
-"          There is no timetable linked to your person.\n"
-"          "
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
+msgid "No substitutions available."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:27
-msgid "Go to smart plan"
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:2
+msgid "Areas"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:50
+#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:57
+#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:66
+#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
 msgid "The teacher {old} is substituted by {new}."
 msgid_plural "The teachers {old} are substituted by {new}."
 msgstr[0] ""
 msgstr[1] ""
 
-#: aleksis/apps/chronos/util/notifications.py:78
+#: aleksis/apps/chronos/util/notifications.py:76
 #, python-brace-format
 msgid "The subject is changed to {subject}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:84
+#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
 msgid "The lesson is moved from {old} to {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:93
+#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
 msgid "There is an additional comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:101
+#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
 msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:114
+#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
 msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:145
+#: aleksis/apps/chronos/util/notifications.py:123
+#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
 msgid "Groups: {groups}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:127
-#: aleksis/apps/chronos/util/notifications.py:149
+#: aleksis/apps/chronos/util/notifications.py:125
+#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
 msgid "Teachers: {teachers}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:130
+#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
 msgid "Rooms: {rooms}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:137
+#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
 msgid "There is an extra lesson on {date} in the {period}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:147
+#: aleksis/apps/chronos/util/notifications.py:145
 #, python-brace-format
 msgid "Subject: {subject}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:151
+#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
 msgid "Room: {room}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:153
+#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
 msgid "Comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:156
+#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
 msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:207
-msgid "There are current changes to your timetable."
-msgstr ""
-
-#: aleksis/apps/chronos/views.py:270
-msgid "The substitution has been saved."
+#: aleksis/apps/chronos/util/notifications.py:204
+msgid "Timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/views.py:291
-msgid "The substitution has been deleted."
+#: aleksis/apps/chronos/util/notifications.py:205
+msgid "There are current changes to your timetable."
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/ru/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/ru/LC_MESSAGES/django.po
index 2e3d3057579d8be2e8deb28753aa9446c82ca06e..1b0a45605bebc00ee478a4bec86722a8d2d2e4d2 100644
--- a/aleksis/apps/chronos/locale/ru/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/ru/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 11:32+0200\n"
+"POT-Creation-Date: 2024-08-18 14:23+0200\n"
 "PO-Revision-Date: 2023-05-26 04:38+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
 "Language-Team: Russian <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/ru/>\n"
@@ -18,76 +18,38 @@ msgstr ""
 "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 "X-Generator: Weblate 4.12.1\n"
 
-#: aleksis/apps/chronos/form_extensions.py:7
-msgid "Options for timetables"
-msgstr "Опции для расписания"
-
-#: aleksis/apps/chronos/form_extensions.py:8
-msgid "Optional data for timetables"
-msgstr "Опциональные данные для расписания"
-
-#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:10
-msgid "Timetables"
-msgstr "Расписания"
-
-#: aleksis/apps/chronos/menus.py:16
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:18
-msgid "My timetable"
-msgstr "Моё расписание"
-
-#: aleksis/apps/chronos/menus.py:27
-#: aleksis/apps/chronos/templates/chronos/all.html:11
-#: aleksis/apps/chronos/templates/chronos/all.html:12
-msgid "All timetables"
-msgstr "Все расписания"
-
-#: aleksis/apps/chronos/menus.py:38
-msgid "Daily lessons"
-msgstr "Ежедневные уроки"
-
-#: aleksis/apps/chronos/menus.py:49
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:11
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:17
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
-msgid "Substitutions"
-msgstr "Замены"
-
 #: aleksis/apps/chronos/mixins.py:25
 msgid "Linked validity range"
 msgstr "Связанный диапазон"
 
-#: aleksis/apps/chronos/model_extensions.py:142
-msgid "Show announcement in timetable views?"
-msgstr "Показывать объявление при просмотре расписания?"
-
-#: aleksis/apps/chronos/model_extensions.py:151
+#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr "Может просматривать групповые расписания"
 
-#: aleksis/apps/chronos/model_extensions.py:155
+#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr "Может просматривать личные расписания"
 
-#: aleksis/apps/chronos/models.py:86
+#: aleksis/apps/chronos/models.py:87
 msgid "School term"
 msgstr "Учебный год"
 
-#: aleksis/apps/chronos/models.py:89 aleksis/apps/chronos/models.py:699
+#: aleksis/apps/chronos/models.py:90 aleksis/apps/chronos/models.py:626
+#: aleksis/apps/chronos/models.py:1310
 msgid "Name"
 msgstr "Полное имя"
 
-#: aleksis/apps/chronos/models.py:91 aleksis/apps/chronos/models.py:754
-#: aleksis/apps/chronos/models.py:829 aleksis/apps/chronos/models.py:1063
+#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
+#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
 msgid "Start date"
 msgstr "Дата начала"
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:755
-#: aleksis/apps/chronos/models.py:830 aleksis/apps/chronos/models.py:1064
+#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
+#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
 msgid "End date"
 msgstr "Дата окончания"
 
-#: aleksis/apps/chronos/models.py:111
+#: aleksis/apps/chronos/models.py:112
 msgid "The start date must be earlier than the end date."
 msgstr "Дата начала должна быть ранее даты окончания."
 
@@ -107,461 +69,472 @@ msgstr "Контрольный период"
 msgid "Validity ranges"
 msgstr "Контрольные периоды"
 
-#: aleksis/apps/chronos/models.py:150
+#: aleksis/apps/chronos/models.py:149
 msgid "Week day"
 msgstr "День недели"
 
-#: aleksis/apps/chronos/models.py:152
+#: aleksis/apps/chronos/models.py:151
 msgid "Number of period"
 msgstr "Номер урока"
 
-#: aleksis/apps/chronos/models.py:154
+#: aleksis/apps/chronos/models.py:153
 msgid "Start time"
 msgstr "Время начала"
 
-#: aleksis/apps/chronos/models.py:155
+#: aleksis/apps/chronos/models.py:154
 msgid "End time"
 msgstr "Время окончания"
 
-#: aleksis/apps/chronos/models.py:338 aleksis/apps/chronos/models.py:525
-#: aleksis/apps/chronos/models.py:1193
+#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
+#: aleksis/apps/chronos/models.py:1122
 msgid "Time period"
 msgstr "Время урока"
 
-#: aleksis/apps/chronos/models.py:339
+#: aleksis/apps/chronos/models.py:325
 msgid "Time periods"
 msgstr "Время уроков"
 
-#: aleksis/apps/chronos/models.py:343 aleksis/apps/chronos/models.py:364
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:875
-#: aleksis/apps/chronos/models.py:897
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
+#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
 msgid "Short name"
 msgstr "Короткое имя"
 
-#: aleksis/apps/chronos/models.py:344 aleksis/apps/chronos/models.py:365
-#: aleksis/apps/chronos/models.py:876 aleksis/apps/chronos/models.py:898
+#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
+#: aleksis/apps/chronos/models.py:811
 msgid "Long name"
 msgstr "Длинное имя"
 
-#: aleksis/apps/chronos/models.py:346
+#: aleksis/apps/chronos/models.py:332
 msgid "Foreground colour"
 msgstr "Основной цвет"
 
-#: aleksis/apps/chronos/models.py:347
+#: aleksis/apps/chronos/models.py:333
 msgid "Background colour"
 msgstr "Фоновый цвет"
 
-#: aleksis/apps/chronos/models.py:354 aleksis/apps/chronos/models.py:390
-#: aleksis/apps/chronos/models.py:446 aleksis/apps/chronos/models.py:1200
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:47
+#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
+#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
+#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr "Предмет"
 
-#: aleksis/apps/chronos/models.py:355
+#: aleksis/apps/chronos/models.py:341
 msgid "Subjects"
 msgstr "Предметы"
 
-#: aleksis/apps/chronos/models.py:374
-msgid "Can view room timetable"
-msgstr "Может просмативать расписание комнаты"
-
-#: aleksis/apps/chronos/models.py:376 aleksis/apps/chronos/models.py:454
-#: aleksis/apps/chronos/models.py:533 aleksis/apps/chronos/models.py:751
-#: aleksis/apps/chronos/models.py:1215
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:48
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-msgid "Room"
-msgstr "Комната"
-
-#: aleksis/apps/chronos/models.py:377 aleksis/apps/chronos/models.py:1080
-#: aleksis/apps/chronos/templates/chronos/all.html:45
-msgid "Rooms"
-msgstr "Комнаты"
-
-#: aleksis/apps/chronos/models.py:393 aleksis/apps/chronos/models.py:452
-#: aleksis/apps/chronos/models.py:1082 aleksis/apps/chronos/models.py:1208
-#: aleksis/apps/chronos/tables.py:35
-#: aleksis/apps/chronos/templates/chronos/all.html:17
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
+#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
+#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr "Преподаватели"
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:358
 msgid "Periods"
 msgstr "Часы"
 
-#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1079
-#: aleksis/apps/chronos/models.py:1203 aleksis/apps/chronos/tables.py:34
-#: aleksis/apps/chronos/templates/chronos/all.html:31
+#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
+#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr "Группы"
 
-#: aleksis/apps/chronos/models.py:424 aleksis/apps/chronos/models.py:519
-#: aleksis/apps/chronos/models.py:795
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
+#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
+#: aleksis/apps/chronos/models.py:1454
 msgid "Lesson"
 msgstr "Урок"
 
-#: aleksis/apps/chronos/models.py:425
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
+#: aleksis/apps/chronos/models.py:395 aleksis/apps/chronos/models.py:1306
 msgid "Lessons"
 msgstr "Уроки"
 
-#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:1187
+#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
 msgid "Week"
 msgstr "Неделя"
 
-#: aleksis/apps/chronos/models.py:434 aleksis/apps/chronos/models.py:1188
+#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
 msgid "Year"
 msgstr "Год"
 
-#: aleksis/apps/chronos/models.py:437 aleksis/apps/chronos/models.py:654
+#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
 msgid "Lesson period"
 msgstr "Урок по порядку"
 
-#: aleksis/apps/chronos/models.py:456
+#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
+#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
+msgid "Room"
+msgstr "Комната"
+
+#: aleksis/apps/chronos/models.py:428
 msgid "Cancelled?"
 msgstr "Отменено?"
 
-#: aleksis/apps/chronos/models.py:458
+#: aleksis/apps/chronos/models.py:430
 msgid "Cancelled for teachers?"
 msgstr "Отменено для преподавателей?"
 
-#: aleksis/apps/chronos/models.py:461 aleksis/apps/chronos/models.py:770
-#: aleksis/apps/chronos/models.py:815 aleksis/apps/chronos/models.py:1218
+#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:734 aleksis/apps/chronos/models.py:1147
+#: aleksis/apps/chronos/models.py:1357
 msgid "Comment"
 msgstr "Коментарий"
 
-#: aleksis/apps/chronos/models.py:465
+#: aleksis/apps/chronos/models.py:437
 msgid "Lessons can only be either substituted or cancelled."
 msgstr "Уроки могут быть только заменены или отменены."
 
-#: aleksis/apps/chronos/models.py:506
+#: aleksis/apps/chronos/models.py:477
 msgid "Lesson substitution"
 msgstr "Замена урока"
 
-#: aleksis/apps/chronos/models.py:507
+#: aleksis/apps/chronos/models.py:478
 msgid "Lesson substitutions"
 msgstr "Замены уроков"
 
-#: aleksis/apps/chronos/models.py:655
+#: aleksis/apps/chronos/models.py:621
 msgid "Lesson periods"
 msgstr "Учебные часы"
 
-#: aleksis/apps/chronos/models.py:693
-msgid "Timetable widget"
-msgstr "Виджет расписания"
-
-#: aleksis/apps/chronos/models.py:694
-msgid "Timetable widgets"
-msgstr "Виджеты расписания"
-
-#: aleksis/apps/chronos/models.py:708 aleksis/apps/chronos/models.py:726
+#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
 msgid "Absence reason"
 msgstr "Причина отсутствия"
 
-#: aleksis/apps/chronos/models.py:709
+#: aleksis/apps/chronos/models.py:636
 msgid "Absence reasons"
 msgstr "Причины отсутствия"
 
-#: aleksis/apps/chronos/models.py:735 aleksis/apps/chronos/models.py:976
-#: aleksis/apps/chronos/models.py:1027
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:46
+#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
+#: aleksis/apps/chronos/models.py:943
 msgid "Teacher"
 msgstr "Преподаватель"
 
-#: aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:665
 msgid "Group"
 msgstr "Группа"
 
-#: aleksis/apps/chronos/models.py:759 aleksis/apps/chronos/models.py:802
+#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
 msgid "Start period"
 msgstr "Начало уроков"
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:809
+#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
 msgid "End period"
 msgstr "Окончание уроков"
 
-#: aleksis/apps/chronos/models.py:780
+#: aleksis/apps/chronos/models.py:702
 msgid "Unknown absence"
 msgstr "Отсутствие без уважительной причины"
 
-#: aleksis/apps/chronos/models.py:786
+#: aleksis/apps/chronos/models.py:707
 msgid "Absence"
 msgstr "Отсутствие"
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:708
 msgid "Absences"
 msgstr "Пропуски"
 
-#: aleksis/apps/chronos/models.py:798
+#: aleksis/apps/chronos/models.py:719
 msgid "Date of exam"
 msgstr "Дата экзамена"
 
-#: aleksis/apps/chronos/models.py:814 aleksis/apps/chronos/models.py:828
-#: aleksis/apps/chronos/models.py:1061
+#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
+#: aleksis/apps/chronos/models.py:977
 msgid "Title"
 msgstr "Название"
 
-#: aleksis/apps/chronos/models.py:821
+#: aleksis/apps/chronos/models.py:739
 msgid "Exam"
 msgstr "Экзамен"
 
-#: aleksis/apps/chronos/models.py:822
+#: aleksis/apps/chronos/models.py:740
 msgid "Exams"
 msgstr "Экзамены"
 
-#: aleksis/apps/chronos/models.py:831
+#: aleksis/apps/chronos/models.py:749
 msgid "Comments"
 msgstr "Комментарии"
 
-#: aleksis/apps/chronos/models.py:870
+#: aleksis/apps/chronos/models.py:788
 msgid "Holiday"
 msgstr "Выходной"
 
-#: aleksis/apps/chronos/models.py:871
+#: aleksis/apps/chronos/models.py:789
 msgid "Holidays"
 msgstr "Выходные"
 
-#: aleksis/apps/chronos/models.py:885 aleksis/apps/chronos/models.py:966
+#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
 msgid "Supervision area"
 msgstr "Зона контроля"
 
-#: aleksis/apps/chronos/models.py:886
+#: aleksis/apps/chronos/models.py:804
 msgid "Supervision areas"
 msgstr "Зоны контроля"
 
-#: aleksis/apps/chronos/models.py:903
+#: aleksis/apps/chronos/models.py:816
 msgid "Time period after break starts"
 msgstr "Учёба после перерыва начинается"
 
-#: aleksis/apps/chronos/models.py:911
+#: aleksis/apps/chronos/models.py:824
 msgid "Time period before break ends"
 msgstr "Учёба перед перерывом заканчивается"
 
-#: aleksis/apps/chronos/models.py:951 aleksis/apps/chronos/models.py:970
+#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
 msgid "Break"
 msgstr "Перерыв"
 
-#: aleksis/apps/chronos/models.py:952
+#: aleksis/apps/chronos/models.py:865
 msgid "Breaks"
 msgstr "Перерывы"
 
-#: aleksis/apps/chronos/models.py:1007 aleksis/apps/chronos/models.py:1020
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
-#: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
+#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
 msgid "Supervision"
 msgstr "Контроль"
 
-#: aleksis/apps/chronos/models.py:1008
+#: aleksis/apps/chronos/models.py:924 aleksis/apps/chronos/models.py:1622
 msgid "Supervisions"
 msgstr "Контроли"
 
-#: aleksis/apps/chronos/models.py:1016
+#: aleksis/apps/chronos/models.py:932
 msgid "Date"
 msgstr "Дата"
 
-#: aleksis/apps/chronos/models.py:1050
+#: aleksis/apps/chronos/models.py:966
 msgid "Supervision substitution"
 msgstr "Замена контроля"
 
-#: aleksis/apps/chronos/models.py:1051
+#: aleksis/apps/chronos/models.py:967
 msgid "Supervision substitutions"
 msgstr "Замены контроля"
 
-#: aleksis/apps/chronos/models.py:1069
+#: aleksis/apps/chronos/models.py:985
 msgid "Start time period"
 msgstr "Начало урока"
 
-#: aleksis/apps/chronos/models.py:1075
+#: aleksis/apps/chronos/models.py:991
 msgid "End time period"
 msgstr "Конец урока"
 
-#: aleksis/apps/chronos/models.py:1089
+#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+msgid "Rooms"
+msgstr "Комнаты"
+
+#: aleksis/apps/chronos/models.py:1005
 #, python-brace-format
 msgid "Event {pk}"
 msgstr "Событие {pk}"
 
-#: aleksis/apps/chronos/models.py:1174
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
+#: aleksis/apps/chronos/models.py:1103
 msgid "Event"
 msgstr "Событие"
 
-#: aleksis/apps/chronos/models.py:1175
+#: aleksis/apps/chronos/models.py:1104
 msgid "Events"
 msgstr "События"
 
-#: aleksis/apps/chronos/models.py:1221
+#: aleksis/apps/chronos/models.py:1152
 msgid "Related exam"
 msgstr "Связанные экзамены"
 
-#: aleksis/apps/chronos/models.py:1244
+#: aleksis/apps/chronos/models.py:1181
 msgid "Extra lesson"
 msgstr "Дополнительный урок"
 
-#: aleksis/apps/chronos/models.py:1245
+#: aleksis/apps/chronos/models.py:1182
 msgid "Extra lessons"
 msgstr "Дополнительные уроки"
 
-#: aleksis/apps/chronos/models.py:1257
+#: aleksis/apps/chronos/models.py:1194
 msgid "Number of days shown in the plan"
 msgstr "Количество дней для отображения в плане"
 
-#: aleksis/apps/chronos/models.py:1261
+#: aleksis/apps/chronos/models.py:1198
 msgid "Show header box"
 msgstr "Показать заголовок"
 
-#: aleksis/apps/chronos/models.py:1262 aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
 msgid "The header box shows affected teachers/groups."
 msgstr "Заголовок отображает преподавателей/группы, на которых влияет."
 
-#: aleksis/apps/chronos/models.py:1269
+#: aleksis/apps/chronos/models.py:1206
 msgid "Revision which triggered the last update"
 msgstr "Ревизия, которая вызвала последнее обновление"
 
-#: aleksis/apps/chronos/models.py:1330
+#: aleksis/apps/chronos/models.py:1278
 msgid "Automatic plan"
 msgstr "Автоматический план"
 
-#: aleksis/apps/chronos/models.py:1331
+#: aleksis/apps/chronos/models.py:1279
 msgid "Automatic plans"
 msgstr "Автоматические планы"
 
-#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/models.py:1293
 msgid "Can view all room timetables"
 msgstr "Может просматривать расписания всех комнат"
 
-#: aleksis/apps/chronos/models.py:1346
+#: aleksis/apps/chronos/models.py:1294
 msgid "Can view all group timetables"
 msgstr "Может просматривать расписания всех групп"
 
-#: aleksis/apps/chronos/models.py:1347
+#: aleksis/apps/chronos/models.py:1295
 msgid "Can view all person timetables"
 msgstr "Может просматривать расписания всех людей"
 
-#: aleksis/apps/chronos/models.py:1348
+#: aleksis/apps/chronos/models.py:1296
 msgid "Can view timetable overview"
 msgstr "Может просматривать общее расписание"
 
-#: aleksis/apps/chronos/models.py:1349
+#: aleksis/apps/chronos/models.py:1297
 msgid "Can view all lessons per day"
 msgstr "Может просматривать все уроки за день"
 
-#: aleksis/apps/chronos/preferences.py:18
-msgid "Use parent groups in timetable views"
-msgstr "Использовать родительские группы в обзорах расписания"
+#: aleksis/apps/chronos/models.py:1298
+#, fuzzy
+#| msgid "Can view all lessons per day"
+msgid "Can view all supervisions per day"
+msgstr "Может просматривать все уроки за день"
 
-#: aleksis/apps/chronos/preferences.py:20
-msgid ""
-"If an lesson or substitution has only one group and this group has parent "
-"groups, show the parent groups instead of the original group."
+#: aleksis/apps/chronos/models.py:1313
+#, fuzzy
+#| msgid "Start time"
+msgid "Start slot number"
+msgstr "Время начала"
+
+#: aleksis/apps/chronos/models.py:1316
+#, fuzzy
+#| msgid "End time"
+msgid "End slot number"
+msgstr "Время окончания"
+
+#: aleksis/apps/chronos/models.py:1320
+msgid "Course"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
+msgid "Cancelled"
+msgstr "Отменено"
+
+#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
+#: aleksis/apps/chronos/models.py:1425
+msgid "{} (instead of {})"
 msgstr ""
-"Если у урока или у замены только одна группа и у этой группы есть "
-"родительские группы, отображать их вместо оригинальной группы."
+
+#: aleksis/apps/chronos/models.py:1614
+#, fuzzy
+#| msgid "Lesson"
+msgid "Lesson Event"
+msgstr "Урок"
+
+#: aleksis/apps/chronos/models.py:1615
+#, fuzzy
+#| msgid "Lessons"
+msgid "Lesson Events"
+msgstr "Уроки"
+
+#: aleksis/apps/chronos/models.py:1630
+#, fuzzy
+#| msgid "Supervision"
+msgid "Supervision: {}"
+msgstr "Контроль"
+
+#: aleksis/apps/chronos/preferences.py:21
+msgid "Timetables"
+msgstr "Расписания"
+
+#: aleksis/apps/chronos/preferences.py:29
+msgid "Use parent groups in timetable views"
+msgstr "Использовать родительские группы в обзорах расписания"
 
 #: aleksis/apps/chronos/preferences.py:31
+#, fuzzy
+#| msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+msgstr "Если у урока или у замены только одна группа и у этой группы есть родительские группы, отображать их вместо оригинальной группы."
+
+#: aleksis/apps/chronos/preferences.py:42
 msgid "Shorten groups in timetable views"
 msgstr "Сокращать группы в обзорах расписания"
 
-#: aleksis/apps/chronos/preferences.py:32
+#: aleksis/apps/chronos/preferences.py:43
 msgid "If there are more groups than the set limit, they will be collapsed."
-msgstr ""
-"Если количество групп больше установленного лимита, они будут сгруппированы."
+msgstr "Если количество групп больше установленного лимита, они будут сгруппированы."
 
-#: aleksis/apps/chronos/preferences.py:40
+#: aleksis/apps/chronos/preferences.py:51
 msgid "Limit of groups for shortening of groups"
 msgstr "Лимит количества групп для сокращения групп"
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid ""
-"If an user activates shortening of groups,they will be collapsed if there "
-"are more groups than this limit."
+#: aleksis/apps/chronos/preferences.py:53
+#, fuzzy
+#| msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+msgstr "Если пользователь активирует сокращение групп и количество больше установленного лимита, они группируются."
+
+#: aleksis/apps/chronos/preferences.py:65
+#, fuzzy
+#| msgid "Lesson substitutions"
+msgid "Relevant days for substitution plans"
+msgstr "Замены уроков"
+
+#: aleksis/apps/chronos/preferences.py:82
+msgid "Time when substitution plans switch to the next day"
 msgstr ""
-"Если пользователь активирует сокращение групп и количество больше "
-"установленного лимита, они группируются."
 
-#: aleksis/apps/chronos/preferences.py:52
+#: aleksis/apps/chronos/preferences.py:91
 msgid "Number of days shown on substitutions print view"
 msgstr "Количество дней для отображения в печатном виде замен"
 
-#: aleksis/apps/chronos/preferences.py:60
+#: aleksis/apps/chronos/preferences.py:99
 msgid "Show header box in substitution views"
 msgstr "Отображать заголовок в обзоре замен"
 
-#: aleksis/apps/chronos/preferences.py:70
-msgid ""
-"Show parent groups in header box in substitution views instead of original "
-"groups"
-msgstr ""
-"В заголовке обзора замен отображать родительские группы вместо оригинальных"
+#: aleksis/apps/chronos/preferences.py:109
+msgid "Show parent groups in header box in substitution views instead of original groups"
+msgstr "В заголовке обзора замен отображать родительские группы вместо оригинальных"
 
-#: aleksis/apps/chronos/preferences.py:79
-msgid ""
-"How many days in advance users should be notified about timetable changes?"
-msgstr ""
-"За сколько дней до изменений в расписании необходимо уведомлять "
-"пользователей?"
+#: aleksis/apps/chronos/preferences.py:118
+msgid "How many days in advance users should be notified about timetable changes?"
+msgstr "За сколько дней до изменений в расписании необходимо уведомлять пользователей?"
 
-#: aleksis/apps/chronos/preferences.py:87
+#: aleksis/apps/chronos/preferences.py:126
 msgid "Time for sending notifications about timetable changes"
 msgstr "Время для отправки уведомлений об изменениях в расписании"
 
-#: aleksis/apps/chronos/preferences.py:90
-msgid ""
-"This is only used for scheduling notifications which doesn't affect the time "
-"period configured above. All other notifications affecting the next days are "
-"sent immediately."
-msgstr ""
-"Это используется только для планирования уведомлений, которые не влияют на "
-"время уроков, настроенных выше. Все другие уведомления, которые влияют на "
-"ближайшие дни, отправляются незамедлительно."
+#: aleksis/apps/chronos/preferences.py:129
+msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
+msgstr "Это используется только для планирования уведомлений, которые не влияют на время уроков, настроенных выше. Все другие уведомления, которые влияют на ближайшие дни, отправляются незамедлительно."
 
-#: aleksis/apps/chronos/preferences.py:101
-#: aleksis/apps/chronos/preferences.py:109
+#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:148
 msgid "Send notifications for current timetable changes"
 msgstr "Отправить уведомления о текущих изменениях в расписании"
 
-#: aleksis/apps/chronos/tables.py:41
-msgid "Substitution"
-msgstr "Замена"
-
-#: aleksis/apps/chronos/tables.py:43
-msgid "Manage substitution"
-msgstr "Управление заменами"
-
-#: aleksis/apps/chronos/templates/chronos/all.html:25
-msgid "No teachers timetables available."
-msgstr "Расписания преподавателей недоступны."
-
-#: aleksis/apps/chronos/templates/chronos/all.html:39
-msgid "No group timetables available."
-msgstr "Расписания групп недоступны."
-
-#: aleksis/apps/chronos/templates/chronos/all.html:53
-msgid "No room timetables available."
-msgstr "Расписания комнат недоступны."
-
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:6
-msgid "Edit substitution."
-msgstr "Редактировать замену."
-
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:7
-msgid "Edit substitution"
-msgstr "Редактировать замену"
+#: aleksis/apps/chronos/preferences.py:158
+#, fuzzy
+#| msgid "Shorten groups in timetable views"
+msgid "Group types to show in timetables"
+msgstr "Сокращать группы в обзорах расписания"
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:20
-msgid "Delete"
-msgstr "Удалить"
+#: aleksis/apps/chronos/preferences.py:159
+msgid "If you leave it empty, all groups will be shown."
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:19
-#: aleksis/apps/chronos/templates/chronos/timetable.html:50
-msgid "SMART PLAN"
-msgstr "SMART PLAN"
+#: aleksis/apps/chronos/preferences.py:169
+msgid "Lesson calendar feed color"
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:22
-msgid "Show week timetable for"
-msgstr "Отобразить недельное расписание для"
+#: aleksis/apps/chronos/preferences.py:181
+#, fuzzy
+#| msgid "Supervision area"
+msgid "Supervision calendar feed color"
+msgstr "Зона контроля"
 
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
@@ -579,104 +552,47 @@ msgstr "На каких преподавателей влияет"
 msgid "Affected groups"
 msgstr "На какие группы влияет"
 
-#: aleksis/apps/chronos/templates/chronos/partials/lesson.html:27
-msgid "Cancelled due to an event"
-msgstr "Отменено из-за события"
-
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-msgid "Cancelled"
-msgstr "Отменено"
+#: aleksis/apps/chronos/templates/chronos/partials/subs/period.html:12
+msgid "all day"
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:6
-msgid "Cancelled for teachers"
-msgstr "Отменено для преподавателей"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
+msgid "Print: Substitutions"
+msgstr "Печать: Замены"
 
-#: aleksis/apps/chronos/templates/chronos/partials/today.html:2
-msgid "Today"
-msgstr "Сегодня"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
+msgid "Substitutions"
+msgstr "Замены"
 
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:14
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:25
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:36
-msgid "CW"
-msgstr "НД"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:27
+#, fuzzy
+#| msgid "Timetable"
+msgid "Time"
+msgstr "Расписание"
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:49
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
 msgid "Notes"
 msgstr "Заметки"
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:57
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
 msgid "No substitutions available."
 msgstr "Замены недоступны."
 
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
-msgid "Print: Substitutions"
-msgstr "Печать: Замены"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/timetable.html:24
-#: aleksis/apps/chronos/templates/chronos/timetable_print.html:11
-#: aleksis/apps/chronos/util/notifications.py:206
-msgid "Timetable"
-msgstr "Расписание"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:29
-msgid "Group teachers:"
-msgstr "Преподаватели групп:"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:55
-msgid "Show regular timetable"
-msgstr "Показать обычное расписание"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:63
-msgid "View class register of this week"
-msgstr "Обзор классного журнала за эту неделю"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:76
-msgid "Show SMART PLAN"
-msgstr "Показать SMART PLAN"
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:8
-#, python-format
-msgid ""
-"\n"
-"        My timetable for %(day)s\n"
-"      "
-msgstr ""
-"\n"
-"        Моё расписание на %(day)s\n"
-"      "
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:18
-msgid ""
-"\n"
-"          There is no timetable linked to your person.\n"
-"          "
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:2
+msgid "Areas"
 msgstr ""
-"\n"
-"          К Вашей персоне не привязан ни один журнал.\n"
-"          "
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:27
-msgid "Go to smart plan"
-msgstr "Перейти к SMART PLAN"
 
-#: aleksis/apps/chronos/util/notifications.py:50
+#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
-msgid ""
-"The {subject} lesson in the {period}. period on {day} has been cancelled."
+msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
 msgstr "Урок {subject} на {period} уроке {day} отменён."
 
-#: aleksis/apps/chronos/util/notifications.py:57
+#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
-msgid ""
-"The {subject} lesson in the {period}. period on {day} has some current "
-"changes."
+msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
 msgstr "В урок {subject} на {period} уроке {day} внесены некоторые изменения."
 
-#: aleksis/apps/chronos/util/notifications.py:66
+#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
 msgid "The teacher {old} is substituted by {new}."
 msgid_plural "The teachers {old} are substituted by {new}."
@@ -685,97 +601,189 @@ msgstr[1] "Преподаватели {old} заменены преподава
 msgstr[2] "Преподаватели {old} заменены преподавателями {new}."
 msgstr[3] "Преподаватели {old} заменены преподавателями {new}."
 
-#: aleksis/apps/chronos/util/notifications.py:78
+#: aleksis/apps/chronos/util/notifications.py:76
 #, python-brace-format
 msgid "The subject is changed to {subject}."
 msgstr "Предмет заменён на {subject}."
 
-#: aleksis/apps/chronos/util/notifications.py:84
+#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
 msgid "The lesson is moved from {old} to {new}."
 msgstr "Урок перенесён с {old} на {new}."
 
-#: aleksis/apps/chronos/util/notifications.py:93
+#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
 msgid "There is an additional comment: {comment}."
 msgstr "Присутствует дополнительный комментарий: {comment}."
 
-#: aleksis/apps/chronos/util/notifications.py:101
+#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
-msgid ""
-"There is an event that starts on {date_start}, {period_from}. period and "
-"ends on {date_end}, {period_to}. period:"
-msgstr ""
-"Запланировано мероприятие, которое начинается {date_start}, на "
-"{period_from}. уроке и заканчивается {date_end}, на {period_to}. уроке:"
+msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
+msgstr "Запланировано мероприятие, которое начинается {date_start}, на {period_from}. уроке и заканчивается {date_end}, на {period_to}. уроке:"
 
-#: aleksis/apps/chronos/util/notifications.py:114
+#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
-msgid ""
-"There is an event on {date} from the {period_from}. period to the "
-"{period_to}. period:"
-msgstr ""
-"Запланировано мероприятие {date} с {period_from}. урока до {period_to}. "
-"урока:"
+msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
+msgstr "Запланировано мероприятие {date} с {period_from}. урока до {period_to}. урока:"
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:145
+#: aleksis/apps/chronos/util/notifications.py:123
+#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
 msgid "Groups: {groups}"
 msgstr "Группы: {groups}"
 
-#: aleksis/apps/chronos/util/notifications.py:127
-#: aleksis/apps/chronos/util/notifications.py:149
+#: aleksis/apps/chronos/util/notifications.py:125
+#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
 msgid "Teachers: {teachers}"
 msgstr "Преподаватели: {teachers}"
 
-#: aleksis/apps/chronos/util/notifications.py:130
+#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
 msgid "Rooms: {rooms}"
 msgstr "Комнаты: {rooms}"
 
-#: aleksis/apps/chronos/util/notifications.py:137
+#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
 msgid "There is an extra lesson on {date} in the {period}. period:"
 msgstr "Запланирован дополнительный урок {date} на {period}. уроке:"
 
-#: aleksis/apps/chronos/util/notifications.py:147
+#: aleksis/apps/chronos/util/notifications.py:145
 #, python-brace-format
 msgid "Subject: {subject}"
 msgstr "Предмет: {subject}"
 
-#: aleksis/apps/chronos/util/notifications.py:151
+#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
 msgid "Room: {room}"
 msgstr "Комната: {room}"
 
-#: aleksis/apps/chronos/util/notifications.py:153
+#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
 msgid "Comment: {comment}."
 msgstr "Комментарий: {comment}."
 
-#: aleksis/apps/chronos/util/notifications.py:156
+#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
-msgid ""
-"The supervision of {old} on {date} between the {period_from}. period and the "
-"{period_to}. period in the area {area} is substituted by {new}."
-msgstr ""
-"Контроль {old}, {date} между {period_from}. и {period_to}. уроками в зоне "
-"{area} заменён на {new}."
+msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
+msgstr "Контроль {old}, {date} между {period_from}. и {period_to}. уроками в зоне {area} заменён на {new}."
 
-#: aleksis/apps/chronos/util/notifications.py:207
+#: aleksis/apps/chronos/util/notifications.py:204
+msgid "Timetable"
+msgstr "Расписание"
+
+#: aleksis/apps/chronos/util/notifications.py:205
 msgid "There are current changes to your timetable."
 msgstr "У Вас в расписании произошли изменения."
 
-#: aleksis/apps/chronos/views.py:270
-msgid "The substitution has been saved."
-msgstr "Замена сохранена."
+#~ msgid "Options for timetables"
+#~ msgstr "Опции для расписания"
+
+#~ msgid "Optional data for timetables"
+#~ msgstr "Опциональные данные для расписания"
+
+#~ msgid "My timetable"
+#~ msgstr "Моё расписание"
+
+#~ msgid "All timetables"
+#~ msgstr "Все расписания"
+
+#~ msgid "Daily lessons"
+#~ msgstr "Ежедневные уроки"
+
+#~ msgid "Show announcement in timetable views?"
+#~ msgstr "Показывать объявление при просмотре расписания?"
+
+#~ msgid "Can view room timetable"
+#~ msgstr "Может просмативать расписание комнаты"
+
+#~ msgid "Timetable widget"
+#~ msgstr "Виджет расписания"
 
-#: aleksis/apps/chronos/views.py:291
-msgid "The substitution has been deleted."
-msgstr "Замена удалена."
+#~ msgid "Timetable widgets"
+#~ msgstr "Виджеты расписания"
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of the current week"
-msgstr "Обзор классного журнала за текущую неделю"
+#~ msgid "Substitution"
+#~ msgstr "Замена"
+
+#~ msgid "Manage substitution"
+#~ msgstr "Управление заменами"
+
+#~ msgid "No teachers timetables available."
+#~ msgstr "Расписания преподавателей недоступны."
+
+#~ msgid "No group timetables available."
+#~ msgstr "Расписания групп недоступны."
+
+#~ msgid "No room timetables available."
+#~ msgstr "Расписания комнат недоступны."
+
+#~ msgid "Edit substitution."
+#~ msgstr "Редактировать замену."
+
+#~ msgid "Edit substitution"
+#~ msgstr "Редактировать замену"
+
+#~ msgid "Delete"
+#~ msgstr "Удалить"
+
+#~ msgid "SMART PLAN"
+#~ msgstr "SMART PLAN"
+
+#~ msgid "Show week timetable for"
+#~ msgstr "Отобразить недельное расписание для"
+
+#~ msgid "Cancelled due to an event"
+#~ msgstr "Отменено из-за события"
+
+#~ msgid "Cancelled for teachers"
+#~ msgstr "Отменено для преподавателей"
+
+#~ msgid "Today"
+#~ msgstr "Сегодня"
+
+#~ msgid "CW"
+#~ msgstr "НД"
+
+#~ msgid "Group teachers:"
+#~ msgstr "Преподаватели групп:"
+
+#~ msgid "Show regular timetable"
+#~ msgstr "Показать обычное расписание"
+
+#~ msgid "View class register of this week"
+#~ msgstr "Обзор классного журнала за эту неделю"
+
+#~ msgid "Show SMART PLAN"
+#~ msgstr "Показать SMART PLAN"
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ "        My timetable for %(day)s\n"
+#~ "      "
+#~ msgstr ""
+#~ "\n"
+#~ "        Моё расписание на %(day)s\n"
+#~ "      "
+
+#~ msgid ""
+#~ "\n"
+#~ "          There is no timetable linked to your person.\n"
+#~ "          "
+#~ msgstr ""
+#~ "\n"
+#~ "          К Вашей персоне не привязан ни один журнал.\n"
+#~ "          "
+
+#~ msgid "Go to smart plan"
+#~ msgstr "Перейти к SMART PLAN"
+
+#~ msgid "The substitution has been saved."
+#~ msgstr "Замена сохранена."
+
+#~ msgid "The substitution has been deleted."
+#~ msgstr "Замена удалена."
+
+#~ msgid "View class register of the current week"
+#~ msgstr "Обзор классного журнала за текущую неделю"
diff --git a/aleksis/apps/chronos/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/tr_TR/LC_MESSAGES/django.po
index f4190ee2c3668ce8a8a236aa9dbb007292e467a9..cfc760f01b3206aaf7123340eccf529e9e4db354 100644
--- a/aleksis/apps/chronos/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 11:32+0200\n"
+"POT-Creation-Date: 2024-08-18 14:23+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,76 +17,38 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: aleksis/apps/chronos/form_extensions.py:7
-msgid "Options for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/form_extensions.py:8
-msgid "Optional data for timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:10
-msgid "Timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:16
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:18
-msgid "My timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:27
-#: aleksis/apps/chronos/templates/chronos/all.html:11
-#: aleksis/apps/chronos/templates/chronos/all.html:12
-msgid "All timetables"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:38
-msgid "Daily lessons"
-msgstr ""
-
-#: aleksis/apps/chronos/menus.py:49
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:11
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:17
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
-msgid "Substitutions"
-msgstr ""
-
 #: aleksis/apps/chronos/mixins.py:25
 msgid "Linked validity range"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:142
-msgid "Show announcement in timetable views?"
-msgstr ""
-
-#: aleksis/apps/chronos/model_extensions.py:151
+#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/model_extensions.py:155
+#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:86
+#: aleksis/apps/chronos/models.py:87
 msgid "School term"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:89 aleksis/apps/chronos/models.py:699
+#: aleksis/apps/chronos/models.py:90 aleksis/apps/chronos/models.py:626
+#: aleksis/apps/chronos/models.py:1310
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:91 aleksis/apps/chronos/models.py:754
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:1061
+#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
+#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
 msgid "Start date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:755
-#: aleksis/apps/chronos/models.py:828 aleksis/apps/chronos/models.py:1062
+#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
+#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
 msgid "End date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:111
+#: aleksis/apps/chronos/models.py:112
 msgid "The start date must be earlier than the end date."
 msgstr ""
 
@@ -106,628 +68,583 @@ msgstr ""
 msgid "Validity ranges"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:150
+#: aleksis/apps/chronos/models.py:149
 msgid "Week day"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:152
+#: aleksis/apps/chronos/models.py:151
 msgid "Number of period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:154
+#: aleksis/apps/chronos/models.py:153
 msgid "Start time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:155
+#: aleksis/apps/chronos/models.py:154
 msgid "End time"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:338 aleksis/apps/chronos/models.py:525
-#: aleksis/apps/chronos/models.py:1191
+#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
+#: aleksis/apps/chronos/models.py:1122
 msgid "Time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:339
+#: aleksis/apps/chronos/models.py:325
 msgid "Time periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:343 aleksis/apps/chronos/models.py:364
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:873
-#: aleksis/apps/chronos/models.py:895
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
+#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:344 aleksis/apps/chronos/models.py:365
-#: aleksis/apps/chronos/models.py:874 aleksis/apps/chronos/models.py:896
+#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
+#: aleksis/apps/chronos/models.py:811
 msgid "Long name"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:346
+#: aleksis/apps/chronos/models.py:332
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:347
+#: aleksis/apps/chronos/models.py:333
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:354 aleksis/apps/chronos/models.py:390
-#: aleksis/apps/chronos/models.py:446 aleksis/apps/chronos/models.py:1198
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:47
+#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
+#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
+#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
 msgid "Subject"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:355
+#: aleksis/apps/chronos/models.py:341
 msgid "Subjects"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:374
-msgid "Can view room timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:376 aleksis/apps/chronos/models.py:454
-#: aleksis/apps/chronos/models.py:533 aleksis/apps/chronos/models.py:751
-#: aleksis/apps/chronos/models.py:1213
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:48
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-msgid "Room"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:377 aleksis/apps/chronos/models.py:1078
-#: aleksis/apps/chronos/templates/chronos/all.html:45
-msgid "Rooms"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:393 aleksis/apps/chronos/models.py:452
-#: aleksis/apps/chronos/models.py:1080 aleksis/apps/chronos/models.py:1206
-#: aleksis/apps/chronos/tables.py:35
-#: aleksis/apps/chronos/templates/chronos/all.html:17
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
+#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
+#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:358
 msgid "Periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1077
-#: aleksis/apps/chronos/models.py:1201 aleksis/apps/chronos/tables.py:34
-#: aleksis/apps/chronos/templates/chronos/all.html:31
+#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
+#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:424 aleksis/apps/chronos/models.py:519
-#: aleksis/apps/chronos/models.py:795
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
+#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
+#: aleksis/apps/chronos/models.py:1454
 msgid "Lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:425
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
+#: aleksis/apps/chronos/models.py:395 aleksis/apps/chronos/models.py:1306
 msgid "Lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:1185
+#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
 msgid "Week"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:434 aleksis/apps/chronos/models.py:1186
+#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:437 aleksis/apps/chronos/models.py:654
+#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
 msgid "Lesson period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:456
+#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
+#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
+msgid "Room"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:428
 msgid "Cancelled?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:458
+#: aleksis/apps/chronos/models.py:430
 msgid "Cancelled for teachers?"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:461 aleksis/apps/chronos/models.py:770
-#: aleksis/apps/chronos/models.py:813 aleksis/apps/chronos/models.py:1216
+#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:734 aleksis/apps/chronos/models.py:1147
+#: aleksis/apps/chronos/models.py:1357
 msgid "Comment"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:465
+#: aleksis/apps/chronos/models.py:437
 msgid "Lessons can only be either substituted or cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:506
+#: aleksis/apps/chronos/models.py:477
 msgid "Lesson substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:507
+#: aleksis/apps/chronos/models.py:478
 msgid "Lesson substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:655
+#: aleksis/apps/chronos/models.py:621
 msgid "Lesson periods"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:693
-msgid "Timetable widget"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:694
-msgid "Timetable widgets"
-msgstr ""
-
-#: aleksis/apps/chronos/models.py:708 aleksis/apps/chronos/models.py:726
+#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
 msgid "Absence reason"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:709
+#: aleksis/apps/chronos/models.py:636
 msgid "Absence reasons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:735 aleksis/apps/chronos/models.py:974
-#: aleksis/apps/chronos/models.py:1025
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:46
+#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
+#: aleksis/apps/chronos/models.py:943
 msgid "Teacher"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:665
 msgid "Group"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:759 aleksis/apps/chronos/models.py:802
+#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
 msgid "Start period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:808
+#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:780
+#: aleksis/apps/chronos/models.py:702
 msgid "Unknown absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:786
+#: aleksis/apps/chronos/models.py:707
 msgid "Absence"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:708
 msgid "Absences"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:798
+#: aleksis/apps/chronos/models.py:719
 msgid "Date of exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:812 aleksis/apps/chronos/models.py:826
-#: aleksis/apps/chronos/models.py:1059
+#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
+#: aleksis/apps/chronos/models.py:977
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:819
+#: aleksis/apps/chronos/models.py:739
 msgid "Exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:820
+#: aleksis/apps/chronos/models.py:740
 msgid "Exams"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:829
+#: aleksis/apps/chronos/models.py:749
 msgid "Comments"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:868
+#: aleksis/apps/chronos/models.py:788
 msgid "Holiday"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:869
+#: aleksis/apps/chronos/models.py:789
 msgid "Holidays"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:883 aleksis/apps/chronos/models.py:964
+#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
 msgid "Supervision area"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:884
+#: aleksis/apps/chronos/models.py:804
 msgid "Supervision areas"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:901
+#: aleksis/apps/chronos/models.py:816
 msgid "Time period after break starts"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:909
+#: aleksis/apps/chronos/models.py:824
 msgid "Time period before break ends"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:949 aleksis/apps/chronos/models.py:968
+#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
 msgid "Break"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:950
+#: aleksis/apps/chronos/models.py:865
 msgid "Breaks"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1005 aleksis/apps/chronos/models.py:1018
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
-#: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
+#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
 msgid "Supervision"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1006
+#: aleksis/apps/chronos/models.py:924 aleksis/apps/chronos/models.py:1622
 msgid "Supervisions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1014
+#: aleksis/apps/chronos/models.py:932
 msgid "Date"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1048
+#: aleksis/apps/chronos/models.py:966
 msgid "Supervision substitution"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1049
+#: aleksis/apps/chronos/models.py:967
 msgid "Supervision substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1067
+#: aleksis/apps/chronos/models.py:985
 msgid "Start time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1073
+#: aleksis/apps/chronos/models.py:991
 msgid "End time period"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1087
+#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+msgid "Rooms"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1005
 #, python-brace-format
 msgid "Event {pk}"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1172
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
+#: aleksis/apps/chronos/models.py:1103
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1173
+#: aleksis/apps/chronos/models.py:1104
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1221
+#: aleksis/apps/chronos/models.py:1152
 msgid "Related exam"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1251
+#: aleksis/apps/chronos/models.py:1181
 msgid "Extra lesson"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1252
+#: aleksis/apps/chronos/models.py:1182
 msgid "Extra lessons"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1264
+#: aleksis/apps/chronos/models.py:1194
 msgid "Number of days shown in the plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1268
+#: aleksis/apps/chronos/models.py:1198
 msgid "Show header box"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1269 aleksis/apps/chronos/preferences.py:61
+#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
 msgid "The header box shows affected teachers/groups."
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1276
+#: aleksis/apps/chronos/models.py:1206
 msgid "Revision which triggered the last update"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1337
+#: aleksis/apps/chronos/models.py:1278
 msgid "Automatic plan"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/models.py:1279
 msgid "Automatic plans"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1352
+#: aleksis/apps/chronos/models.py:1293
 msgid "Can view all room timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/models.py:1294
 msgid "Can view all group timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1354
+#: aleksis/apps/chronos/models.py:1295
 msgid "Can view all person timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1355
+#: aleksis/apps/chronos/models.py:1296
 msgid "Can view timetable overview"
 msgstr ""
 
-#: aleksis/apps/chronos/models.py:1356
+#: aleksis/apps/chronos/models.py:1297
 msgid "Can view all lessons per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:18
-msgid "Use parent groups in timetable views"
+#: aleksis/apps/chronos/models.py:1298
+msgid "Can view all supervisions per day"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:20
-msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+#: aleksis/apps/chronos/models.py:1313
+msgid "Start slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:31
-msgid "Shorten groups in timetable views"
+#: aleksis/apps/chronos/models.py:1316
+msgid "End slot number"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:32
-msgid "If there are more groups than the set limit, they will be collapsed."
+#: aleksis/apps/chronos/models.py:1320
+msgid "Course"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:40
-msgid "Limit of groups for shortening of groups"
+#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
+msgid "Cancelled"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
+#: aleksis/apps/chronos/models.py:1425
+msgid "{} (instead of {})"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:52
-msgid "Number of days shown on substitutions print view"
+#: aleksis/apps/chronos/models.py:1614
+msgid "Lesson Event"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:60
-msgid "Show header box in substitution views"
+#: aleksis/apps/chronos/models.py:1615
+msgid "Lesson Events"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:70
-msgid "Show parent groups in header box in substitution views instead of original groups"
+#: aleksis/apps/chronos/models.py:1630
+msgid "Supervision: {}"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:79
-msgid "How many days in advance users should be notified about timetable changes?"
+#: aleksis/apps/chronos/preferences.py:21
+msgid "Timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:87
-msgid "Time for sending notifications about timetable changes"
+#: aleksis/apps/chronos/preferences.py:29
+msgid "Use parent groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:90
-msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
+#: aleksis/apps/chronos/preferences.py:31
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
 msgstr ""
 
-#: aleksis/apps/chronos/preferences.py:101
-#: aleksis/apps/chronos/preferences.py:109
-msgid "Send notifications for current timetable changes"
+#: aleksis/apps/chronos/preferences.py:42
+msgid "Shorten groups in timetable views"
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:41
-msgid "Substitution"
+#: aleksis/apps/chronos/preferences.py:43
+msgid "If there are more groups than the set limit, they will be collapsed."
 msgstr ""
 
-#: aleksis/apps/chronos/tables.py:43
-msgid "Manage substitution"
+#: aleksis/apps/chronos/preferences.py:51
+msgid "Limit of groups for shortening of groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:25
-msgid "No teachers timetables available."
+#: aleksis/apps/chronos/preferences.py:53
+msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:39
-msgid "No group timetables available."
+#: aleksis/apps/chronos/preferences.py:65
+msgid "Relevant days for substitution plans"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/all.html:53
-msgid "No room timetables available."
+#: aleksis/apps/chronos/preferences.py:82
+msgid "Time when substitution plans switch to the next day"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:11
-msgid "Edit substitution."
+#: aleksis/apps/chronos/preferences.py:91
+msgid "Number of days shown on substitutions print view"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:12
-msgid "Edit substitution"
+#: aleksis/apps/chronos/preferences.py:99
+msgid "Show header box in substitution views"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:25
-msgid "Delete"
+#: aleksis/apps/chronos/preferences.py:109
+msgid "Show parent groups in header box in substitution views instead of original groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:19
-#: aleksis/apps/chronos/templates/chronos/timetable.html:50
-msgid "SMART PLAN"
+#: aleksis/apps/chronos/preferences.py:118
+msgid "How many days in advance users should be notified about timetable changes?"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:22
-msgid "Show week timetable for"
+#: aleksis/apps/chronos/preferences.py:126
+msgid "Time for sending notifications about timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
-msgid "Absent teachers"
+#: aleksis/apps/chronos/preferences.py:129
+msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:22
-msgid "Absent groups"
+#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:148
+msgid "Send notifications for current timetable changes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:34
-msgid "Affected teachers"
+#: aleksis/apps/chronos/preferences.py:158
+msgid "Group types to show in timetables"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:46
-msgid "Affected groups"
+#: aleksis/apps/chronos/preferences.py:159
+msgid "If you leave it empty, all groups will be shown."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/lesson.html:27
-msgid "Cancelled due to an event"
+#: aleksis/apps/chronos/preferences.py:169
+msgid "Lesson calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-msgid "Cancelled"
+#: aleksis/apps/chronos/preferences.py:181
+msgid "Supervision calendar feed color"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:6
-msgid "Cancelled for teachers"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
+msgid "Absent teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/today.html:2
-msgid "Today"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:22
+msgid "Absent groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:14
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:25
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:36
-msgid "CW"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:34
+msgid "Affected teachers"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:49
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
-msgid "Notes"
+#: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:46
+msgid "Affected groups"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:57
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
-msgid "No substitutions available."
+#: aleksis/apps/chronos/templates/chronos/partials/subs/period.html:12
+msgid "all day"
 msgstr ""
 
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
 msgid "Print: Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/timetable.html:24
-#: aleksis/apps/chronos/templates/chronos/timetable_print.html:11
-#: aleksis/apps/chronos/util/notifications.py:206
-msgid "Timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:29
-msgid "Group teachers:"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:55
-msgid "Show regular timetable"
-msgstr ""
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:63
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of this week"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
+msgid "Substitutions"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:76
-msgid "Show SMART PLAN"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:27
+msgid "Time"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:8
-#, python-format
-msgid ""
-"\n"
-"        My timetable for %(day)s\n"
-"      "
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
+msgid "Notes"
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:18
-msgid ""
-"\n"
-"          There is no timetable linked to your person.\n"
-"          "
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
+msgid "No substitutions available."
 msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:27
-msgid "Go to smart plan"
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:2
+msgid "Areas"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:50
+#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:57
+#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
 msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:66
+#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
 msgid "The teacher {old} is substituted by {new}."
 msgid_plural "The teachers {old} are substituted by {new}."
 msgstr[0] ""
 msgstr[1] ""
 
-#: aleksis/apps/chronos/util/notifications.py:78
+#: aleksis/apps/chronos/util/notifications.py:76
 #, python-brace-format
 msgid "The subject is changed to {subject}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:84
+#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
 msgid "The lesson is moved from {old} to {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:93
+#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
 msgid "There is an additional comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:101
+#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
 msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:114
+#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
 msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:145
+#: aleksis/apps/chronos/util/notifications.py:123
+#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
 msgid "Groups: {groups}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:127
-#: aleksis/apps/chronos/util/notifications.py:149
+#: aleksis/apps/chronos/util/notifications.py:125
+#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
 msgid "Teachers: {teachers}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:130
+#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
 msgid "Rooms: {rooms}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:137
+#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
 msgid "There is an extra lesson on {date} in the {period}. period:"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:147
+#: aleksis/apps/chronos/util/notifications.py:145
 #, python-brace-format
 msgid "Subject: {subject}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:151
+#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
 msgid "Room: {room}"
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:153
+#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
 msgid "Comment: {comment}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:156
+#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
 msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
 msgstr ""
 
-#: aleksis/apps/chronos/util/notifications.py:207
-msgid "There are current changes to your timetable."
-msgstr ""
-
-#: aleksis/apps/chronos/views.py:270
-msgid "The substitution has been saved."
+#: aleksis/apps/chronos/util/notifications.py:204
+msgid "Timetable"
 msgstr ""
 
-#: aleksis/apps/chronos/views.py:291
-msgid "The substitution has been deleted."
+#: aleksis/apps/chronos/util/notifications.py:205
+msgid "There are current changes to your timetable."
 msgstr ""
diff --git a/aleksis/apps/chronos/locale/uk/LC_MESSAGES/django.po b/aleksis/apps/chronos/locale/uk/LC_MESSAGES/django.po
index 2985cd57672e71f444acfa40489d632919c92141..2a59feb53f2476f5088389967bf5de5ad9dbdd99 100644
--- a/aleksis/apps/chronos/locale/uk/LC_MESSAGES/django.po
+++ b/aleksis/apps/chronos/locale/uk/LC_MESSAGES/django.po
@@ -7,93 +7,49 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 11:32+0200\n"
+"POT-Creation-Date: 2024-08-18 14:23+0200\n"
 "PO-Revision-Date: 2022-06-22 19:59+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
-"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/"
-"aleksis-app-chronos/uk/>\n"
+"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/aleksis-app-chronos/uk/>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 "
-"? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > "
-"14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % "
-"100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
 "X-Generator: Weblate 4.12.1\n"
 
-#: aleksis/apps/chronos/form_extensions.py:7
-msgid "Options for timetables"
-msgstr "Опції для розкладів"
-
-#: aleksis/apps/chronos/form_extensions.py:8
-msgid "Optional data for timetables"
-msgstr "Додаткові дані для розкладів"
-
-#: aleksis/apps/chronos/menus.py:6 aleksis/apps/chronos/preferences.py:10
-msgid "Timetables"
-msgstr "Розклади"
-
-#: aleksis/apps/chronos/menus.py:16
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:18
-msgid "My timetable"
-msgstr "Мій розклад"
-
-#: aleksis/apps/chronos/menus.py:27
-#: aleksis/apps/chronos/templates/chronos/all.html:11
-#: aleksis/apps/chronos/templates/chronos/all.html:12
-msgid "All timetables"
-msgstr "Усі розклади"
-
-#: aleksis/apps/chronos/menus.py:38
-msgid "Daily lessons"
-msgstr "Щоденні уроки"
-
-#: aleksis/apps/chronos/menus.py:49
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:11
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:17
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
-msgid "Substitutions"
-msgstr "Заміни"
-
 #: aleksis/apps/chronos/mixins.py:25
 msgid "Linked validity range"
 msgstr "Пов'язаний діапазон"
 
-#: aleksis/apps/chronos/model_extensions.py:142
-msgid "Show announcement in timetable views?"
-msgstr "Відображати оголошення з переглядом розкладу?"
-
-#: aleksis/apps/chronos/model_extensions.py:151
+#: aleksis/apps/chronos/model_extensions.py:145
 msgid "Can view group timetable"
 msgstr "Може переглядати групові розклади"
 
-#: aleksis/apps/chronos/model_extensions.py:155
+#: aleksis/apps/chronos/model_extensions.py:149
 msgid "Can view person timetable"
 msgstr "Може переглядати особисті розклади"
 
-#: aleksis/apps/chronos/models.py:86
+#: aleksis/apps/chronos/models.py:87
 msgid "School term"
 msgstr "Навчальний рік"
 
-#: aleksis/apps/chronos/models.py:89 aleksis/apps/chronos/models.py:699
+#: aleksis/apps/chronos/models.py:90 aleksis/apps/chronos/models.py:626
+#: aleksis/apps/chronos/models.py:1310
 msgid "Name"
 msgstr "Повне ім'я"
 
-#: aleksis/apps/chronos/models.py:91 aleksis/apps/chronos/models.py:754
-#: aleksis/apps/chronos/models.py:827 aleksis/apps/chronos/models.py:1061
-#: aleksis/apps/chronos/models.py:829 aleksis/apps/chronos/models.py:1063
+#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:676
+#: aleksis/apps/chronos/models.py:747 aleksis/apps/chronos/models.py:979
 msgid "Start date"
 msgstr "Дата початку"
 
-#: aleksis/apps/chronos/models.py:92 aleksis/apps/chronos/models.py:755
-#: aleksis/apps/chronos/models.py:828 aleksis/apps/chronos/models.py:1062
-#: aleksis/apps/chronos/models.py:830 aleksis/apps/chronos/models.py:1064
+#: aleksis/apps/chronos/models.py:93 aleksis/apps/chronos/models.py:677
+#: aleksis/apps/chronos/models.py:748 aleksis/apps/chronos/models.py:980
 msgid "End date"
 msgstr "Дата закінчення"
 
-#: aleksis/apps/chronos/models.py:111
+#: aleksis/apps/chronos/models.py:112
 msgid "The start date must be earlier than the end date."
 msgstr "Початкова дата повинна бути раніше кінцевої."
 
@@ -103,8 +59,7 @@ msgstr "Контрольний період повинен бути в рамк
 
 #: aleksis/apps/chronos/models.py:125
 msgid "There is already a validity range for this time or a part of this time."
-msgstr ""
-"На цей час або на частину цього часу контрольний період вже призначений."
+msgstr "На цей час або на частину цього часу контрольний період вже призначений."
 
 #: aleksis/apps/chronos/models.py:132
 msgid "Validity range"
@@ -114,480 +69,472 @@ msgstr "Контрольний період"
 msgid "Validity ranges"
 msgstr "Контрольні періоди"
 
-#: aleksis/apps/chronos/models.py:150
+#: aleksis/apps/chronos/models.py:149
 msgid "Week day"
 msgstr "День тижня"
 
-#: aleksis/apps/chronos/models.py:152
+#: aleksis/apps/chronos/models.py:151
 msgid "Number of period"
 msgstr "Номер урока"
 
-#: aleksis/apps/chronos/models.py:154
+#: aleksis/apps/chronos/models.py:153
 msgid "Start time"
 msgstr "Час початку"
 
-#: aleksis/apps/chronos/models.py:155
+#: aleksis/apps/chronos/models.py:154
 msgid "End time"
 msgstr "Час закінчення"
 
-#: aleksis/apps/chronos/models.py:338 aleksis/apps/chronos/models.py:525
-#: aleksis/apps/chronos/models.py:1191 aleksis/apps/chronos/models.py:1193
+#: aleksis/apps/chronos/models.py:324 aleksis/apps/chronos/models.py:496
+#: aleksis/apps/chronos/models.py:1122
 msgid "Time period"
 msgstr "Час уроку"
 
-#: aleksis/apps/chronos/models.py:339
+#: aleksis/apps/chronos/models.py:325
 msgid "Time periods"
 msgstr "Час уроків"
 
-#: aleksis/apps/chronos/models.py:343 aleksis/apps/chronos/models.py:364
-#: aleksis/apps/chronos/models.py:698 aleksis/apps/chronos/models.py:873
-#: aleksis/apps/chronos/models.py:895 aleksis/apps/chronos/models.py:875
-#: aleksis/apps/chronos/models.py:897
+#: aleksis/apps/chronos/models.py:329 aleksis/apps/chronos/models.py:625
+#: aleksis/apps/chronos/models.py:793 aleksis/apps/chronos/models.py:810
 msgid "Short name"
 msgstr "Коротке ім'я"
 
-#: aleksis/apps/chronos/models.py:344 aleksis/apps/chronos/models.py:365
-#: aleksis/apps/chronos/models.py:874 aleksis/apps/chronos/models.py:896
-#: aleksis/apps/chronos/models.py:876 aleksis/apps/chronos/models.py:898
+#: aleksis/apps/chronos/models.py:330 aleksis/apps/chronos/models.py:794
+#: aleksis/apps/chronos/models.py:811
 msgid "Long name"
 msgstr "Довге ім'я"
 
-#: aleksis/apps/chronos/models.py:346
+#: aleksis/apps/chronos/models.py:332
 msgid "Foreground colour"
 msgstr "Основний колір"
 
-#: aleksis/apps/chronos/models.py:347
+#: aleksis/apps/chronos/models.py:333
 msgid "Background colour"
 msgstr "Колір фону"
 
-#: aleksis/apps/chronos/models.py:354 aleksis/apps/chronos/models.py:390
-#: aleksis/apps/chronos/models.py:446 aleksis/apps/chronos/models.py:1198
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:47
+#: aleksis/apps/chronos/models.py:340 aleksis/apps/chronos/models.py:349
+#: aleksis/apps/chronos/models.py:416 aleksis/apps/chronos/models.py:1129
+#: aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:2
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:29
-#: aleksis/apps/chronos/models.py:1200
 msgid "Subject"
 msgstr "Предмет"
 
-#: aleksis/apps/chronos/models.py:355
+#: aleksis/apps/chronos/models.py:341
 msgid "Subjects"
 msgstr "Предмети"
 
-#: aleksis/apps/chronos/models.py:374
-msgid "Can view room timetable"
-msgstr "Може переглядати розклад кімнати"
-
-#: aleksis/apps/chronos/models.py:376 aleksis/apps/chronos/models.py:454
-#: aleksis/apps/chronos/models.py:533 aleksis/apps/chronos/models.py:751
-#: aleksis/apps/chronos/models.py:1213
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:48
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
-#: aleksis/apps/chronos/models.py:1215
-msgid "Room"
-msgstr "Кімната"
-
-#: aleksis/apps/chronos/models.py:377 aleksis/apps/chronos/models.py:1078
-#: aleksis/apps/chronos/templates/chronos/all.html:45
-#: aleksis/apps/chronos/models.py:1080
-msgid "Rooms"
-msgstr "Кімнати"
-
-#: aleksis/apps/chronos/models.py:393 aleksis/apps/chronos/models.py:452
-#: aleksis/apps/chronos/models.py:1080 aleksis/apps/chronos/models.py:1206
-#: aleksis/apps/chronos/tables.py:35
-#: aleksis/apps/chronos/templates/chronos/all.html:17
+#: aleksis/apps/chronos/models.py:352 aleksis/apps/chronos/models.py:422
+#: aleksis/apps/chronos/models.py:998 aleksis/apps/chronos/models.py:1137
+#: aleksis/apps/chronos/models.py:1338
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:3
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:28
-#: aleksis/apps/chronos/models.py:1082 aleksis/apps/chronos/models.py:1208
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:1
 msgid "Teachers"
 msgstr "Викладачі"
 
-#: aleksis/apps/chronos/models.py:399
+#: aleksis/apps/chronos/models.py:358
 msgid "Periods"
 msgstr "Години"
 
-#: aleksis/apps/chronos/models.py:401 aleksis/apps/chronos/models.py:1077
-#: aleksis/apps/chronos/models.py:1201 aleksis/apps/chronos/tables.py:34
-#: aleksis/apps/chronos/templates/chronos/all.html:31
-#: aleksis/apps/chronos/models.py:1079 aleksis/apps/chronos/models.py:1203
+#: aleksis/apps/chronos/models.py:360 aleksis/apps/chronos/models.py:995
+#: aleksis/apps/chronos/models.py:1132 aleksis/apps/chronos/models.py:1326
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:1
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:26
 msgid "Groups"
 msgstr "Групи"
 
-#: aleksis/apps/chronos/models.py:424 aleksis/apps/chronos/models.py:519
-#: aleksis/apps/chronos/models.py:795
+#: aleksis/apps/chronos/models.py:394 aleksis/apps/chronos/models.py:490
+#: aleksis/apps/chronos/models.py:716 aleksis/apps/chronos/models.py:1430
+#: aleksis/apps/chronos/models.py:1454
 msgid "Lesson"
 msgstr "Урок"
 
-#: aleksis/apps/chronos/models.py:425
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:9
-#: aleksis/apps/chronos/templates/chronos/lessons_day.html:19
+#: aleksis/apps/chronos/models.py:395 aleksis/apps/chronos/models.py:1306
 msgid "Lessons"
 msgstr "Уроки"
 
-#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:1185
-#: aleksis/apps/chronos/models.py:1187
+#: aleksis/apps/chronos/models.py:403 aleksis/apps/chronos/models.py:1116
 msgid "Week"
 msgstr "Тиждень"
 
-#: aleksis/apps/chronos/models.py:434 aleksis/apps/chronos/models.py:1186
-#: aleksis/apps/chronos/models.py:1188
+#: aleksis/apps/chronos/models.py:404 aleksis/apps/chronos/models.py:1117
 msgid "Year"
 msgstr "Рік"
 
-#: aleksis/apps/chronos/models.py:437 aleksis/apps/chronos/models.py:654
+#: aleksis/apps/chronos/models.py:407 aleksis/apps/chronos/models.py:620
 msgid "Lesson period"
 msgstr "Урок за розкладом"
 
-#: aleksis/apps/chronos/models.py:456
+#: aleksis/apps/chronos/models.py:425 aleksis/apps/chronos/models.py:504
+#: aleksis/apps/chronos/models.py:673 aleksis/apps/chronos/models.py:1144
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:30
+msgid "Room"
+msgstr "Кімната"
+
+#: aleksis/apps/chronos/models.py:428
 msgid "Cancelled?"
 msgstr "Скасовано?"
 
-#: aleksis/apps/chronos/models.py:458
+#: aleksis/apps/chronos/models.py:430
 msgid "Cancelled for teachers?"
 msgstr "Скасовано для викладачів?"
 
-#: aleksis/apps/chronos/models.py:461 aleksis/apps/chronos/models.py:770
-#: aleksis/apps/chronos/models.py:813 aleksis/apps/chronos/models.py:1216
-#: aleksis/apps/chronos/models.py:815 aleksis/apps/chronos/models.py:1218
+#: aleksis/apps/chronos/models.py:433 aleksis/apps/chronos/models.py:692
+#: aleksis/apps/chronos/models.py:734 aleksis/apps/chronos/models.py:1147
+#: aleksis/apps/chronos/models.py:1357
 msgid "Comment"
 msgstr "Коментар"
 
-#: aleksis/apps/chronos/models.py:465
+#: aleksis/apps/chronos/models.py:437
 msgid "Lessons can only be either substituted or cancelled."
 msgstr "Уроки можуть бути лише або замінені, або скасовані."
 
-#: aleksis/apps/chronos/models.py:506
+#: aleksis/apps/chronos/models.py:477
 msgid "Lesson substitution"
 msgstr "Заміна уроку"
 
-#: aleksis/apps/chronos/models.py:507
+#: aleksis/apps/chronos/models.py:478
 msgid "Lesson substitutions"
 msgstr "Заміни уроків"
 
-#: aleksis/apps/chronos/models.py:655
+#: aleksis/apps/chronos/models.py:621
 msgid "Lesson periods"
 msgstr "Навчальні години"
 
-#: aleksis/apps/chronos/models.py:693
-msgid "Timetable widget"
-msgstr "Віджет розкладу"
-
-#: aleksis/apps/chronos/models.py:694
-msgid "Timetable widgets"
-msgstr "Віджети розкладу"
-
-#: aleksis/apps/chronos/models.py:708 aleksis/apps/chronos/models.py:726
+#: aleksis/apps/chronos/models.py:635 aleksis/apps/chronos/models.py:648
 msgid "Absence reason"
 msgstr "Причина відсутності"
 
-#: aleksis/apps/chronos/models.py:709
+#: aleksis/apps/chronos/models.py:636
 msgid "Absence reasons"
 msgstr "Причини відсутності"
 
-#: aleksis/apps/chronos/models.py:735 aleksis/apps/chronos/models.py:974
-#: aleksis/apps/chronos/models.py:1025
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:46
-#: aleksis/apps/chronos/models.py:976 aleksis/apps/chronos/models.py:1027
+#: aleksis/apps/chronos/models.py:657 aleksis/apps/chronos/models.py:889
+#: aleksis/apps/chronos/models.py:943
 msgid "Teacher"
 msgstr "Викладач"
 
-#: aleksis/apps/chronos/models.py:743
+#: aleksis/apps/chronos/models.py:665
 msgid "Group"
 msgstr "Група"
 
-#: aleksis/apps/chronos/models.py:759 aleksis/apps/chronos/models.py:802
+#: aleksis/apps/chronos/models.py:681 aleksis/apps/chronos/models.py:723
 msgid "Start period"
 msgstr "Початок уроків"
 
-#: aleksis/apps/chronos/models.py:766 aleksis/apps/chronos/models.py:808
-#: aleksis/apps/chronos/models.py:809
+#: aleksis/apps/chronos/models.py:688 aleksis/apps/chronos/models.py:729
 msgid "End period"
 msgstr "Закінчення уроків"
 
-#: aleksis/apps/chronos/models.py:780
+#: aleksis/apps/chronos/models.py:702
 msgid "Unknown absence"
 msgstr "Відсутність без пояснень"
 
-#: aleksis/apps/chronos/models.py:786
+#: aleksis/apps/chronos/models.py:707
 msgid "Absence"
 msgstr "Відсутність"
 
-#: aleksis/apps/chronos/models.py:787
+#: aleksis/apps/chronos/models.py:708
 msgid "Absences"
 msgstr "Відсутності"
 
-#: aleksis/apps/chronos/models.py:798
+#: aleksis/apps/chronos/models.py:719
 msgid "Date of exam"
 msgstr "Дата іспиту"
 
-#: aleksis/apps/chronos/models.py:812 aleksis/apps/chronos/models.py:826
-#: aleksis/apps/chronos/models.py:1059 aleksis/apps/chronos/models.py:814
-#: aleksis/apps/chronos/models.py:828 aleksis/apps/chronos/models.py:1061
+#: aleksis/apps/chronos/models.py:733 aleksis/apps/chronos/models.py:746
+#: aleksis/apps/chronos/models.py:977
 msgid "Title"
 msgstr "Назва"
 
-#: aleksis/apps/chronos/models.py:819 aleksis/apps/chronos/models.py:821
+#: aleksis/apps/chronos/models.py:739
 msgid "Exam"
 msgstr "Іспит"
 
-#: aleksis/apps/chronos/models.py:820 aleksis/apps/chronos/models.py:822
+#: aleksis/apps/chronos/models.py:740
 msgid "Exams"
 msgstr "Іспити"
 
-#: aleksis/apps/chronos/models.py:829 aleksis/apps/chronos/models.py:831
+#: aleksis/apps/chronos/models.py:749
 msgid "Comments"
 msgstr "Коментарі"
 
-#: aleksis/apps/chronos/models.py:868 aleksis/apps/chronos/models.py:870
+#: aleksis/apps/chronos/models.py:788
 msgid "Holiday"
 msgstr "Вихідний"
 
-#: aleksis/apps/chronos/models.py:869 aleksis/apps/chronos/models.py:871
+#: aleksis/apps/chronos/models.py:789
 msgid "Holidays"
 msgstr "Вихідні"
 
-#: aleksis/apps/chronos/models.py:883 aleksis/apps/chronos/models.py:964
-#: aleksis/apps/chronos/models.py:885 aleksis/apps/chronos/models.py:966
+#: aleksis/apps/chronos/models.py:803 aleksis/apps/chronos/models.py:879
 msgid "Supervision area"
 msgstr "Зона контролю"
 
-#: aleksis/apps/chronos/models.py:884 aleksis/apps/chronos/models.py:886
+#: aleksis/apps/chronos/models.py:804
 msgid "Supervision areas"
 msgstr "Зони контролю"
 
-#: aleksis/apps/chronos/models.py:901 aleksis/apps/chronos/models.py:903
+#: aleksis/apps/chronos/models.py:816
 msgid "Time period after break starts"
 msgstr "Навчання після перерви починається"
 
-#: aleksis/apps/chronos/models.py:909 aleksis/apps/chronos/models.py:911
+#: aleksis/apps/chronos/models.py:824
 msgid "Time period before break ends"
 msgstr "Навчання перед перервою закінчується"
 
-#: aleksis/apps/chronos/models.py:949 aleksis/apps/chronos/models.py:968
-#: aleksis/apps/chronos/models.py:951 aleksis/apps/chronos/models.py:970
+#: aleksis/apps/chronos/models.py:864 aleksis/apps/chronos/models.py:883
 msgid "Break"
 msgstr "Перерва"
 
-#: aleksis/apps/chronos/models.py:950 aleksis/apps/chronos/models.py:952
+#: aleksis/apps/chronos/models.py:865
 msgid "Breaks"
 msgstr "Перерви"
 
-#: aleksis/apps/chronos/models.py:1005 aleksis/apps/chronos/models.py:1018
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:23
-#: aleksis/apps/chronos/templates/chronos/partials/supervision.html:15
-#: aleksis/apps/chronos/models.py:1007 aleksis/apps/chronos/models.py:1020
+#: aleksis/apps/chronos/models.py:923 aleksis/apps/chronos/models.py:936
+#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:3
 msgid "Supervision"
 msgstr "Контроль"
 
-#: aleksis/apps/chronos/models.py:1006 aleksis/apps/chronos/models.py:1008
+#: aleksis/apps/chronos/models.py:924 aleksis/apps/chronos/models.py:1622
 msgid "Supervisions"
 msgstr "Контролі"
 
-#: aleksis/apps/chronos/models.py:1014 aleksis/apps/chronos/models.py:1016
+#: aleksis/apps/chronos/models.py:932
 msgid "Date"
 msgstr "Дата"
 
-#: aleksis/apps/chronos/models.py:1048 aleksis/apps/chronos/models.py:1050
+#: aleksis/apps/chronos/models.py:966
 msgid "Supervision substitution"
 msgstr "Заміна контролю"
 
-#: aleksis/apps/chronos/models.py:1049 aleksis/apps/chronos/models.py:1051
+#: aleksis/apps/chronos/models.py:967
 msgid "Supervision substitutions"
 msgstr "Заміни контролю"
 
-#: aleksis/apps/chronos/models.py:1067 aleksis/apps/chronos/models.py:1069
+#: aleksis/apps/chronos/models.py:985
 msgid "Start time period"
 msgstr "Початок навчання"
 
-#: aleksis/apps/chronos/models.py:1073 aleksis/apps/chronos/models.py:1075
+#: aleksis/apps/chronos/models.py:991
 msgid "End time period"
 msgstr "Закінчення навчання"
 
-#: aleksis/apps/chronos/models.py:1087 aleksis/apps/chronos/models.py:1089
+#: aleksis/apps/chronos/models.py:996 aleksis/apps/chronos/models.py:1332
+#: aleksis/apps/chronos/templates/chronos/lesson_event_description.txt:4
+msgid "Rooms"
+msgstr "Кімнати"
+
+#: aleksis/apps/chronos/models.py:1005
 #, python-brace-format
 msgid "Event {pk}"
 msgstr "Подія {pk}"
 
-#: aleksis/apps/chronos/models.py:1172
-#: aleksis/apps/chronos/templates/chronos/partials/subs/subject.html:27
-#: aleksis/apps/chronos/models.py:1174
+#: aleksis/apps/chronos/models.py:1103
 msgid "Event"
 msgstr "Подія"
 
-#: aleksis/apps/chronos/models.py:1173 aleksis/apps/chronos/models.py:1175
+#: aleksis/apps/chronos/models.py:1104
 msgid "Events"
 msgstr "Події"
 
-#: aleksis/apps/chronos/models.py:1221
+#: aleksis/apps/chronos/models.py:1152
 msgid "Related exam"
 msgstr "Пов'язані іспити"
 
-#: aleksis/apps/chronos/models.py:1251 aleksis/apps/chronos/models.py:1244
+#: aleksis/apps/chronos/models.py:1181
 msgid "Extra lesson"
 msgstr "Додатковий урок"
 
-#: aleksis/apps/chronos/models.py:1252 aleksis/apps/chronos/models.py:1245
+#: aleksis/apps/chronos/models.py:1182
 msgid "Extra lessons"
 msgstr "Додаткові уроки"
 
-#: aleksis/apps/chronos/models.py:1264 aleksis/apps/chronos/models.py:1257
+#: aleksis/apps/chronos/models.py:1194
 msgid "Number of days shown in the plan"
 msgstr "Кількість днів для відображення у плані"
 
-#: aleksis/apps/chronos/models.py:1268 aleksis/apps/chronos/models.py:1261
+#: aleksis/apps/chronos/models.py:1198
 msgid "Show header box"
 msgstr "Показати заголовок"
 
-#: aleksis/apps/chronos/models.py:1269 aleksis/apps/chronos/preferences.py:61
-#: aleksis/apps/chronos/models.py:1262
+#: aleksis/apps/chronos/models.py:1199 aleksis/apps/chronos/preferences.py:100
 msgid "The header box shows affected teachers/groups."
 msgstr "Заголовок показує викладачів/групи на яких це впливає."
 
-#: aleksis/apps/chronos/models.py:1276 aleksis/apps/chronos/models.py:1269
+#: aleksis/apps/chronos/models.py:1206
 msgid "Revision which triggered the last update"
 msgstr "Ревізія, яка запустила останнє оновлення"
 
-#: aleksis/apps/chronos/models.py:1337 aleksis/apps/chronos/models.py:1330
+#: aleksis/apps/chronos/models.py:1278
 msgid "Automatic plan"
 msgstr "Автоматичний план"
 
-#: aleksis/apps/chronos/models.py:1338 aleksis/apps/chronos/models.py:1331
+#: aleksis/apps/chronos/models.py:1279
 msgid "Automatic plans"
 msgstr "Автоматичні плани"
 
-#: aleksis/apps/chronos/models.py:1352 aleksis/apps/chronos/models.py:1345
+#: aleksis/apps/chronos/models.py:1293
 msgid "Can view all room timetables"
 msgstr "Може переглядати розклади усіх кімнат"
 
-#: aleksis/apps/chronos/models.py:1353 aleksis/apps/chronos/models.py:1346
+#: aleksis/apps/chronos/models.py:1294
 msgid "Can view all group timetables"
 msgstr "Може переглядати розклади усіх груп"
 
-#: aleksis/apps/chronos/models.py:1354 aleksis/apps/chronos/models.py:1347
+#: aleksis/apps/chronos/models.py:1295
 msgid "Can view all person timetables"
 msgstr "Може переглядати розклади усіх осіб"
 
-#: aleksis/apps/chronos/models.py:1355 aleksis/apps/chronos/models.py:1348
+#: aleksis/apps/chronos/models.py:1296
 msgid "Can view timetable overview"
 msgstr "Може переглядати загальний розклад"
 
-#: aleksis/apps/chronos/models.py:1356 aleksis/apps/chronos/models.py:1349
+#: aleksis/apps/chronos/models.py:1297
 msgid "Can view all lessons per day"
 msgstr "Може переглядати усі уроки окремого дня"
 
-#: aleksis/apps/chronos/preferences.py:18
-msgid "Use parent groups in timetable views"
-msgstr "Використовувати батьківські групи в огляді розкладу"
+#: aleksis/apps/chronos/models.py:1298
+#, fuzzy
+#| msgid "Can view all lessons per day"
+msgid "Can view all supervisions per day"
+msgstr "Може переглядати усі уроки окремого дня"
 
-#: aleksis/apps/chronos/preferences.py:20
-msgid ""
-"If an lesson or substitution has only one group and this group has parent "
-"groups, show the parent groups instead of the original group."
+#: aleksis/apps/chronos/models.py:1313
+#, fuzzy
+#| msgid "Start time"
+msgid "Start slot number"
+msgstr "Час початку"
+
+#: aleksis/apps/chronos/models.py:1316
+#, fuzzy
+#| msgid "End time"
+msgid "End slot number"
+msgstr "Час закінчення"
+
+#: aleksis/apps/chronos/models.py:1320
+msgid "Course"
 msgstr ""
-"Якщо урок або заміна має лише одну групу і ця група має батьківські групи, "
-"відображати ці батьківські групи замість дійсної групи."
+
+#: aleksis/apps/chronos/models.py:1353
+#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
+msgid "Cancelled"
+msgstr "Скасовано"
+
+#: aleksis/apps/chronos/models.py:1401 aleksis/apps/chronos/models.py:1413
+#: aleksis/apps/chronos/models.py:1425
+msgid "{} (instead of {})"
+msgstr ""
+
+#: aleksis/apps/chronos/models.py:1614
+#, fuzzy
+#| msgid "Lesson"
+msgid "Lesson Event"
+msgstr "Урок"
+
+#: aleksis/apps/chronos/models.py:1615
+#, fuzzy
+#| msgid "Lessons"
+msgid "Lesson Events"
+msgstr "Уроки"
+
+#: aleksis/apps/chronos/models.py:1630
+#, fuzzy
+#| msgid "Supervision"
+msgid "Supervision: {}"
+msgstr "Контроль"
+
+#: aleksis/apps/chronos/preferences.py:21
+msgid "Timetables"
+msgstr "Розклади"
+
+#: aleksis/apps/chronos/preferences.py:29
+msgid "Use parent groups in timetable views"
+msgstr "Використовувати батьківські групи в огляді розкладу"
 
 #: aleksis/apps/chronos/preferences.py:31
+#, fuzzy
+#| msgid "If an lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+msgid "If a lesson or substitution has only one group and this group has parent groups, show the parent groups instead of the original group."
+msgstr "Якщо урок або заміна має лише одну групу і ця група має батьківські групи, відображати ці батьківські групи замість дійсної групи."
+
+#: aleksis/apps/chronos/preferences.py:42
 msgid "Shorten groups in timetable views"
 msgstr "Скорочувати групи в огляді розкладу"
 
-#: aleksis/apps/chronos/preferences.py:32
+#: aleksis/apps/chronos/preferences.py:43
 msgid "If there are more groups than the set limit, they will be collapsed."
 msgstr "Якщо груп більше за встановлений ліміт, вони будуть згруповані."
 
-#: aleksis/apps/chronos/preferences.py:40
+#: aleksis/apps/chronos/preferences.py:51
 msgid "Limit of groups for shortening of groups"
 msgstr "Ліміт груп для скорочення груп"
 
-#: aleksis/apps/chronos/preferences.py:42
-msgid ""
-"If an user activates shortening of groups,they will be collapsed if there "
-"are more groups than this limit."
+#: aleksis/apps/chronos/preferences.py:53
+#, fuzzy
+#| msgid "If an user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+msgid "If a user activates shortening of groups,they will be collapsed if there are more groups than this limit."
+msgstr "Якщо користувач активує скорочення груп, і кількість груп буде більше за ліміт, вони згруповуватимуться."
+
+#: aleksis/apps/chronos/preferences.py:65
+#, fuzzy
+#| msgid "Lesson substitutions"
+msgid "Relevant days for substitution plans"
+msgstr "Заміни уроків"
+
+#: aleksis/apps/chronos/preferences.py:82
+msgid "Time when substitution plans switch to the next day"
 msgstr ""
-"Якщо користувач активує скорочення груп, і кількість груп буде більше за "
-"ліміт, вони згруповуватимуться."
 
-#: aleksis/apps/chronos/preferences.py:52
+#: aleksis/apps/chronos/preferences.py:91
 msgid "Number of days shown on substitutions print view"
 msgstr "Кількість днів для відображення у друкованому вигляді замін"
 
-#: aleksis/apps/chronos/preferences.py:60
+#: aleksis/apps/chronos/preferences.py:99
 msgid "Show header box in substitution views"
 msgstr "Відображати заголовок в огляді замін"
 
-#: aleksis/apps/chronos/preferences.py:70
-msgid ""
-"Show parent groups in header box in substitution views instead of original "
-"groups"
-msgstr ""
-"У заголовку в огляді замін відображати батьківські групи замість дійсних груп"
+#: aleksis/apps/chronos/preferences.py:109
+msgid "Show parent groups in header box in substitution views instead of original groups"
+msgstr "У заголовку в огляді замін відображати батьківські групи замість дійсних груп"
 
-#: aleksis/apps/chronos/preferences.py:79
-msgid ""
-"How many days in advance users should be notified about timetable changes?"
-msgstr ""
-"За скільки днів потрібно інформувати користувачів щодо змін у розкладі?"
+#: aleksis/apps/chronos/preferences.py:118
+msgid "How many days in advance users should be notified about timetable changes?"
+msgstr "За скільки днів потрібно інформувати користувачів щодо змін у розкладі?"
 
-#: aleksis/apps/chronos/preferences.py:87
+#: aleksis/apps/chronos/preferences.py:126
 msgid "Time for sending notifications about timetable changes"
 msgstr "Час для надсилання сповіщень щодо змін у розкладі"
 
-#: aleksis/apps/chronos/preferences.py:90
-msgid ""
-"This is only used for scheduling notifications which doesn't affect the time "
-"period configured above. All other notifications affecting the next days are "
-"sent immediately."
-msgstr ""
-"Це використовується лише для планування сповіщень, які не впливають на "
-"навчальний час, встановлений вище. Усі інші сповіщення, які впливають на "
-"найближчі дні, надсилаються негайно."
+#: aleksis/apps/chronos/preferences.py:129
+msgid "This is only used for scheduling notifications which doesn't affect the time period configured above. All other notifications affecting the next days are sent immediately."
+msgstr "Це використовується лише для планування сповіщень, які не впливають на навчальний час, встановлений вище. Усі інші сповіщення, які впливають на найближчі дні, надсилаються негайно."
 
-#: aleksis/apps/chronos/preferences.py:101
-#: aleksis/apps/chronos/preferences.py:109
+#: aleksis/apps/chronos/preferences.py:140
+#: aleksis/apps/chronos/preferences.py:148
 msgid "Send notifications for current timetable changes"
 msgstr "Надіслати сповіщення щодо поточних змін у розкладі"
 
-#: aleksis/apps/chronos/tables.py:41
-msgid "Substitution"
-msgstr "Заміна"
-
-#: aleksis/apps/chronos/tables.py:43
-msgid "Manage substitution"
-msgstr "Керування замінами"
-
-#: aleksis/apps/chronos/templates/chronos/all.html:25
-msgid "No teachers timetables available."
-msgstr "Розклади викладачів недоступні."
-
-#: aleksis/apps/chronos/templates/chronos/all.html:39
-msgid "No group timetables available."
-msgstr "Розклади груп недоступні."
-
-#: aleksis/apps/chronos/templates/chronos/all.html:53
-msgid "No room timetables available."
-msgstr "Розклади кімнат недоступні."
-
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:11
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:6
-msgid "Edit substitution."
-msgstr "Редагувати заміну."
-
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:12
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:7
-msgid "Edit substitution"
-msgstr "Редагувати заміну"
+#: aleksis/apps/chronos/preferences.py:158
+#, fuzzy
+#| msgid "Shorten groups in timetable views"
+msgid "Group types to show in timetables"
+msgstr "Скорочувати групи в огляді розкладу"
 
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:25
-#: aleksis/apps/chronos/templates/chronos/edit_substitution.html:20
-msgid "Delete"
-msgstr "Видалити"
+#: aleksis/apps/chronos/preferences.py:159
+msgid "If you leave it empty, all groups will be shown."
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:19
-#: aleksis/apps/chronos/templates/chronos/timetable.html:50
-msgid "SMART PLAN"
-msgstr "SMART PLAN"
+#: aleksis/apps/chronos/preferences.py:169
+msgid "Lesson calendar feed color"
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/my_timetable.html:22
-msgid "Show week timetable for"
-msgstr "Відобразити тижневий розклад для"
+#: aleksis/apps/chronos/preferences.py:181
+#, fuzzy
+#| msgid "Supervision area"
+msgid "Supervision calendar feed color"
+msgstr "Зона контролю"
 
 #: aleksis/apps/chronos/templates/chronos/partials/headerbox.html:10
 msgid "Absent teachers"
@@ -605,105 +552,47 @@ msgstr "На яких викладачів впливає"
 msgid "Affected groups"
 msgstr "На які групи впливає"
 
-#: aleksis/apps/chronos/templates/chronos/partials/lesson.html:27
-msgid "Cancelled due to an event"
-msgstr "Скасовано через подію"
-
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:4
-msgid "Cancelled"
-msgstr "Скасовано"
+#: aleksis/apps/chronos/templates/chronos/partials/subs/period.html:12
+msgid "all day"
+msgstr ""
 
-#: aleksis/apps/chronos/templates/chronos/partials/subs/badge.html:6
-msgid "Cancelled for teachers"
-msgstr "Скасовано для викладачів"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
+msgid "Print: Substitutions"
+msgstr "Друк: Заміни"
 
-#: aleksis/apps/chronos/templates/chronos/partials/today.html:2
-msgid "Today"
-msgstr "Сьогодні"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:12
+msgid "Substitutions"
+msgstr "Заміни"
 
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:14
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:25
-#: aleksis/apps/chronos/templates/chronos/partials/week_select.html:36
-msgid "CW"
-msgstr "ТЖ"
+#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:27
+#, fuzzy
+#| msgid "Timetable"
+msgid "Time"
+msgstr "Розклад"
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:49
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:31
 msgid "Notes"
 msgstr "Нотатки"
 
-#: aleksis/apps/chronos/templates/chronos/substitutions.html:57
 #: aleksis/apps/chronos/templates/chronos/substitutions_print.html:41
 msgid "No substitutions available."
 msgstr "Заміни недоступні."
 
-#: aleksis/apps/chronos/templates/chronos/substitutions_print.html:11
-msgid "Print: Substitutions"
-msgstr "Друк: Заміни"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:11
-#: aleksis/apps/chronos/templates/chronos/timetable.html:24
-#: aleksis/apps/chronos/templates/chronos/timetable_print.html:11
-#: aleksis/apps/chronos/util/notifications.py:206
-msgid "Timetable"
-msgstr "Розклад"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:29
-msgid "Group teachers:"
-msgstr "Викладачі груп:"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:55
-msgid "Show regular timetable"
-msgstr "Відобразити звичайний розклад"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:63
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of this week"
-msgstr "Огляд класного журналу за цей тиждень"
-
-#: aleksis/apps/chronos/templates/chronos/timetable.html:76
-msgid "Show SMART PLAN"
-msgstr "Відобразити SMART PLAN"
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:8
-#, python-format
-msgid ""
-"\n"
-"        My timetable for %(day)s\n"
-"      "
-msgstr ""
-"\n"
-"        Мій розклад на %(day)s\n"
-"      "
-
-#: aleksis/apps/chronos/templates/chronos/widget.html:18
-msgid ""
-"\n"
-"          There is no timetable linked to your person.\n"
-"          "
+#: aleksis/apps/chronos/templates/chronos/supervision_event_description.txt:2
+msgid "Areas"
 msgstr ""
-"\n"
-"          До Вашої особи жодного журналу не прив'язано.\n"
-"          "
 
-#: aleksis/apps/chronos/templates/chronos/widget.html:27
-msgid "Go to smart plan"
-msgstr "Перейти до SMART PLAN"
-
-#: aleksis/apps/chronos/util/notifications.py:50
+#: aleksis/apps/chronos/util/notifications.py:48
 #, python-brace-format
-msgid ""
-"The {subject} lesson in the {period}. period on {day} has been cancelled."
+msgid "The {subject} lesson in the {period}. period on {day} has been cancelled."
 msgstr "Урок {subject} на {period} уроці у {day} скасований."
 
-#: aleksis/apps/chronos/util/notifications.py:57
+#: aleksis/apps/chronos/util/notifications.py:55
 #, python-brace-format
-msgid ""
-"The {subject} lesson in the {period}. period on {day} has some current "
-"changes."
+msgid "The {subject} lesson in the {period}. period on {day} has some current changes."
 msgstr "Урок {subject} на {period} уроці у {day} зараз дещо змінений."
 
-#: aleksis/apps/chronos/util/notifications.py:66
+#: aleksis/apps/chronos/util/notifications.py:64
 #, python-brace-format
 msgid "The teacher {old} is substituted by {new}."
 msgid_plural "The teachers {old} are substituted by {new}."
@@ -712,96 +601,189 @@ msgstr[1] "Викладачі {old} замінені викладачами {new
 msgstr[2] "Викладачі {old} замінені викладачами {new}."
 msgstr[3] "Викладачі {old} замінені викладачами {new}."
 
-#: aleksis/apps/chronos/util/notifications.py:78
+#: aleksis/apps/chronos/util/notifications.py:76
 #, python-brace-format
 msgid "The subject is changed to {subject}."
 msgstr "Предмет замінений на {subject}."
 
-#: aleksis/apps/chronos/util/notifications.py:84
+#: aleksis/apps/chronos/util/notifications.py:82
 #, python-brace-format
 msgid "The lesson is moved from {old} to {new}."
 msgstr "Урок перенесений з {old} до {new}."
 
-#: aleksis/apps/chronos/util/notifications.py:93
+#: aleksis/apps/chronos/util/notifications.py:91
 #, python-brace-format
 msgid "There is an additional comment: {comment}."
 msgstr "Маємо додатковий коментар: {comment}."
 
-#: aleksis/apps/chronos/util/notifications.py:101
+#: aleksis/apps/chronos/util/notifications.py:99
 #, python-brace-format
-msgid ""
-"There is an event that starts on {date_start}, {period_from}. period and "
-"ends on {date_end}, {period_to}. period:"
-msgstr ""
-"Маємо подію, яка розпочинається {date_start}, на {period_from}. уроці та "
-"закінчується {date_end}, на {period_to}. уроці:"
+msgid "There is an event that starts on {date_start}, {period_from}. period and ends on {date_end}, {period_to}. period:"
+msgstr "Маємо подію, яка розпочинається {date_start}, на {period_from}. уроці та закінчується {date_end}, на {period_to}. уроці:"
 
-#: aleksis/apps/chronos/util/notifications.py:114
+#: aleksis/apps/chronos/util/notifications.py:112
 #, python-brace-format
-msgid ""
-"There is an event on {date} from the {period_from}. period to the "
-"{period_to}. period:"
-msgstr ""
-"Маємо подію на {date} з {period_from}. уроку до кінця {period_to}. уроку:"
+msgid "There is an event on {date} from the {period_from}. period to the {period_to}. period:"
+msgstr "Маємо подію на {date} з {period_from}. уроку до кінця {period_to}. уроку:"
 
-#: aleksis/apps/chronos/util/notifications.py:125
-#: aleksis/apps/chronos/util/notifications.py:145
+#: aleksis/apps/chronos/util/notifications.py:123
+#: aleksis/apps/chronos/util/notifications.py:143
 #, python-brace-format
 msgid "Groups: {groups}"
 msgstr "Групи: {groups}"
 
-#: aleksis/apps/chronos/util/notifications.py:127
-#: aleksis/apps/chronos/util/notifications.py:149
+#: aleksis/apps/chronos/util/notifications.py:125
+#: aleksis/apps/chronos/util/notifications.py:147
 #, python-brace-format
 msgid "Teachers: {teachers}"
 msgstr "Викладачі: {teachers}"
 
-#: aleksis/apps/chronos/util/notifications.py:130
+#: aleksis/apps/chronos/util/notifications.py:128
 #, python-brace-format
 msgid "Rooms: {rooms}"
 msgstr "Кімнати: {rooms}"
 
-#: aleksis/apps/chronos/util/notifications.py:137
+#: aleksis/apps/chronos/util/notifications.py:135
 #, python-brace-format
 msgid "There is an extra lesson on {date} in the {period}. period:"
 msgstr "Маємо додатковий урок {date} на {period}. уроці:"
 
-#: aleksis/apps/chronos/util/notifications.py:147
+#: aleksis/apps/chronos/util/notifications.py:145
 #, python-brace-format
 msgid "Subject: {subject}"
 msgstr "Предмет: {subject}"
 
-#: aleksis/apps/chronos/util/notifications.py:151
+#: aleksis/apps/chronos/util/notifications.py:149
 #, python-brace-format
 msgid "Room: {room}"
 msgstr "Кімната: {room}"
 
-#: aleksis/apps/chronos/util/notifications.py:153
+#: aleksis/apps/chronos/util/notifications.py:151
 #, python-brace-format
 msgid "Comment: {comment}."
 msgstr "Коментар: {comment}."
 
-#: aleksis/apps/chronos/util/notifications.py:156
+#: aleksis/apps/chronos/util/notifications.py:154
 #, python-brace-format
-msgid ""
-"The supervision of {old} on {date} between the {period_from}. period and the "
-"{period_to}. period in the area {area} is substituted by {new}."
-msgstr ""
-"Контроль {old}, {date} між {period_from}. та {period_to}. уроками у зоні "
-"{area} замінений на {new}."
+msgid "The supervision of {old} on {date} between the {period_from}. period and the {period_to}. period in the area {area} is substituted by {new}."
+msgstr "Контроль {old}, {date} між {period_from}. та {period_to}. уроками у зоні {area} замінений на {new}."
 
-#: aleksis/apps/chronos/util/notifications.py:207
+#: aleksis/apps/chronos/util/notifications.py:204
+msgid "Timetable"
+msgstr "Розклад"
+
+#: aleksis/apps/chronos/util/notifications.py:205
 msgid "There are current changes to your timetable."
 msgstr "У Вашому розкладі є зміни."
 
-#: aleksis/apps/chronos/views.py:270
-msgid "The substitution has been saved."
-msgstr "Заміна збережена."
+#~ msgid "Options for timetables"
+#~ msgstr "Опції для розкладів"
+
+#~ msgid "Optional data for timetables"
+#~ msgstr "Додаткові дані для розкладів"
+
+#~ msgid "My timetable"
+#~ msgstr "Мій розклад"
+
+#~ msgid "All timetables"
+#~ msgstr "Усі розклади"
+
+#~ msgid "Daily lessons"
+#~ msgstr "Щоденні уроки"
+
+#~ msgid "Show announcement in timetable views?"
+#~ msgstr "Відображати оголошення з переглядом розкладу?"
+
+#~ msgid "Can view room timetable"
+#~ msgstr "Може переглядати розклад кімнати"
+
+#~ msgid "Timetable widget"
+#~ msgstr "Віджет розкладу"
 
-#: aleksis/apps/chronos/views.py:291
-msgid "The substitution has been deleted."
-msgstr "Заміна видалена."
+#~ msgid "Timetable widgets"
+#~ msgstr "Віджети розкладу"
 
-#: aleksis/apps/chronos/templates/chronos/timetable.html:84
-msgid "View class register of the current week"
-msgstr "Огляд класного журналу поточного тижня"
+#~ msgid "Substitution"
+#~ msgstr "Заміна"
+
+#~ msgid "Manage substitution"
+#~ msgstr "Керування замінами"
+
+#~ msgid "No teachers timetables available."
+#~ msgstr "Розклади викладачів недоступні."
+
+#~ msgid "No group timetables available."
+#~ msgstr "Розклади груп недоступні."
+
+#~ msgid "No room timetables available."
+#~ msgstr "Розклади кімнат недоступні."
+
+#~ msgid "Edit substitution."
+#~ msgstr "Редагувати заміну."
+
+#~ msgid "Edit substitution"
+#~ msgstr "Редагувати заміну"
+
+#~ msgid "Delete"
+#~ msgstr "Видалити"
+
+#~ msgid "SMART PLAN"
+#~ msgstr "SMART PLAN"
+
+#~ msgid "Show week timetable for"
+#~ msgstr "Відобразити тижневий розклад для"
+
+#~ msgid "Cancelled due to an event"
+#~ msgstr "Скасовано через подію"
+
+#~ msgid "Cancelled for teachers"
+#~ msgstr "Скасовано для викладачів"
+
+#~ msgid "Today"
+#~ msgstr "Сьогодні"
+
+#~ msgid "CW"
+#~ msgstr "ТЖ"
+
+#~ msgid "Group teachers:"
+#~ msgstr "Викладачі груп:"
+
+#~ msgid "Show regular timetable"
+#~ msgstr "Відобразити звичайний розклад"
+
+#~ msgid "View class register of this week"
+#~ msgstr "Огляд класного журналу за цей тиждень"
+
+#~ msgid "Show SMART PLAN"
+#~ msgstr "Відобразити SMART PLAN"
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ "        My timetable for %(day)s\n"
+#~ "      "
+#~ msgstr ""
+#~ "\n"
+#~ "        Мій розклад на %(day)s\n"
+#~ "      "
+
+#~ msgid ""
+#~ "\n"
+#~ "          There is no timetable linked to your person.\n"
+#~ "          "
+#~ msgstr ""
+#~ "\n"
+#~ "          До Вашої особи жодного журналу не прив'язано.\n"
+#~ "          "
+
+#~ msgid "Go to smart plan"
+#~ msgstr "Перейти до SMART PLAN"
+
+#~ msgid "The substitution has been saved."
+#~ msgstr "Заміна збережена."
+
+#~ msgid "The substitution has been deleted."
+#~ msgstr "Заміна видалена."
+
+#~ msgid "View class register of the current week"
+#~ msgstr "Огляд класного журналу поточного тижня"