diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index d58e466b99296765d1b74fb19eb350e5e67b15ea..906f44538761575dc686cb0569f9b2fb61145e94 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,14 @@ All notable changes to this project will be documented in this file.
 The format is based on `Keep a Changelog`_,
 and this project adheres to `Semantic Versioning`_.
 
+`4.0.0.dev1`_ - 2024-06-13
+--------------------------
+
+Added
+~~~~~
+
+* Support for entering absences for students in the new coursebook interface.
+
 `4.0.0.dev0`_ - 2024-04-23
 --------------------------
 
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue
index a5136eb9f0c2535009fd78a02e7481aebacd12b4..52866931e7b2d31bbee85bc754a4a668066e8b73 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue
@@ -1,12 +1,12 @@
 <template>
   <div>
-    <v-list-item v-for="i in numberOfDays" :key="'i-' + i">
+    <v-list-item v-for="i in numberOfDays" :key="'i-' + i" class="px-0">
       <v-list-item-content>
         <v-list-item-title>
           <v-skeleton-loader type="heading" />
         </v-list-item-title>
         <v-list max-width="100%">
-          <v-list-item v-for="j in numberOfDocs" :key="'j-' + j">
+          <v-list-item v-for="j in numberOfDocs" :key="'j-' + j" class="px-1">
             <DocumentationLoader />
           </v-list-item>
         </v-list>
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsTrigger.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsTrigger.vue
index 739ff4217df2d82d1765381aae3543277f8f631a..572036c67955b3365bb46eb69f6ab41ee86cf074 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsTrigger.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsTrigger.vue
@@ -41,8 +41,6 @@ export default {
         },
         (storedDocumentations, incoming) => {
           // ID may be different now
-          console.log("incoming:", incoming);
-
           return storedDocumentations.map((doc) =>
             doc.id === this.documentation.id
               ? Object.assign(doc, incoming, { oldId: doc.id })
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/participationStatus.graphql b/aleksis/apps/alsijil/frontend/components/coursebook/absences/participationStatus.graphql
index 2f15ef02dbc47faa9d0787b21b13f3ba9d1ad3a6..81a3a5fb1eb3a99bef25eb9938cd254b9068981b 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/participationStatus.graphql
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/participationStatus.graphql
@@ -26,6 +26,7 @@ mutation touchDocumentation($documentationId: ID!) {
         id
         person {
           id
+          firstName
           fullName
         }
         absenceReason {
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql b/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql
index 8e92f9b481db34407dd04fb97628867fbb741da7..51194f801b641578a48a7aaea416a5bd783f3e0a 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql
@@ -72,6 +72,7 @@ query documentationsForCoursebook(
       id
       person {
         id
+        firstName
         fullName
       }
       absenceReason {
@@ -104,6 +105,21 @@ mutation createOrUpdateDocumentations($input: [DocumentationInputType]!) {
       homework
       groupNote
       oldId
+      participations {
+        id
+        person {
+          id
+          firstName
+          fullName
+        }
+        absenceReason {
+          id
+          name
+          shortName
+          colour
+        }
+        isOptimistic
+      }
     }
   }
 }
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue
index 72781ec627a7a74e1931f3c42ef176be5706fa18..bc0da4a742917e0639a0c1983186fad29764babb 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue
@@ -10,11 +10,29 @@ import AbsenceReasonChip from "aleksis.apps.kolego/components/AbsenceReasonChip.
       {{ $t("alsijil.coursebook.present_number", { present, total }) }}
     </v-chip>
     <absence-reason-chip
-      v-for="participation in absences"
-      :absence-reason="participation.absenceReason"
+      v-for="[reasonId, participations] in Object.entries(absences)"
+      :key="'reason-' + reasonId"
+      :absence-reason="participations[0].absenceReason"
       dense
     >
-      <template #prepend> {{ participation.person.fullName }}: </template>
+      <template #append>
+        <span
+          >:
+          <span>
+            {{
+              participations
+                .slice(0, 5)
+                .map((participation) => participation.person.firstName)
+                .join(", ")
+            }}
+          </span>
+          <span v-if="participations.length > 5">
+            <!-- eslint-disable @intlify/vue-i18n/no-raw-text -->
+            +{{ participations.length - 5 }}
+            <!-- eslint-enable @intlify/vue-i18n/no-raw-text -->
+          </span>
+        </span>
+      </template>
     </absence-reason-chip>
 
     <manage-students-trigger v-bind="documentationPartProps" />
@@ -40,8 +58,11 @@ export default {
     },
     absences() {
       // Get all course attendants who have an absence reason
-      return this.documentation.participations.filter(
-        (p) => p.absenceReason !== null,
+      return Object.groupBy(
+        this.documentation.participations.filter(
+          (p) => p.absenceReason !== null,
+        ),
+        ({ absenceReason }) => absenceReason.id,
       );
     },
   },
diff --git a/aleksis/apps/alsijil/frontend/messages/ru.json b/aleksis/apps/alsijil/frontend/messages/ru.json
index 80cd02ad8e25ac807b4c294140f076529dafd77e..3f20ae686429082b97521d0f36ba0bdca9e6367a 100644
--- a/aleksis/apps/alsijil/frontend/messages/ru.json
+++ b/aleksis/apps/alsijil/frontend/messages/ru.json
@@ -1,4 +1,7 @@
 {
+  "actions": {
+    "back_to_overview": "Назад к обзору"
+  },
   "alsijil": {
     "absence": {
       "menu_title": "Регистрация отсутствия"
diff --git a/aleksis/apps/alsijil/frontend/messages/uk.json b/aleksis/apps/alsijil/frontend/messages/uk.json
index 1c516bb201cf66daecc93129aa34de51f2860638..860e21a111aa1d70dd74c3e787bb1763fa977808 100644
--- a/aleksis/apps/alsijil/frontend/messages/uk.json
+++ b/aleksis/apps/alsijil/frontend/messages/uk.json
@@ -1,4 +1,7 @@
 {
+  "actions": {
+    "back_to_overview": "Назад до огляду"
+  },
   "alsijil": {
     "absence": {
       "menu_title": "Реєстрація відсутності"
diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
index 461e0f3cec97715fef05f37eae2d09b466b6e984..48140858293ae7990bfa39c1668d1807e11f51e4 100644
--- a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-23 21:13+0200\n"
+"POT-Creation-Date: 2024-06-13 11:19+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"
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:471 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:609 aleksis/apps/alsijil/models.py:658
+#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:730
+#: aleksis/apps/alsijil/models.py:891
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:734
+#: aleksis/apps/alsijil/models.py:895
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
@@ -178,8 +178,8 @@ msgstr ""
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/models.py:623
-#: aleksis/apps/alsijil/tables.py:117 aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -198,8 +198,8 @@ msgstr ""
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:79
-#: aleksis/apps/alsijil/models.py:255
+#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:84
+#: aleksis/apps/alsijil/models.py:260
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
@@ -272,38 +272,38 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:58 aleksis/apps/alsijil/models.py:432
+#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/models.py:437
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:59 aleksis/apps/alsijil/models.py:433
-#: aleksis/apps/alsijil/models.py:694
+#: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:855
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:65
+#: aleksis/apps/alsijil/models.py:70
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:80
+#: aleksis/apps/alsijil/models.py:85
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:235 aleksis/apps/alsijil/models.py:334
+#: aleksis/apps/alsijil/models.py:240 aleksis/apps/alsijil/models.py:339
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:260 aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
 #: aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
@@ -314,18 +314,18 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:294
+#: aleksis/apps/alsijil/models.py:299
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:295
+#: aleksis/apps/alsijil/models.py:300
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:370
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:21
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:259
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:337
@@ -334,7 +334,7 @@ msgstr ""
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:347 aleksis/apps/alsijil/models.py:483
+#: aleksis/apps/alsijil/models.py:352 aleksis/apps/alsijil/models.py:490
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:129
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
@@ -343,7 +343,7 @@ msgstr ""
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:348
+#: aleksis/apps/alsijil/models.py:353
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:271
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
@@ -351,157 +351,161 @@ msgstr ""
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:398
+#: aleksis/apps/alsijil/models.py:403
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:16
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:399
+#: aleksis/apps/alsijil/models.py:404
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:77
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:440
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:436
+#: aleksis/apps/alsijil/models.py:441
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:443
 msgid "Show in coursebook"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:449
+#: aleksis/apps/alsijil/models.py:454
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:474
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:479 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:482
+#: aleksis/apps/alsijil/models.py:489
 msgid "Lesson Topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:619
-#: aleksis/apps/alsijil/models.py:665
+#: aleksis/apps/alsijil/models.py:495
+msgid "Participation touched at"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
+#: aleksis/apps/alsijil/models.py:826
 msgid "Documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:513
+#: aleksis/apps/alsijil/models.py:525
 msgid "Documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:612
+#: aleksis/apps/alsijil/models.py:765
 msgid "Groups of Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:625
+#: aleksis/apps/alsijil/models.py:778
 msgid "Absence Reason"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:634
+#: aleksis/apps/alsijil/models.py:790
 msgid "Base Absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:641 aleksis/apps/alsijil/models.py:642
+#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:670
+#: aleksis/apps/alsijil/models.py:831
 msgid "Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:672
+#: aleksis/apps/alsijil/models.py:833
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:679
+#: aleksis/apps/alsijil/models.py:840
 msgid "Personal Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:680
+#: aleksis/apps/alsijil/models.py:841
 msgid "Personal Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:695
+#: aleksis/apps/alsijil/models.py:856
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:696
+#: aleksis/apps/alsijil/models.py:857
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:702 aleksis/apps/alsijil/models.py:717
+#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:703
+#: aleksis/apps/alsijil/models.py:864
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:704
+#: aleksis/apps/alsijil/models.py:865
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:723
+#: aleksis/apps/alsijil/models.py:884
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:728 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:735
+#: aleksis/apps/alsijil/models.py:896
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:750
+#: aleksis/apps/alsijil/models.py:911
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:751
+#: aleksis/apps/alsijil/models.py:912
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:758
+#: aleksis/apps/alsijil/models.py:919
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:759
+#: aleksis/apps/alsijil/models.py:920
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:760
+#: aleksis/apps/alsijil/models.py:921
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:761
+#: aleksis/apps/alsijil/models.py:922
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:762
+#: aleksis/apps/alsijil/models.py:923
 msgid "Can list all personal note filters"
 msgstr ""
 
diff --git a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
index 8f5aa6cf99694bfd5f1220819de95475f837bfca..14c910ed3a24b89bc09e4cc6438137dfbcc92b5d 100644
--- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-23 21:13+0200\n"
-"PO-Revision-Date: 2024-04-23 19:39+0000\n"
+"POT-Creation-Date: 2024-06-13 11:19+0200\n"
+"PO-Revision-Date: 2024-06-13 09:24+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/de/>\n"
 "Language: de_DE\n"
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr "Bevor"
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:471 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr "Es kann nur entweder eine Gruppe oder eine Lehrkraft ausgewählt werden."
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:609 aleksis/apps/alsijil/models.py:658
+#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Person"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:730
+#: aleksis/apps/alsijil/models.py:891
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Startdatum"
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:734
+#: aleksis/apps/alsijil/models.py:895
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Enddatum"
@@ -178,8 +178,8 @@ msgstr "Startstunde"
 msgid "End period"
 msgstr "Endstunde"
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/models.py:623
-#: aleksis/apps/alsijil/tables.py:117 aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -198,8 +198,8 @@ msgstr "Abwesend"
 msgid "Excused"
 msgstr "Entschuldigt"
 
-#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:79
-#: aleksis/apps/alsijil/models.py:255
+#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:84
+#: aleksis/apps/alsijil/models.py:260
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
@@ -272,38 +272,38 @@ msgstr "Kann eine Gruppenrolle für diese Gruppe zuweisen"
 msgid "Can register an absence for a person"
 msgstr "Kann eine Absenz für eine Person registrieren"
 
-#: aleksis/apps/alsijil/models.py:58 aleksis/apps/alsijil/models.py:432
+#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/models.py:437
 msgid "Short name"
 msgstr "Kurzname"
 
-#: aleksis/apps/alsijil/models.py:59 aleksis/apps/alsijil/models.py:433
-#: aleksis/apps/alsijil/models.py:694
+#: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:855
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr "Name"
 
-#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr "Als abwesend zählen"
 
-#: aleksis/apps/alsijil/models.py:65
+#: aleksis/apps/alsijil/models.py:70
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr "Wenn ausgewählt wird diese Entschuldigungsart als eine verpasste Stunde gezählt. Wenn nicht ausgewählt wird es nicht im Abwesenheitsbericht auftauchen."
 
-#: aleksis/apps/alsijil/models.py:80
+#: aleksis/apps/alsijil/models.py:85
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr "Entschuldigungsarten"
 
-#: aleksis/apps/alsijil/models.py:235 aleksis/apps/alsijil/models.py:334
+#: aleksis/apps/alsijil/models.py:240 aleksis/apps/alsijil/models.py:339
 msgid "Year"
 msgstr "Jahr"
 
-#: aleksis/apps/alsijil/models.py:260 aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
 #: aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
@@ -314,18 +314,18 @@ msgstr "Jahr"
 msgid "Extra marks"
 msgstr "Zusätzliche Markierungen"
 
-#: aleksis/apps/alsijil/models.py:294
+#: aleksis/apps/alsijil/models.py:299
 msgid "Personal note"
 msgstr "Persönliche Notiz"
 
-#: aleksis/apps/alsijil/models.py:295
+#: aleksis/apps/alsijil/models.py:300
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:370
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:21
 msgid "Personal notes"
 msgstr "Persönliche Notizen"
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:259
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:337
@@ -334,7 +334,7 @@ msgstr "Persönliche Notizen"
 msgid "Lesson topic"
 msgstr "Stundenthema"
 
-#: aleksis/apps/alsijil/models.py:347 aleksis/apps/alsijil/models.py:483
+#: aleksis/apps/alsijil/models.py:352 aleksis/apps/alsijil/models.py:490
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:129
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
@@ -343,7 +343,7 @@ msgstr "Stundenthema"
 msgid "Homework"
 msgstr "Hausaufgaben"
 
-#: aleksis/apps/alsijil/models.py:348
+#: aleksis/apps/alsijil/models.py:353
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:271
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
@@ -351,157 +351,161 @@ msgstr "Hausaufgaben"
 msgid "Group note"
 msgstr "Gruppennotiz"
 
-#: aleksis/apps/alsijil/models.py:398
+#: aleksis/apps/alsijil/models.py:403
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:16
 msgid "Lesson documentation"
 msgstr "Stunden-Dokumentation"
 
-#: aleksis/apps/alsijil/models.py:399
+#: aleksis/apps/alsijil/models.py:404
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:77
 msgid "Lesson documentations"
 msgstr "Stunden-Dokumentationen"
 
-#: aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:440
 msgid "Foreground colour"
 msgstr "Vordergrundfarbe"
 
-#: aleksis/apps/alsijil/models.py:436
+#: aleksis/apps/alsijil/models.py:441
 msgid "Background colour"
 msgstr "Hintergrundfarbe"
 
-#: aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:443
 msgid "Show in coursebook"
 msgstr "In Kursbuch anzeigen"
 
-#: aleksis/apps/alsijil/models.py:449
+#: aleksis/apps/alsijil/models.py:454
 msgid "Extra mark"
 msgstr "Zusätzliche Markierung"
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:474
 msgid "Course"
 msgstr "Kurs"
 
-#: aleksis/apps/alsijil/models.py:479 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
 msgid "Teachers"
 msgstr "Lehrkräfte"
 
-#: aleksis/apps/alsijil/models.py:482
+#: aleksis/apps/alsijil/models.py:489
 msgid "Lesson Topic"
 msgstr "Stundenthema"
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group Note"
 msgstr "Gruppennotiz"
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:619
-#: aleksis/apps/alsijil/models.py:665
+#: aleksis/apps/alsijil/models.py:495
+msgid "Participation touched at"
+msgstr "Teilnahmestatus angelegt am"
+
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
+#: aleksis/apps/alsijil/models.py:826
 msgid "Documentation"
 msgstr "Dokumentation"
 
-#: aleksis/apps/alsijil/models.py:513
+#: aleksis/apps/alsijil/models.py:525
 msgid "Documentations"
 msgstr "Dokumentationen"
 
-#: aleksis/apps/alsijil/models.py:612
+#: aleksis/apps/alsijil/models.py:765
 msgid "Groups of Person"
 msgstr "Gruppen der Person"
 
-#: aleksis/apps/alsijil/models.py:625
+#: aleksis/apps/alsijil/models.py:778
 msgid "Absence Reason"
 msgstr "Abwesenheitsgrund"
 
-#: aleksis/apps/alsijil/models.py:634
+#: aleksis/apps/alsijil/models.py:790
 msgid "Base Absence"
 msgstr "Basis-Abwesenheit"
 
-#: aleksis/apps/alsijil/models.py:641 aleksis/apps/alsijil/models.py:642
+#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
 msgid "Participation Status"
 msgstr "Teilnahmestatus"
 
-#: aleksis/apps/alsijil/models.py:670
+#: aleksis/apps/alsijil/models.py:831
 msgid "Note"
 msgstr "Notiz"
 
-#: aleksis/apps/alsijil/models.py:672
+#: aleksis/apps/alsijil/models.py:833
 msgid "Extra Mark"
 msgstr "Zusätzliche Markierung"
 
-#: aleksis/apps/alsijil/models.py:679
+#: aleksis/apps/alsijil/models.py:840
 msgid "Personal Note"
 msgstr "Persönliche Notiz"
 
-#: aleksis/apps/alsijil/models.py:680
+#: aleksis/apps/alsijil/models.py:841
 msgid "Personal Notes"
 msgstr "Persönliche Notizen"
 
-#: aleksis/apps/alsijil/models.py:695
+#: aleksis/apps/alsijil/models.py:856
 msgid "Icon"
 msgstr "Symbol"
 
-#: aleksis/apps/alsijil/models.py:696
+#: aleksis/apps/alsijil/models.py:857
 msgid "Colour"
 msgstr "Farbe"
 
-#: aleksis/apps/alsijil/models.py:702 aleksis/apps/alsijil/models.py:717
+#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Gruppenrolle"
 
-#: aleksis/apps/alsijil/models.py:703
+#: aleksis/apps/alsijil/models.py:864
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr "Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:704
+#: aleksis/apps/alsijil/models.py:865
 msgid "Can assign group role"
 msgstr "Kann Gruppenrolle zuweisen"
 
-#: aleksis/apps/alsijil/models.py:723
+#: aleksis/apps/alsijil/models.py:884
 msgid "Assigned person"
 msgstr "Zugewiesene Person"
 
-#: aleksis/apps/alsijil/models.py:728 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr "Gruppen"
 
-#: aleksis/apps/alsijil/models.py:735
+#: aleksis/apps/alsijil/models.py:896
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Kann frei gelassen werden, wenn das Enddatum noch nicht feststeht"
 
-#: aleksis/apps/alsijil/models.py:750
+#: aleksis/apps/alsijil/models.py:911
 msgid "Group role assignment"
 msgstr "Zuweisung von Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:751
+#: aleksis/apps/alsijil/models.py:912
 msgid "Group role assignments"
 msgstr "Zuweisungen von Gruppenrollen"
 
-#: aleksis/apps/alsijil/models.py:758
+#: aleksis/apps/alsijil/models.py:919
 msgid "Can view lesson overview"
 msgstr "Kann die Stundenübersicht sehen"
 
-#: aleksis/apps/alsijil/models.py:759
+#: aleksis/apps/alsijil/models.py:920
 msgid "Can view week overview"
 msgstr "Kann die Wochenübersicht sehen"
 
-#: aleksis/apps/alsijil/models.py:760
+#: aleksis/apps/alsijil/models.py:921
 msgid "Can view full register"
 msgstr "Kann komplettes Klassenbuch sehen"
 
-#: aleksis/apps/alsijil/models.py:761
+#: aleksis/apps/alsijil/models.py:922
 msgid "Can register absence"
 msgstr "Kann eine Absenz registrieren"
 
-#: aleksis/apps/alsijil/models.py:762
+#: aleksis/apps/alsijil/models.py:923
 msgid "Can list all personal note filters"
 msgstr "Kann alle Filter für persönliche Notizen anzeigen"
 
diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
index e283f3797931d09214dbc06954730515b45eda92..72c9ebda41b069fb1e4116b336be8aeff1427caa 100644
--- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-23 21:13+0200\n"
+"POT-Creation-Date: 2024-06-13 11:19+0200\n"
 "PO-Revision-Date: 2021-06-16 11:59+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/fr/>\n"
@@ -123,7 +123,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:471 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -168,20 +168,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:609 aleksis/apps/alsijil/models.py:658
+#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Personne"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:730
+#: aleksis/apps/alsijil/models.py:891
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Date de début"
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:734
+#: aleksis/apps/alsijil/models.py:895
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Date de fin"
@@ -198,8 +198,8 @@ msgstr "De la période"
 msgid "End period"
 msgstr "De la période"
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/models.py:623
-#: aleksis/apps/alsijil/tables.py:117 aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -218,8 +218,8 @@ msgstr "Absent(e)"
 msgid "Excused"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:79
-#: aleksis/apps/alsijil/models.py:255
+#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:84
+#: aleksis/apps/alsijil/models.py:260
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 #, fuzzy
@@ -306,29 +306,29 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr "Registre de la classe"
 
-#: aleksis/apps/alsijil/models.py:58 aleksis/apps/alsijil/models.py:432
+#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/models.py:437
 #, fuzzy
 #| msgid "First name"
 msgid "Short name"
 msgstr "Prénom"
 
-#: aleksis/apps/alsijil/models.py:59 aleksis/apps/alsijil/models.py:433
-#: aleksis/apps/alsijil/models.py:694
+#: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:855
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:65
+#: aleksis/apps/alsijil/models.py:70
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:80
+#: aleksis/apps/alsijil/models.py:85
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
@@ -337,11 +337,11 @@ msgstr ""
 msgid "Excuse types"
 msgstr "Excusé"
 
-#: aleksis/apps/alsijil/models.py:235 aleksis/apps/alsijil/models.py:334
+#: aleksis/apps/alsijil/models.py:240 aleksis/apps/alsijil/models.py:339
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:260 aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
 #: aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
@@ -352,20 +352,20 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:294
+#: aleksis/apps/alsijil/models.py:299
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal note"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:295
+#: aleksis/apps/alsijil/models.py:300
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:370
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:21
 msgid "Personal notes"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:259
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:337
@@ -374,7 +374,7 @@ msgstr "Notes personnelles"
 msgid "Lesson topic"
 msgstr "Sujet de cours"
 
-#: aleksis/apps/alsijil/models.py:347 aleksis/apps/alsijil/models.py:483
+#: aleksis/apps/alsijil/models.py:352 aleksis/apps/alsijil/models.py:490
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:129
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
@@ -383,7 +383,7 @@ msgstr "Sujet de cours"
 msgid "Homework"
 msgstr "Devoirs"
 
-#: aleksis/apps/alsijil/models.py:348
+#: aleksis/apps/alsijil/models.py:353
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:271
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
@@ -393,12 +393,12 @@ msgstr "Devoirs"
 msgid "Group note"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:398
+#: aleksis/apps/alsijil/models.py:403
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:16
 msgid "Lesson documentation"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:399
+#: aleksis/apps/alsijil/models.py:404
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:77
 #, fuzzy
@@ -406,118 +406,122 @@ msgstr "Documentation de cours"
 msgid "Lesson documentations"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:440
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:436
+#: aleksis/apps/alsijil/models.py:441
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:443
 msgid "Show in coursebook"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:449
+#: aleksis/apps/alsijil/models.py:454
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:474
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:479 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
 msgid "Teachers"
 msgstr "Profs"
 
-#: aleksis/apps/alsijil/models.py:482
+#: aleksis/apps/alsijil/models.py:489
 #, fuzzy
 #| msgid "Lesson topic"
 msgid "Lesson Topic"
 msgstr "Sujet de cours"
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:491
 #, fuzzy
 #| msgid "Group"
 msgid "Group Note"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:619
-#: aleksis/apps/alsijil/models.py:665
+#: aleksis/apps/alsijil/models.py:495
+msgid "Participation touched at"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
+#: aleksis/apps/alsijil/models.py:826
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Documentation"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:513
+#: aleksis/apps/alsijil/models.py:525
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Documentations"
 msgstr "Documentation de cours"
 
-#: aleksis/apps/alsijil/models.py:612
+#: aleksis/apps/alsijil/models.py:765
 #, fuzzy
 #| msgid "Group"
 msgid "Groups of Person"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:625
+#: aleksis/apps/alsijil/models.py:778
 #, fuzzy
 #| msgid "Absences"
 msgid "Absence Reason"
 msgstr "Absences"
 
-#: aleksis/apps/alsijil/models.py:634
+#: aleksis/apps/alsijil/models.py:790
 #, fuzzy
 #| msgid "Absences"
 msgid "Base Absence"
 msgstr "Absences"
 
-#: aleksis/apps/alsijil/models.py:641 aleksis/apps/alsijil/models.py:642
+#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:670
+#: aleksis/apps/alsijil/models.py:831
 #, fuzzy
 #| msgid "Notes"
 msgid "Note"
 msgstr "Notes"
 
-#: aleksis/apps/alsijil/models.py:672
+#: aleksis/apps/alsijil/models.py:833
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:679
+#: aleksis/apps/alsijil/models.py:840
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal Note"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:680
+#: aleksis/apps/alsijil/models.py:841
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal Notes"
 msgstr "Notes personnelles"
 
-#: aleksis/apps/alsijil/models.py:695
+#: aleksis/apps/alsijil/models.py:856
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:696
+#: aleksis/apps/alsijil/models.py:857
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:702 aleksis/apps/alsijil/models.py:717
+#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 #, fuzzy
 #| msgid "Group"
 msgid "Group role"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:703
+#: aleksis/apps/alsijil/models.py:864
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -526,19 +530,19 @@ msgstr "Groupe"
 msgid "Group roles"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:704
+#: aleksis/apps/alsijil/models.py:865
 #, fuzzy
 #| msgid "Persons in group"
 msgid "Can assign group role"
 msgstr "Personnes en groupe"
 
-#: aleksis/apps/alsijil/models.py:723
+#: aleksis/apps/alsijil/models.py:884
 #, fuzzy
 #| msgid "Absences"
 msgid "Assigned person"
 msgstr "Absences"
 
-#: aleksis/apps/alsijil/models.py:728 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
@@ -547,41 +551,41 @@ msgstr "Absences"
 msgid "Groups"
 msgstr "Groupe"
 
-#: aleksis/apps/alsijil/models.py:735
+#: aleksis/apps/alsijil/models.py:896
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:750
+#: aleksis/apps/alsijil/models.py:911
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:751
+#: aleksis/apps/alsijil/models.py:912
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:758
+#: aleksis/apps/alsijil/models.py:919
 #, fuzzy
 #| msgid "Personal overview"
 msgid "Can view lesson overview"
 msgstr "Vue d'ensemble personnelle"
 
-#: aleksis/apps/alsijil/models.py:759
+#: aleksis/apps/alsijil/models.py:920
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:760
+#: aleksis/apps/alsijil/models.py:921
 #, fuzzy
 #| msgid "Class register"
 msgid "Can view full register"
 msgstr "Registre de la classe"
 
-#: aleksis/apps/alsijil/models.py:761
+#: aleksis/apps/alsijil/models.py:922
 #, fuzzy
 #| msgid "Register absence"
 msgid "Can register absence"
 msgstr "Registre de Absence"
 
-#: aleksis/apps/alsijil/models.py:762
+#: aleksis/apps/alsijil/models.py:923
 #, fuzzy
 #| msgid "List of all personal note filters"
 msgid "Can list all personal note filters"
diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
index a3ca7ecd62424293afd0f457fe4b67c95cbeb5af..474943af086754291a287070770f0e915f2f5c6b 100644
--- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-23 21:13+0200\n"
+"POT-Creation-Date: 2024-06-13 11:19+0200\n"
 "PO-Revision-Date: 2020-07-26 14:08+0000\n"
 "Last-Translator: Julian <leuckerj@gmail.com>\n"
 "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/la/>\n"
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:471 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:609 aleksis/apps/alsijil/models.py:658
+#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Persona"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:730
+#: aleksis/apps/alsijil/models.py:891
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:734
+#: aleksis/apps/alsijil/models.py:895
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
@@ -178,8 +178,8 @@ msgstr ""
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/models.py:623
-#: aleksis/apps/alsijil/tables.py:117 aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -198,8 +198,8 @@ msgstr ""
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:79
-#: aleksis/apps/alsijil/models.py:255
+#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:84
+#: aleksis/apps/alsijil/models.py:260
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
@@ -272,40 +272,40 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:58 aleksis/apps/alsijil/models.py:432
+#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/models.py:437
 #, fuzzy
 #| msgid "First name"
 msgid "Short name"
 msgstr "Primus nomen"
 
-#: aleksis/apps/alsijil/models.py:59 aleksis/apps/alsijil/models.py:433
-#: aleksis/apps/alsijil/models.py:694
+#: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:855
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:65
+#: aleksis/apps/alsijil/models.py:70
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:80
+#: aleksis/apps/alsijil/models.py:85
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:235 aleksis/apps/alsijil/models.py:334
+#: aleksis/apps/alsijil/models.py:240 aleksis/apps/alsijil/models.py:339
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:260 aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
 #: aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
@@ -316,20 +316,20 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:294
+#: aleksis/apps/alsijil/models.py:299
 #, fuzzy
 #| msgid "Person"
 msgid "Personal note"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/models.py:295
+#: aleksis/apps/alsijil/models.py:300
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:370
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:21
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:259
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:337
@@ -338,7 +338,7 @@ msgstr ""
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:347 aleksis/apps/alsijil/models.py:483
+#: aleksis/apps/alsijil/models.py:352 aleksis/apps/alsijil/models.py:490
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:129
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
@@ -347,7 +347,7 @@ msgstr ""
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:348
+#: aleksis/apps/alsijil/models.py:353
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:271
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
@@ -357,117 +357,121 @@ msgstr ""
 msgid "Group note"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:398
+#: aleksis/apps/alsijil/models.py:403
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:16
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:399
+#: aleksis/apps/alsijil/models.py:404
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:77
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:440
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:436
+#: aleksis/apps/alsijil/models.py:441
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:443
 msgid "Show in coursebook"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:449
+#: aleksis/apps/alsijil/models.py:454
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:474
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:479 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:482
+#: aleksis/apps/alsijil/models.py:489
 msgid "Lesson Topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:491
 #, fuzzy
 #| msgid "Group"
 msgid "Group Note"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:619
-#: aleksis/apps/alsijil/models.py:665
+#: aleksis/apps/alsijil/models.py:495
+msgid "Participation touched at"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
+#: aleksis/apps/alsijil/models.py:826
 msgid "Documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:513
+#: aleksis/apps/alsijil/models.py:525
 msgid "Documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:612
+#: aleksis/apps/alsijil/models.py:765
 #, fuzzy
 #| msgid "Group"
 msgid "Groups of Person"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:625
+#: aleksis/apps/alsijil/models.py:778
 msgid "Absence Reason"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:634
+#: aleksis/apps/alsijil/models.py:790
 msgid "Base Absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:641 aleksis/apps/alsijil/models.py:642
+#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:670
+#: aleksis/apps/alsijil/models.py:831
 msgid "Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:672
+#: aleksis/apps/alsijil/models.py:833
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:679
+#: aleksis/apps/alsijil/models.py:840
 #, fuzzy
 #| msgid "Person"
 msgid "Personal Note"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/models.py:680
+#: aleksis/apps/alsijil/models.py:841
 #, fuzzy
 #| msgid "Person"
 msgid "Personal Notes"
 msgstr "Persona"
 
-#: aleksis/apps/alsijil/models.py:695
+#: aleksis/apps/alsijil/models.py:856
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:696
+#: aleksis/apps/alsijil/models.py:857
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:702 aleksis/apps/alsijil/models.py:717
+#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 #, fuzzy
 #| msgid "Group"
 msgid "Group role"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:703
+#: aleksis/apps/alsijil/models.py:864
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
@@ -476,15 +480,15 @@ msgstr "Grex"
 msgid "Group roles"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:704
+#: aleksis/apps/alsijil/models.py:865
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:723
+#: aleksis/apps/alsijil/models.py:884
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:728 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
@@ -493,35 +497,35 @@ msgstr ""
 msgid "Groups"
 msgstr "Grex"
 
-#: aleksis/apps/alsijil/models.py:735
+#: aleksis/apps/alsijil/models.py:896
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:750
+#: aleksis/apps/alsijil/models.py:911
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:751
+#: aleksis/apps/alsijil/models.py:912
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:758
+#: aleksis/apps/alsijil/models.py:919
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:759
+#: aleksis/apps/alsijil/models.py:920
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:760
+#: aleksis/apps/alsijil/models.py:921
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:761
+#: aleksis/apps/alsijil/models.py:922
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:762
+#: aleksis/apps/alsijil/models.py:923
 msgid "Can list all personal note filters"
 msgstr ""
 
diff --git a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
index 4a23675366e43a10b5190e5dfd31b46a442dd86f..7e8285208907941025f0a6da310079f0e35e214e 100644
--- a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-23 21:13+0200\n"
+"POT-Creation-Date: 2024-06-13 11:19+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"
@@ -110,7 +110,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:471 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -151,20 +151,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:609 aleksis/apps/alsijil/models.py:658
+#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:730
+#: aleksis/apps/alsijil/models.py:891
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:734
+#: aleksis/apps/alsijil/models.py:895
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
@@ -177,8 +177,8 @@ msgstr ""
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/models.py:623
-#: aleksis/apps/alsijil/tables.py:117 aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -197,8 +197,8 @@ msgstr ""
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:79
-#: aleksis/apps/alsijil/models.py:255
+#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:84
+#: aleksis/apps/alsijil/models.py:260
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
@@ -271,38 +271,38 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:58 aleksis/apps/alsijil/models.py:432
+#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/models.py:437
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:59 aleksis/apps/alsijil/models.py:433
-#: aleksis/apps/alsijil/models.py:694
+#: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:855
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:65
+#: aleksis/apps/alsijil/models.py:70
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:80
+#: aleksis/apps/alsijil/models.py:85
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:235 aleksis/apps/alsijil/models.py:334
+#: aleksis/apps/alsijil/models.py:240 aleksis/apps/alsijil/models.py:339
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:260 aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
 #: aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
@@ -313,18 +313,18 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:294
+#: aleksis/apps/alsijil/models.py:299
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:295
+#: aleksis/apps/alsijil/models.py:300
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:370
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:21
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:259
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:337
@@ -333,7 +333,7 @@ msgstr ""
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:347 aleksis/apps/alsijil/models.py:483
+#: aleksis/apps/alsijil/models.py:352 aleksis/apps/alsijil/models.py:490
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:129
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
@@ -342,7 +342,7 @@ msgstr ""
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:348
+#: aleksis/apps/alsijil/models.py:353
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:271
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
@@ -350,157 +350,161 @@ msgstr ""
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:398
+#: aleksis/apps/alsijil/models.py:403
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:16
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:399
+#: aleksis/apps/alsijil/models.py:404
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:77
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:440
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:436
+#: aleksis/apps/alsijil/models.py:441
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:443
 msgid "Show in coursebook"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:449
+#: aleksis/apps/alsijil/models.py:454
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:474
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:479 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:482
+#: aleksis/apps/alsijil/models.py:489
 msgid "Lesson Topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:619
-#: aleksis/apps/alsijil/models.py:665
+#: aleksis/apps/alsijil/models.py:495
+msgid "Participation touched at"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
+#: aleksis/apps/alsijil/models.py:826
 msgid "Documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:513
+#: aleksis/apps/alsijil/models.py:525
 msgid "Documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:612
+#: aleksis/apps/alsijil/models.py:765
 msgid "Groups of Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:625
+#: aleksis/apps/alsijil/models.py:778
 msgid "Absence Reason"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:634
+#: aleksis/apps/alsijil/models.py:790
 msgid "Base Absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:641 aleksis/apps/alsijil/models.py:642
+#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:670
+#: aleksis/apps/alsijil/models.py:831
 msgid "Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:672
+#: aleksis/apps/alsijil/models.py:833
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:679
+#: aleksis/apps/alsijil/models.py:840
 msgid "Personal Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:680
+#: aleksis/apps/alsijil/models.py:841
 msgid "Personal Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:695
+#: aleksis/apps/alsijil/models.py:856
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:696
+#: aleksis/apps/alsijil/models.py:857
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:702 aleksis/apps/alsijil/models.py:717
+#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:703
+#: aleksis/apps/alsijil/models.py:864
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:704
+#: aleksis/apps/alsijil/models.py:865
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:723
+#: aleksis/apps/alsijil/models.py:884
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:728 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:735
+#: aleksis/apps/alsijil/models.py:896
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:750
+#: aleksis/apps/alsijil/models.py:911
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:751
+#: aleksis/apps/alsijil/models.py:912
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:758
+#: aleksis/apps/alsijil/models.py:919
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:759
+#: aleksis/apps/alsijil/models.py:920
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:760
+#: aleksis/apps/alsijil/models.py:921
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:761
+#: aleksis/apps/alsijil/models.py:922
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:762
+#: aleksis/apps/alsijil/models.py:923
 msgid "Can list all personal note filters"
 msgstr ""
 
diff --git a/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po
index e1467925c5f0b0d1b4d9eebf9a8eea986c3785f3..aff00561b86b01e0dfb0862151a83a96fc6741cf 100644
--- a/aleksis/apps/alsijil/locale/ru/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/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: 2024-04-23 21:13+0200\n"
+"POT-Creation-Date: 2024-06-13 11:19+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-alsijil/ru/>\n"
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr "До"
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:471 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr "Вы не можете одновременно выбрать группу и преподавателя."
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:609 aleksis/apps/alsijil/models.py:658
+#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Физлицо"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:730
+#: aleksis/apps/alsijil/models.py:891
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Дата начала"
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:734
+#: aleksis/apps/alsijil/models.py:895
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Дата окончания"
@@ -178,8 +178,8 @@ msgstr "Начало уроков"
 msgid "End period"
 msgstr "Окончание уроков"
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/models.py:623
-#: aleksis/apps/alsijil/tables.py:117 aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -198,8 +198,8 @@ msgstr "Отсутствует"
 msgid "Excused"
 msgstr "Уважительно"
 
-#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:79
-#: aleksis/apps/alsijil/models.py:255
+#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:84
+#: aleksis/apps/alsijil/models.py:260
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
@@ -272,38 +272,38 @@ msgstr "Может назначать роль группы для этой гр
 msgid "Can register an absence for a person"
 msgstr "Может регистрировать отсутствия"
 
-#: aleksis/apps/alsijil/models.py:58 aleksis/apps/alsijil/models.py:432
+#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/models.py:437
 msgid "Short name"
 msgstr "Короткое имя"
 
-#: aleksis/apps/alsijil/models.py:59 aleksis/apps/alsijil/models.py:433
-#: aleksis/apps/alsijil/models.py:694
+#: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:855
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr "Полное имя"
 
-#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr "Количество отсутствующих"
 
-#: aleksis/apps/alsijil/models.py:65
+#: aleksis/apps/alsijil/models.py:70
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr "Если отмечено, этот тип объяснительной будет засчитан как пропущенный урок. Если не отмечено, то без записи в отчет о пропусках."
 
-#: aleksis/apps/alsijil/models.py:80
+#: aleksis/apps/alsijil/models.py:85
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr "Типы объяснительных"
 
-#: aleksis/apps/alsijil/models.py:235 aleksis/apps/alsijil/models.py:334
+#: aleksis/apps/alsijil/models.py:240 aleksis/apps/alsijil/models.py:339
 msgid "Year"
 msgstr "Год"
 
-#: aleksis/apps/alsijil/models.py:260 aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
 #: aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
@@ -314,18 +314,18 @@ msgstr "Год"
 msgid "Extra marks"
 msgstr "Дополнительные отметки"
 
-#: aleksis/apps/alsijil/models.py:294
+#: aleksis/apps/alsijil/models.py:299
 msgid "Personal note"
 msgstr "Личная заметка"
 
-#: aleksis/apps/alsijil/models.py:295
+#: aleksis/apps/alsijil/models.py:300
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:370
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:21
 msgid "Personal notes"
 msgstr "Личные заметки"
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:259
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:337
@@ -334,7 +334,7 @@ msgstr "Личные заметки"
 msgid "Lesson topic"
 msgstr "Тема урока"
 
-#: aleksis/apps/alsijil/models.py:347 aleksis/apps/alsijil/models.py:483
+#: aleksis/apps/alsijil/models.py:352 aleksis/apps/alsijil/models.py:490
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:129
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
@@ -343,7 +343,7 @@ msgstr "Тема урока"
 msgid "Homework"
 msgstr "Домашняя работа"
 
-#: aleksis/apps/alsijil/models.py:348
+#: aleksis/apps/alsijil/models.py:353
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:271
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
@@ -351,179 +351,183 @@ msgstr "Домашняя работа"
 msgid "Group note"
 msgstr "Групповая заметка"
 
-#: aleksis/apps/alsijil/models.py:398
+#: aleksis/apps/alsijil/models.py:403
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:16
 msgid "Lesson documentation"
 msgstr "Учебный материал"
 
-#: aleksis/apps/alsijil/models.py:399
+#: aleksis/apps/alsijil/models.py:404
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:77
 msgid "Lesson documentations"
 msgstr "Учебные материалы"
 
-#: aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:440
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:436
+#: aleksis/apps/alsijil/models.py:441
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:443
 msgid "Show in coursebook"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:449
+#: aleksis/apps/alsijil/models.py:454
 msgid "Extra mark"
 msgstr "Дополнительная отметка"
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:474
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:479 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
 msgid "Teachers"
 msgstr "Преподаватели"
 
-#: aleksis/apps/alsijil/models.py:482
+#: aleksis/apps/alsijil/models.py:489
 #, fuzzy
 #| msgid "Lesson topic"
 msgid "Lesson Topic"
 msgstr "Тема урока"
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:491
 #, fuzzy
 #| msgid "Group note"
 msgid "Group Note"
 msgstr "Групповая заметка"
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:619
-#: aleksis/apps/alsijil/models.py:665
+#: aleksis/apps/alsijil/models.py:495
+msgid "Participation touched at"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
+#: aleksis/apps/alsijil/models.py:826
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Documentation"
 msgstr "Учебный материал"
 
-#: aleksis/apps/alsijil/models.py:513
+#: aleksis/apps/alsijil/models.py:525
 #, fuzzy
 #| msgid "Lesson documentations"
 msgid "Documentations"
 msgstr "Учебные материалы"
 
-#: aleksis/apps/alsijil/models.py:612
+#: aleksis/apps/alsijil/models.py:765
 #, fuzzy
 #| msgid "Group roles"
 msgid "Groups of Person"
 msgstr "Роли групп"
 
-#: aleksis/apps/alsijil/models.py:625
+#: aleksis/apps/alsijil/models.py:778
 #, fuzzy
 #| msgid "Absences"
 msgid "Absence Reason"
 msgstr "Пропуски"
 
-#: aleksis/apps/alsijil/models.py:634
+#: aleksis/apps/alsijil/models.py:790
 #, fuzzy
 #| msgid "Absences"
 msgid "Base Absence"
 msgstr "Пропуски"
 
-#: aleksis/apps/alsijil/models.py:641 aleksis/apps/alsijil/models.py:642
+#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:670
+#: aleksis/apps/alsijil/models.py:831
 #, fuzzy
 #| msgid "Notes"
 msgid "Note"
 msgstr "Заметки"
 
-#: aleksis/apps/alsijil/models.py:672
+#: aleksis/apps/alsijil/models.py:833
 #, fuzzy
 #| msgid "Extra mark"
 msgid "Extra Mark"
 msgstr "Дополнительная отметка"
 
-#: aleksis/apps/alsijil/models.py:679
+#: aleksis/apps/alsijil/models.py:840
 #, fuzzy
 #| msgid "Personal note"
 msgid "Personal Note"
 msgstr "Личная заметка"
 
-#: aleksis/apps/alsijil/models.py:680
+#: aleksis/apps/alsijil/models.py:841
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal Notes"
 msgstr "Личные заметки"
 
-#: aleksis/apps/alsijil/models.py:695
+#: aleksis/apps/alsijil/models.py:856
 msgid "Icon"
 msgstr "Иконка"
 
-#: aleksis/apps/alsijil/models.py:696
+#: aleksis/apps/alsijil/models.py:857
 msgid "Colour"
 msgstr "Цвет"
 
-#: aleksis/apps/alsijil/models.py:702 aleksis/apps/alsijil/models.py:717
+#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Роль группы"
 
-#: aleksis/apps/alsijil/models.py:703
+#: aleksis/apps/alsijil/models.py:864
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr "Роли групп"
 
-#: aleksis/apps/alsijil/models.py:704
+#: aleksis/apps/alsijil/models.py:865
 msgid "Can assign group role"
 msgstr "Может назначать роль группы"
 
-#: aleksis/apps/alsijil/models.py:723
+#: aleksis/apps/alsijil/models.py:884
 msgid "Assigned person"
 msgstr "Назначенное физлицо"
 
-#: aleksis/apps/alsijil/models.py:728 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr "Группы"
 
-#: aleksis/apps/alsijil/models.py:735
+#: aleksis/apps/alsijil/models.py:896
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Если нет точной конечной даты, можно оставить незаполненным"
 
-#: aleksis/apps/alsijil/models.py:750
+#: aleksis/apps/alsijil/models.py:911
 msgid "Group role assignment"
 msgstr "Назначение роли группы"
 
-#: aleksis/apps/alsijil/models.py:751
+#: aleksis/apps/alsijil/models.py:912
 msgid "Group role assignments"
 msgstr "Назначение ролей групп"
 
-#: aleksis/apps/alsijil/models.py:758
+#: aleksis/apps/alsijil/models.py:919
 msgid "Can view lesson overview"
 msgstr "Может просматривать обзор урока"
 
-#: aleksis/apps/alsijil/models.py:759
+#: aleksis/apps/alsijil/models.py:920
 msgid "Can view week overview"
 msgstr "Может просматривать недельный обзор"
 
-#: aleksis/apps/alsijil/models.py:760
+#: aleksis/apps/alsijil/models.py:921
 msgid "Can view full register"
 msgstr "Может просматривать весь журнал"
 
-#: aleksis/apps/alsijil/models.py:761
+#: aleksis/apps/alsijil/models.py:922
 msgid "Can register absence"
 msgstr "Может регистрировать отсутствие"
 
-#: aleksis/apps/alsijil/models.py:762
+#: aleksis/apps/alsijil/models.py:923
 msgid "Can list all personal note filters"
 msgstr "Может просматривать все фильтры личных заметок"
 
diff --git a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
index 4a23675366e43a10b5190e5dfd31b46a442dd86f..7e8285208907941025f0a6da310079f0e35e214e 100644
--- a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-23 21:13+0200\n"
+"POT-Creation-Date: 2024-06-13 11:19+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"
@@ -110,7 +110,7 @@ msgid "Before"
 msgstr ""
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:471 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -151,20 +151,20 @@ msgid "You can't select a group and a teacher both."
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:609 aleksis/apps/alsijil/models.py:658
+#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:730
+#: aleksis/apps/alsijil/models.py:891
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr ""
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:734
+#: aleksis/apps/alsijil/models.py:895
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr ""
@@ -177,8 +177,8 @@ msgstr ""
 msgid "End period"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/models.py:623
-#: aleksis/apps/alsijil/tables.py:117 aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -197,8 +197,8 @@ msgstr ""
 msgid "Excused"
 msgstr ""
 
-#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:79
-#: aleksis/apps/alsijil/models.py:255
+#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:84
+#: aleksis/apps/alsijil/models.py:260
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
@@ -271,38 +271,38 @@ msgstr ""
 msgid "Can register an absence for a person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:58 aleksis/apps/alsijil/models.py:432
+#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/models.py:437
 msgid "Short name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:59 aleksis/apps/alsijil/models.py:433
-#: aleksis/apps/alsijil/models.py:694
+#: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:855
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:65
+#: aleksis/apps/alsijil/models.py:70
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:80
+#: aleksis/apps/alsijil/models.py:85
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:235 aleksis/apps/alsijil/models.py:334
+#: aleksis/apps/alsijil/models.py:240 aleksis/apps/alsijil/models.py:339
 msgid "Year"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:260 aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
 #: aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
@@ -313,18 +313,18 @@ msgstr ""
 msgid "Extra marks"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:294
+#: aleksis/apps/alsijil/models.py:299
 msgid "Personal note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:295
+#: aleksis/apps/alsijil/models.py:300
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:370
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:21
 msgid "Personal notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:259
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:337
@@ -333,7 +333,7 @@ msgstr ""
 msgid "Lesson topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:347 aleksis/apps/alsijil/models.py:483
+#: aleksis/apps/alsijil/models.py:352 aleksis/apps/alsijil/models.py:490
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:129
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
@@ -342,7 +342,7 @@ msgstr ""
 msgid "Homework"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:348
+#: aleksis/apps/alsijil/models.py:353
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:271
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
@@ -350,157 +350,161 @@ msgstr ""
 msgid "Group note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:398
+#: aleksis/apps/alsijil/models.py:403
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:16
 msgid "Lesson documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:399
+#: aleksis/apps/alsijil/models.py:404
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:77
 msgid "Lesson documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:440
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:436
+#: aleksis/apps/alsijil/models.py:441
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:443
 msgid "Show in coursebook"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:449
+#: aleksis/apps/alsijil/models.py:454
 msgid "Extra mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:474
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:479 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
 msgid "Teachers"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:482
+#: aleksis/apps/alsijil/models.py:489
 msgid "Lesson Topic"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:491
 msgid "Group Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:619
-#: aleksis/apps/alsijil/models.py:665
+#: aleksis/apps/alsijil/models.py:495
+msgid "Participation touched at"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
+#: aleksis/apps/alsijil/models.py:826
 msgid "Documentation"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:513
+#: aleksis/apps/alsijil/models.py:525
 msgid "Documentations"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:612
+#: aleksis/apps/alsijil/models.py:765
 msgid "Groups of Person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:625
+#: aleksis/apps/alsijil/models.py:778
 msgid "Absence Reason"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:634
+#: aleksis/apps/alsijil/models.py:790
 msgid "Base Absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:641 aleksis/apps/alsijil/models.py:642
+#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:670
+#: aleksis/apps/alsijil/models.py:831
 msgid "Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:672
+#: aleksis/apps/alsijil/models.py:833
 msgid "Extra Mark"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:679
+#: aleksis/apps/alsijil/models.py:840
 msgid "Personal Note"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:680
+#: aleksis/apps/alsijil/models.py:841
 msgid "Personal Notes"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:695
+#: aleksis/apps/alsijil/models.py:856
 msgid "Icon"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:696
+#: aleksis/apps/alsijil/models.py:857
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:702 aleksis/apps/alsijil/models.py:717
+#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:703
+#: aleksis/apps/alsijil/models.py:864
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:704
+#: aleksis/apps/alsijil/models.py:865
 msgid "Can assign group role"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:723
+#: aleksis/apps/alsijil/models.py:884
 msgid "Assigned person"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:728 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:735
+#: aleksis/apps/alsijil/models.py:896
 msgid "Can be left empty if end date is not clear yet"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:750
+#: aleksis/apps/alsijil/models.py:911
 msgid "Group role assignment"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:751
+#: aleksis/apps/alsijil/models.py:912
 msgid "Group role assignments"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:758
+#: aleksis/apps/alsijil/models.py:919
 msgid "Can view lesson overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:759
+#: aleksis/apps/alsijil/models.py:920
 msgid "Can view week overview"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:760
+#: aleksis/apps/alsijil/models.py:921
 msgid "Can view full register"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:761
+#: aleksis/apps/alsijil/models.py:922
 msgid "Can register absence"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:762
+#: aleksis/apps/alsijil/models.py:923
 msgid "Can list all personal note filters"
 msgstr ""
 
diff --git a/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
index 6353e21e708c593793b756827d3f056ba5edb008..d3663a8befb259e29f630d7b08355882257e5e4a 100644
--- a/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
+++ b/aleksis/apps/alsijil/locale/uk/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-23 21:13+0200\n"
+"POT-Creation-Date: 2024-06-13 11:19+0200\n"
 "PO-Revision-Date: 2023-01-25 05:58+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
 "Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/uk/>\n"
@@ -111,7 +111,7 @@ msgid "Before"
 msgstr "Перед"
 
 #: aleksis/apps/alsijil/filters.py:14 aleksis/apps/alsijil/forms.py:371
-#: aleksis/apps/alsijil/models.py:471 aleksis/apps/alsijil/tables.py:116
+#: aleksis/apps/alsijil/models.py:478 aleksis/apps/alsijil/tables.py:116
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:126
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:223
 #: aleksis/apps/alsijil/templates/alsijil/print/full_register.html:189
@@ -152,20 +152,20 @@ msgid "You can't select a group and a teacher both."
 msgstr "Ви не можете обрати одночасно групу та викладача."
 
 #: aleksis/apps/alsijil/forms.py:193 aleksis/apps/alsijil/forms.py:291
-#: aleksis/apps/alsijil/models.py:609 aleksis/apps/alsijil/models.py:658
+#: aleksis/apps/alsijil/models.py:762 aleksis/apps/alsijil/models.py:819
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:63
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:27
 msgid "Person"
 msgstr "Особа"
 
 #: aleksis/apps/alsijil/forms.py:194 aleksis/apps/alsijil/forms.py:372
-#: aleksis/apps/alsijil/models.py:730
+#: aleksis/apps/alsijil/models.py:891
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:64
 msgid "Start date"
 msgstr "Дата початку"
 
 #: aleksis/apps/alsijil/forms.py:195 aleksis/apps/alsijil/forms.py:373
-#: aleksis/apps/alsijil/models.py:734
+#: aleksis/apps/alsijil/models.py:895
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:65
 msgid "End date"
 msgstr "Дата закінчення"
@@ -178,8 +178,8 @@ msgstr "Початок уроків"
 msgid "End period"
 msgstr "Закінчення уроків"
 
-#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/models.py:623
-#: aleksis/apps/alsijil/tables.py:117 aleksis/apps/alsijil/tables.py:138
+#: aleksis/apps/alsijil/forms.py:198 aleksis/apps/alsijil/tables.py:117
+#: aleksis/apps/alsijil/tables.py:138
 #: aleksis/apps/alsijil/templates/alsijil/absences/register_confirm.html:50
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:392
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:28
@@ -198,8 +198,8 @@ msgstr "Відсутній(-я)"
 msgid "Excused"
 msgstr "Пояснено"
 
-#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:79
-#: aleksis/apps/alsijil/models.py:255
+#: aleksis/apps/alsijil/forms.py:201 aleksis/apps/alsijil/models.py:84
+#: aleksis/apps/alsijil/models.py:260
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:31
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:72
 msgid "Excuse type"
@@ -272,38 +272,38 @@ msgstr "Може призначати роль групи для цієї гру
 msgid "Can register an absence for a person"
 msgstr "Може реєструвати відсутність особи"
 
-#: aleksis/apps/alsijil/models.py:58 aleksis/apps/alsijil/models.py:432
+#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/models.py:437
 msgid "Short name"
 msgstr "Коротке ім'я"
 
-#: aleksis/apps/alsijil/models.py:59 aleksis/apps/alsijil/models.py:433
-#: aleksis/apps/alsijil/models.py:694
+#: aleksis/apps/alsijil/models.py:64 aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:855
 #: aleksis/apps/alsijil/templates/alsijil/class_register/groups.html:20
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:12
 #: aleksis/apps/alsijil/templates/alsijil/partials/persons_with_stats.html:25
 msgid "Name"
 msgstr "Повне ім'я"
 
-#: aleksis/apps/alsijil/models.py:63 aleksis/apps/alsijil/tables.py:41
+#: aleksis/apps/alsijil/models.py:68 aleksis/apps/alsijil/tables.py:41
 msgid "Count as absent"
 msgstr "Кількість відсутніх"
 
-#: aleksis/apps/alsijil/models.py:65
+#: aleksis/apps/alsijil/models.py:70
 msgid "If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report."
 msgstr "Якщо відмічено, цей тип пояснення буде зарахований як пропущений урок. Якщо не відмічено, то без запису у звіт відсутності."
 
-#: aleksis/apps/alsijil/models.py:80
+#: aleksis/apps/alsijil/models.py:85
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/excuse_type/list.html:9
 #: aleksis/apps/alsijil/templates/alsijil/partials/legend.html:30
 msgid "Excuse types"
 msgstr "Типи пояснень"
 
-#: aleksis/apps/alsijil/models.py:235 aleksis/apps/alsijil/models.py:334
+#: aleksis/apps/alsijil/models.py:240 aleksis/apps/alsijil/models.py:339
 msgid "Year"
 msgstr "Рік"
 
-#: aleksis/apps/alsijil/models.py:260 aleksis/apps/alsijil/models.py:450
+#: aleksis/apps/alsijil/models.py:265 aleksis/apps/alsijil/models.py:455
 #: aleksis/apps/alsijil/tables.py:120
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html:9
@@ -314,18 +314,18 @@ msgstr "Рік"
 msgid "Extra marks"
 msgstr "Додаткові відмітки"
 
-#: aleksis/apps/alsijil/models.py:294
+#: aleksis/apps/alsijil/models.py:299
 msgid "Personal note"
 msgstr "Особиста нотатка"
 
-#: aleksis/apps/alsijil/models.py:295
+#: aleksis/apps/alsijil/models.py:300
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:47
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:370
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/notes.html:21
 msgid "Personal notes"
 msgstr "Особисті нотатки"
 
-#: aleksis/apps/alsijil/models.py:346
+#: aleksis/apps/alsijil/models.py:351
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:128
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:259
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:337
@@ -334,7 +334,7 @@ msgstr "Особисті нотатки"
 msgid "Lesson topic"
 msgstr "Тема уроку"
 
-#: aleksis/apps/alsijil/models.py:347 aleksis/apps/alsijil/models.py:483
+#: aleksis/apps/alsijil/models.py:352 aleksis/apps/alsijil/models.py:490
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:129
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:265
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:342
@@ -343,7 +343,7 @@ msgstr "Тема уроку"
 msgid "Homework"
 msgstr "Домашня робота"
 
-#: aleksis/apps/alsijil/models.py:348
+#: aleksis/apps/alsijil/models.py:353
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:130
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:271
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:346
@@ -351,179 +351,183 @@ msgstr "Домашня робота"
 msgid "Group note"
 msgstr "Групова нотатка"
 
-#: aleksis/apps/alsijil/models.py:398
+#: aleksis/apps/alsijil/models.py:403
 #: aleksis/apps/alsijil/templates/alsijil/partials/lesson/tabs/documentation.html:16
 msgid "Lesson documentation"
 msgstr "Учбовий матеріал"
 
-#: aleksis/apps/alsijil/models.py:399
+#: aleksis/apps/alsijil/models.py:404
 #: aleksis/apps/alsijil/templates/alsijil/class_register/person.html:43
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:77
 msgid "Lesson documentations"
 msgstr "Учбові матеріали"
 
-#: aleksis/apps/alsijil/models.py:435
+#: aleksis/apps/alsijil/models.py:440
 msgid "Foreground colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:436
+#: aleksis/apps/alsijil/models.py:441
 msgid "Background colour"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:438
+#: aleksis/apps/alsijil/models.py:443
 msgid "Show in coursebook"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:449
+#: aleksis/apps/alsijil/models.py:454
 msgid "Extra mark"
 msgstr "Додаткова відмітка"
 
-#: aleksis/apps/alsijil/models.py:467
+#: aleksis/apps/alsijil/models.py:474
 msgid "Course"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:479 aleksis/apps/alsijil/tables.py:111
+#: aleksis/apps/alsijil/models.py:486 aleksis/apps/alsijil/tables.py:111
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:127
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:253
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:331
 msgid "Teachers"
 msgstr "Викладачі"
 
-#: aleksis/apps/alsijil/models.py:482
+#: aleksis/apps/alsijil/models.py:489
 #, fuzzy
 #| msgid "Lesson topic"
 msgid "Lesson Topic"
 msgstr "Тема уроку"
 
-#: aleksis/apps/alsijil/models.py:484
+#: aleksis/apps/alsijil/models.py:491
 #, fuzzy
 #| msgid "Group note"
 msgid "Group Note"
 msgstr "Групова нотатка"
 
-#: aleksis/apps/alsijil/models.py:512 aleksis/apps/alsijil/models.py:619
-#: aleksis/apps/alsijil/models.py:665
+#: aleksis/apps/alsijil/models.py:495
+msgid "Participation touched at"
+msgstr ""
+
+#: aleksis/apps/alsijil/models.py:524 aleksis/apps/alsijil/models.py:772
+#: aleksis/apps/alsijil/models.py:826
 #, fuzzy
 #| msgid "Lesson documentation"
 msgid "Documentation"
 msgstr "Учбовий матеріал"
 
-#: aleksis/apps/alsijil/models.py:513
+#: aleksis/apps/alsijil/models.py:525
 #, fuzzy
 #| msgid "Lesson documentations"
 msgid "Documentations"
 msgstr "Учбові матеріали"
 
-#: aleksis/apps/alsijil/models.py:612
+#: aleksis/apps/alsijil/models.py:765
 #, fuzzy
 #| msgid "Group roles"
 msgid "Groups of Person"
 msgstr "Ролі груп"
 
-#: aleksis/apps/alsijil/models.py:625
+#: aleksis/apps/alsijil/models.py:778
 #, fuzzy
 #| msgid "Absences"
 msgid "Absence Reason"
 msgstr "Відсутності"
 
-#: aleksis/apps/alsijil/models.py:634
+#: aleksis/apps/alsijil/models.py:790
 #, fuzzy
 #| msgid "Absences"
 msgid "Base Absence"
 msgstr "Відсутності"
 
-#: aleksis/apps/alsijil/models.py:641 aleksis/apps/alsijil/models.py:642
+#: aleksis/apps/alsijil/models.py:802 aleksis/apps/alsijil/models.py:803
 msgid "Participation Status"
 msgstr ""
 
-#: aleksis/apps/alsijil/models.py:670
+#: aleksis/apps/alsijil/models.py:831
 #, fuzzy
 #| msgid "Notes"
 msgid "Note"
 msgstr "Нотатки"
 
-#: aleksis/apps/alsijil/models.py:672
+#: aleksis/apps/alsijil/models.py:833
 #, fuzzy
 #| msgid "Extra mark"
 msgid "Extra Mark"
 msgstr "Додаткова відмітка"
 
-#: aleksis/apps/alsijil/models.py:679
+#: aleksis/apps/alsijil/models.py:840
 #, fuzzy
 #| msgid "Personal note"
 msgid "Personal Note"
 msgstr "Особиста нотатка"
 
-#: aleksis/apps/alsijil/models.py:680
+#: aleksis/apps/alsijil/models.py:841
 #, fuzzy
 #| msgid "Personal notes"
 msgid "Personal Notes"
 msgstr "Особисті нотатки"
 
-#: aleksis/apps/alsijil/models.py:695
+#: aleksis/apps/alsijil/models.py:856
 msgid "Icon"
 msgstr "Піктограма"
 
-#: aleksis/apps/alsijil/models.py:696
+#: aleksis/apps/alsijil/models.py:857
 msgid "Colour"
 msgstr "Колір"
 
-#: aleksis/apps/alsijil/models.py:702 aleksis/apps/alsijil/models.py:717
+#: aleksis/apps/alsijil/models.py:863 aleksis/apps/alsijil/models.py:878
 #: aleksis/apps/alsijil/templates/alsijil/group_role/assigned_list.html:62
 msgid "Group role"
 msgstr "Роль групи"
 
-#: aleksis/apps/alsijil/models.py:703
+#: aleksis/apps/alsijil/models.py:864
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:90
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:8
 #: aleksis/apps/alsijil/templates/alsijil/group_role/list.html:9
 msgid "Group roles"
 msgstr "Ролі груп"
 
-#: aleksis/apps/alsijil/models.py:704
+#: aleksis/apps/alsijil/models.py:865
 msgid "Can assign group role"
 msgstr "Може призначати роль групи"
 
-#: aleksis/apps/alsijil/models.py:723
+#: aleksis/apps/alsijil/models.py:884
 msgid "Assigned person"
 msgstr "Призначена особа"
 
-#: aleksis/apps/alsijil/models.py:728 aleksis/apps/alsijil/tables.py:105
+#: aleksis/apps/alsijil/models.py:889 aleksis/apps/alsijil/tables.py:105
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:124
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:242
 #: aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html:321
 msgid "Groups"
 msgstr "Групи"
 
-#: aleksis/apps/alsijil/models.py:735
+#: aleksis/apps/alsijil/models.py:896
 msgid "Can be left empty if end date is not clear yet"
 msgstr "Якщо немає точної кінцевої дати, можна залишити порожнім"
 
-#: aleksis/apps/alsijil/models.py:750
+#: aleksis/apps/alsijil/models.py:911
 msgid "Group role assignment"
 msgstr "Призначення ролі групи"
 
-#: aleksis/apps/alsijil/models.py:751
+#: aleksis/apps/alsijil/models.py:912
 msgid "Group role assignments"
 msgstr "Призначення ролі групи"
 
-#: aleksis/apps/alsijil/models.py:758
+#: aleksis/apps/alsijil/models.py:919
 msgid "Can view lesson overview"
 msgstr "Може бачити огляд уроку"
 
-#: aleksis/apps/alsijil/models.py:759
+#: aleksis/apps/alsijil/models.py:920
 msgid "Can view week overview"
 msgstr "Може бачити огляд тижня"
 
-#: aleksis/apps/alsijil/models.py:760
+#: aleksis/apps/alsijil/models.py:921
 msgid "Can view full register"
 msgstr "Може бачити весь журнал"
 
-#: aleksis/apps/alsijil/models.py:761
+#: aleksis/apps/alsijil/models.py:922
 msgid "Can register absence"
 msgstr "Може реєструвати пропуск"
 
-#: aleksis/apps/alsijil/models.py:762
+#: aleksis/apps/alsijil/models.py:923
 msgid "Can list all personal note filters"
 msgstr "Може бачити усі фільтри особистих нотаток"
 
diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index b30c8d7949b5730304a80ed03033cdcd077d7898..4ae5d601f9e03d8aee5462216e2d9d2a90442097 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -11,7 +11,7 @@ from django.db.models.query_utils import Q
 from django.urls import reverse
 from django.utils import timezone
 from django.utils.formats import date_format
-from django.utils.timezone import localdate, localtime
+from django.utils.timezone import localdate, localtime, now
 from django.utils.translation import gettext_lazy as _
 
 from calendarweek import CalendarWeek
@@ -696,41 +696,49 @@ class Documentation(CalendarEvent):
 
         return cls.objects.get(id=_id), False
 
-    def build_participation_status(self, person: Person) -> "ParticipationStatus":
-        """Build participation status object for this documentation and a person."""
-        return ParticipationStatus(
-            person=person,
-            related_documentation=self,
-            datetime_start=self.datetime_start,
-            datetime_end=self.datetime_end,
-            # Set timezone directly as save of ParticipationStatus won't be called in bulk_create
-            timezone=self.timezone,
-        )
-
     def touch(self):
         """Ensure that participation statuses are created for this documentation."""
-        # TODO: Check for preexisting absences in kolego
-
-        if self.participation_touched_at or not self.amends or self.datetime_start > localtime():
+        if (
+            self.participation_touched_at
+            or not self.amends
+            or self.value_start_datetime(self) > now()
+        ):
             # There is no source to update from or it's too early
             return
 
         lesson_event: LessonEvent = self.amends
         all_members = lesson_event.all_members
+        member_pks = [p.pk for p in all_members]
+
+        new_persons = Person.objects.filter(Q(pk__in=member_pks)).prefetch_related("member_of")
 
-        new_persons = Person.objects.filter(Q(pk__in=[p.pk for p in all_members])).prefetch_related(
-            "member_of"
+        # Get absences from Kolego
+        events = KolegoAbsence.get_single_events(
+            self.value_start_datetime(self),
+            self.value_end_datetime(self),
+            None,
+            {"persons": member_pks},
+            with_reference_object=True,
         )
+        kolego_absences_map = {a["REFERENCE_OBJECT"].person: a["REFERENCE_OBJECT"] for a in events}
+
         new_participations = []
         new_groups_of_person = []
         for person in new_persons:
-            participation_status = ParticipationStatus.objects.create(
+            participation_status = ParticipationStatus(
                 person=person,
                 related_documentation=self,
                 datetime_start=self.datetime_start,
                 datetime_end=self.datetime_end,
                 timezone=self.timezone,
             )
+
+            # Take over data from Kolego absence
+            if person in kolego_absences_map:
+                participation_status.fill_from_kolego(kolego_absences_map[person])
+
+            participation_status.save()
+
             new_groups_of_person += [
                 ParticipationStatus.groups_of_person.through(
                     group=group, participationstatus=participation_status
@@ -789,6 +797,11 @@ class ParticipationStatus(CalendarEvent):
         verbose_name=_("Base Absence"),
     )
 
+    def fill_from_kolego(self, kolego_absence: KolegoAbsence):
+        """Take over data from a Kolego absence."""
+        self.base_absence = kolego_absence
+        self.absence_reason = kolego_absence.reason
+
     def __str__(self) -> str:
         return f"{self.related_documentation.id}, {self.person}"
 
diff --git a/aleksis/apps/alsijil/schema/documentation.py b/aleksis/apps/alsijil/schema/documentation.py
index 82eccbbea937fdecee1758b425883eee139908da..63aecfdfc0e5115250e2e4d59c34d41c8375530e 100644
--- a/aleksis/apps/alsijil/schema/documentation.py
+++ b/aleksis/apps/alsijil/schema/documentation.py
@@ -71,7 +71,7 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
     @staticmethod
     def resolve_participations(root: Documentation, info, **kwargs):
         if not info.context.user.has_perm(
-            "alsijil.view_participation_status_for_documentation", root
+            "alsijil.view_participation_status_for_documentation_rule", root
         ):
             return []
 
@@ -154,7 +154,8 @@ class TouchDocumentationMutation(graphene.Mutation):
             "alsijil.edit_participation_status_for_documentation_rule", documentation
         ):
             raise PermissionDenied()
-        # FIXME Should not be effective in past
+
         if not created:
             documentation.touch()
+
         return TouchDocumentationMutation(documentation=documentation)
diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index f3b5ad5901db996e928d44b6e8a6edfb41e207b6..9f06195e279b6e9bc9564731146d33ea7995498d 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -2,7 +2,7 @@ from typing import Any, Union
 
 from django.contrib.auth.models import User
 from django.db.models import Q
-from django.utils.timezone import localdate, localtime
+from django.utils.timezone import localdate, now
 
 from rules import predicate
 
@@ -481,11 +481,11 @@ def is_in_allowed_time_range(user: User, obj: Documentation):
         get_site_preferences()["alsijil__allow_edit_future_documentations"] == "all"
         or (
             get_site_preferences()["alsijil__allow_edit_future_documentations"] == "current_day"
-            and obj.datetime_start.date() <= localdate()
+            and obj.value_start_datetime(obj).date() <= localdate()
         )
         or (
             get_site_preferences()["alsijil__allow_edit_future_documentations"] == "current_time"
-            and obj.datetime_start <= localtime()
+            and obj.value_start_datetime(obj) <= now()
         )
     ):
         return True
@@ -495,6 +495,6 @@ def is_in_allowed_time_range(user: User, obj: Documentation):
 @predicate
 def is_in_allowed_time_range_for_participation_status(user: User, obj: Documentation):
     """Predicate which checks if the documentation is in the allowed time range for editing."""
-    if obj and obj.datetime_start <= localtime():
+    if obj and obj.value_start_datetime(obj) <= now():
         return True
     return False
diff --git a/pyproject.toml b/pyproject.toml
index 276683bae087de62a39719ae078ecc0b223a0590..f8457ce5c4feec15c21f780d08ab960c05418d4f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "AlekSIS-App-Alsijil"
-version = "4.0.0.dev1"
+version = "4.0.0.dev3"
 packages = [
     { include = "aleksis" }
 ]
@@ -52,7 +52,7 @@ python = "^3.10"
 aleksis-core = "^4.0.0.dev7"
 aleksis-app-chronos = "^4.0.0.dev3"
 aleksis-app-stoelindeling = { version = "^3.0.dev1", optional = true }
-aleksis-app-kolego = "^0.1.0.dev0"
+aleksis-app-kolego = "^0.1.0.dev2"
 
 [tool.poetry.extras]
 seatingplans = ["aleksis-app-stoelindeling"]