diff --git a/aleksis/core/locale/ar/LC_MESSAGES/django.po b/aleksis/core/locale/ar/LC_MESSAGES/django.po
index f21f799bef0ace8309d458095e83ab705354ff96..d6b9534839bbeefdb2d39eb8c7256ee3e0fc5251 100644
--- a/aleksis/core/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-04 15:39+0200\n"
+"POT-Creation-Date: 2020-08-02 16:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,8 +16,21 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
-"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#: filters.py:37 templates/core/base.html:77 templates/core/group/list.html:20
+#: templates/core/person/list.html:24 templates/search/search.html:7
+#: templates/search/search.html:22
+msgid "Search"
+msgstr ""
+
+#: filters.py:53
+msgid "Search by name"
+msgstr ""
+
+#: filters.py:65
+msgid "Search by contact details"
+msgstr ""
 
 #: forms.py:46
 msgid "You cannot set a new username when also selecting an existing user."
@@ -43,64 +56,71 @@ msgstr ""
 msgid "Advanced personal data"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 msgid "New user"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 msgid "Create a new account"
 msgstr ""
 
-#: forms.py:128
+#: forms.py:126 models.py:91
+msgid "School term"
+msgstr ""
+
+#: forms.py:127
 msgid "Common data"
 msgstr ""
 
-#: forms.py:129 forms.py:169 menus.py:141 models.py:54
-#: templates/core/persons.html:8 templates/core/persons.html:9
+#: forms.py:128 forms.py:170 menus.py:152 models.py:105
+#: templates/core/person/list.html:8 templates/core/person/list.html:9
 msgid "Persons"
 msgstr ""
 
-#: forms.py:162 forms.py:165 models.py:31
+#: forms.py:129
+msgid "Additional data"
+msgstr ""
+
+#: forms.py:163 forms.py:166 models.py:35
 msgid "Date"
 msgstr ""
 
-#: forms.py:163 forms.py:166 models.py:39
+#: forms.py:164 forms.py:167 models.py:43
 msgid "Time"
 msgstr ""
 
-#: forms.py:171 menus.py:149 models.py:253 templates/core/groups.html:8
-#: templates/core/groups.html:9 templates/core/person_full.html:106
+#: forms.py:172 menus.py:160 models.py:319 templates/core/group/list.html:8
+#: templates/core/group/list.html:9 templates/core/person/full.html:136
 msgid "Groups"
 msgstr ""
 
-#: forms.py:175
+#: forms.py:176
 msgid "From when until when should the announcement be displayed?"
 msgstr ""
 
-#: forms.py:178
+#: forms.py:179
 msgid "Who should see the announcement?"
 msgstr ""
 
-#: forms.py:179
+#: forms.py:180
 msgid "Write your announcement:"
 msgstr ""
 
-#: forms.py:216
-msgid ""
-"You are not allowed to create announcements which are only valid in the past."
+#: forms.py:219
+msgid "You are not allowed to create announcements which are only valid in the past."
 msgstr ""
 
-#: forms.py:220
+#: forms.py:223
 msgid "The from date and time must be earlier then the until date and time."
 msgstr ""
 
-#: forms.py:229
+#: forms.py:232
 msgid "You need at least one recipient."
 msgstr ""
 
 #: menus.py:7 templates/two_factor/core/login.html:6
 #: templates/two_factor/core/login.html:10
-#: templates/two_factor/core/login.html:73
+#: templates/two_factor/core/login.html:86
 msgid "Login"
 msgstr ""
 
@@ -136,502 +156,556 @@ msgstr ""
 msgid "Admin"
 msgstr ""
 
-#: menus.py:75 models.py:487 templates/core/announcement/list.html:7
+#: menus.py:75 models.py:564 templates/core/announcement/list.html:7
 #: templates/core/announcement/list.html:8
 msgid "Announcements"
 msgstr ""
 
-#: menus.py:86 templates/core/data_management.html:6
-#: templates/core/data_management.html:7
+#: menus.py:86 models.py:92 templates/core/school_term/list.html:8
+#: templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr ""
+
+#: menus.py:97 templates/core/management/data_management.html:6
+#: templates/core/management/data_management.html:7
 msgid "Data management"
 msgstr ""
 
-#: menus.py:94 templates/core/system_status.html:5
-#: templates/core/system_status.html:7
+#: menus.py:105 templates/core/pages/system_status.html:5
+#: templates/core/pages/system_status.html:7
 msgid "System status"
 msgstr ""
 
-#: menus.py:105
+#: menus.py:116
 msgid "Impersonation"
 msgstr ""
 
-#: menus.py:113
+#: menus.py:124
 msgid "Configuration"
 msgstr ""
 
-#: menus.py:124
+#: menus.py:135
 msgid "Backend Admin"
 msgstr ""
 
-#: menus.py:132
+#: menus.py:143
 msgid "People"
 msgstr ""
 
-#: menus.py:157
+#: menus.py:168 models.py:727 templates/core/group_type/list.html:8
+#: templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr ""
+
+#: menus.py:179
 msgid "Persons and accounts"
 msgstr ""
 
-#: menus.py:168
+#: menus.py:190
 msgid "Groups and child groups"
 msgstr ""
 
-#: menus.py:183 templates/core/groups_child_groups.html:7
-#: templates/core/groups_child_groups.html:9
+#: menus.py:201 models.py:363 templates/core/additional_field/list.html:8
+#: templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr ""
+
+#: menus.py:216 templates/core/group/child_groups.html:7
+#: templates/core/group/child_groups.html:9
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: models.py:29
+#: mixins.py:406
+msgid "Linked school term"
+msgstr ""
+
+#: models.py:33
 msgid "Boolean (Yes/No)"
 msgstr ""
 
-#: models.py:30
+#: models.py:34
 msgid "Text (one line)"
 msgstr ""
 
-#: models.py:32
+#: models.py:36
 msgid "Date and time"
 msgstr ""
 
-#: models.py:33
+#: models.py:37
 msgid "Decimal number"
 msgstr ""
 
-#: models.py:34 models.py:95
+#: models.py:38 models.py:146
 msgid "E-mail address"
 msgstr ""
 
-#: models.py:35
+#: models.py:39
 msgid "Integer"
 msgstr ""
 
-#: models.py:36
+#: models.py:40
 msgid "IP address"
 msgstr ""
 
-#: models.py:37
+#: models.py:41
 msgid "Boolean or empty (Yes/No/Neither)"
 msgstr ""
 
-#: models.py:38
+#: models.py:42
 msgid "Text (multi-line)"
 msgstr ""
 
-#: models.py:40
+#: models.py:44
 msgid "URL / Link"
 msgstr ""
 
-#: models.py:53 templates/core/persons_accounts.html:36
+#: models.py:56 models.py:700
+msgid "Name"
+msgstr ""
+
+#: models.py:58
+msgid "Start date"
+msgstr ""
+
+#: models.py:59
+msgid "End date"
+msgstr ""
+
+#: models.py:77
+msgid "The start date must be earlier than the end date."
+msgstr ""
+
+#: models.py:84
+msgid "There is already a school term for this time or a part of this time."
+msgstr ""
+
+#: models.py:104 templates/core/person/accounts.html:36
 msgid "Person"
 msgstr ""
 
-#: models.py:56
+#: models.py:107
 msgid "Can view address"
 msgstr ""
 
-#: models.py:57
+#: models.py:108
 msgid "Can view contact details"
 msgstr ""
 
-#: models.py:58
+#: models.py:109
 msgid "Can view photo"
 msgstr ""
 
-#: models.py:59
+#: models.py:110
 msgid "Can view persons groups"
 msgstr ""
 
-#: models.py:60
+#: models.py:111
 msgid "Can view personal details"
 msgstr ""
 
-#: models.py:65
+#: models.py:116
 msgid "female"
 msgstr ""
 
-#: models.py:65
+#: models.py:116
 msgid "male"
 msgstr ""
 
-#: models.py:73
+#: models.py:124
 msgid "Linked user"
 msgstr ""
 
-#: models.py:75
+#: models.py:126
 msgid "Is person active?"
 msgstr ""
 
-#: models.py:77
+#: models.py:128
 msgid "First name"
 msgstr ""
 
-#: models.py:78
+#: models.py:129
 msgid "Last name"
 msgstr ""
 
-#: models.py:80
+#: models.py:131
 msgid "Additional name(s)"
 msgstr ""
 
-#: models.py:84 models.py:260
+#: models.py:135 models.py:332
 msgid "Short name"
 msgstr ""
 
-#: models.py:87
+#: models.py:138
 msgid "Street"
 msgstr ""
 
-#: models.py:88
+#: models.py:139
 msgid "Street number"
 msgstr ""
 
-#: models.py:89
+#: models.py:140
 msgid "Postal code"
 msgstr ""
 
-#: models.py:90
+#: models.py:141
 msgid "Place"
 msgstr ""
 
-#: models.py:92
+#: models.py:143
 msgid "Home phone"
 msgstr ""
 
-#: models.py:93
+#: models.py:144
 msgid "Mobile phone"
 msgstr ""
 
-#: models.py:97
+#: models.py:148
 msgid "Date of birth"
 msgstr ""
 
-#: models.py:98
+#: models.py:149
 msgid "Sex"
 msgstr ""
 
-#: models.py:100
+#: models.py:151
 msgid "Photo"
 msgstr ""
 
-#: models.py:105
+#: models.py:155 templates/core/person/full.html:129
 msgid "Guardians / Parents"
 msgstr ""
 
-#: models.py:112
+#: models.py:162
 msgid "Primary group"
 msgstr ""
 
-#: models.py:115 models.py:346 models.py:370 models.py:455 models.py:643
+#: models.py:165 models.py:423 models.py:447 models.py:532 models.py:720
+#: templates/core/person/full.html:112
 msgid "Description"
 msgstr ""
 
-#: models.py:233
+#: models.py:296
 msgid "Title of field"
 msgstr ""
 
-#: models.py:235
+#: models.py:298
 msgid "Type of field"
 msgstr ""
 
-#: models.py:239
+#: models.py:305
 msgid "Addtitional field for groups"
 msgstr ""
 
-#: models.py:240
+#: models.py:306
 msgid "Addtitional fields for groups"
 msgstr ""
 
-#: models.py:252
+#: models.py:318
 msgid "Group"
 msgstr ""
 
-#: models.py:254
+#: models.py:320
 msgid "Can assign child groups to groups"
 msgstr ""
 
-#: models.py:258
+#: models.py:330
 msgid "Long name"
 msgstr ""
 
-#: models.py:268 templates/core/group_full.html:37
+#: models.py:340 templates/core/group/full.html:65
 msgid "Members"
 msgstr ""
 
-#: models.py:271 templates/core/group_full.html:34
+#: models.py:343 templates/core/group/full.html:62
 msgid "Owners"
 msgstr ""
 
-#: models.py:278
+#: models.py:350 templates/core/group/full.html:54
 msgid "Parent groups"
 msgstr ""
 
-#: models.py:286
+#: models.py:358
 msgid "Type of group"
 msgstr ""
 
-#: models.py:290
-msgid "Additional fields"
-msgstr ""
-
-#: models.py:342
+#: models.py:419
 msgid "User"
 msgstr ""
 
-#: models.py:345 models.py:369 models.py:454
+#: models.py:422 models.py:446 models.py:531
 #: templates/core/announcement/list.html:18
 msgid "Title"
 msgstr ""
 
-#: models.py:348
+#: models.py:425
 msgid "Application"
 msgstr ""
 
-#: models.py:354
+#: models.py:431
 msgid "Activity"
 msgstr ""
 
-#: models.py:355
+#: models.py:432
 msgid "Activities"
 msgstr ""
 
-#: models.py:361
+#: models.py:438
 msgid "Sender"
 msgstr ""
 
-#: models.py:366
+#: models.py:443
 msgid "Recipient"
 msgstr ""
 
-#: models.py:371 models.py:624
+#: models.py:448 models.py:701
 msgid "Link"
 msgstr ""
 
-#: models.py:373
+#: models.py:450
 msgid "Read"
 msgstr ""
 
-#: models.py:374
+#: models.py:451
 msgid "Sent"
 msgstr ""
 
-#: models.py:387
+#: models.py:464
 msgid "Notification"
 msgstr ""
 
-#: models.py:388
+#: models.py:465
 msgid "Notifications"
 msgstr ""
 
-#: models.py:456
+#: models.py:533
 msgid "Link to detailed view"
 msgstr ""
 
-#: models.py:459
+#: models.py:536
 msgid "Date and time from when to show"
 msgstr ""
 
-#: models.py:462
+#: models.py:539
 msgid "Date and time until when to show"
 msgstr ""
 
-#: models.py:486
+#: models.py:563
 msgid "Announcement"
 msgstr ""
 
-#: models.py:524
+#: models.py:601
 msgid "Announcement recipient"
 msgstr ""
 
-#: models.py:525
+#: models.py:602
 msgid "Announcement recipients"
 msgstr ""
 
-#: models.py:575
+#: models.py:652
 msgid "Widget Title"
 msgstr ""
 
-#: models.py:576
+#: models.py:653
 msgid "Activate Widget"
 msgstr ""
 
-#: models.py:594
+#: models.py:671
 msgid "Dashboard Widget"
 msgstr ""
 
-#: models.py:595
+#: models.py:672
 msgid "Dashboard Widgets"
 msgstr ""
 
-#: models.py:601
+#: models.py:678
 msgid "Menu ID"
 msgstr ""
 
-#: models.py:613
+#: models.py:690
 msgid "Custom menu"
 msgstr ""
 
-#: models.py:614
+#: models.py:691
 msgid "Custom menus"
 msgstr ""
 
-#: models.py:621
+#: models.py:698
 msgid "Menu"
 msgstr ""
 
-#: models.py:623
-msgid "Name"
-msgstr ""
-
-#: models.py:625
+#: models.py:702
 msgid "Icon"
 msgstr ""
 
-#: models.py:631
+#: models.py:708
 msgid "Custom menu item"
 msgstr ""
 
-#: models.py:632
+#: models.py:709
 msgid "Custom menu items"
 msgstr ""
 
-#: models.py:642
+#: models.py:719
 msgid "Title of type"
 msgstr ""
 
-#: models.py:646
+#: models.py:726 templates/core/group/full.html:46
 msgid "Group type"
 msgstr ""
 
-#: models.py:647
-msgid "Group types"
-msgstr ""
-
-#: models.py:656
+#: models.py:736
 msgid "Can view system status"
 msgstr ""
 
-#: models.py:657
+#: models.py:737
 msgid "Can link persons to accounts"
 msgstr ""
 
-#: models.py:658
+#: models.py:738
 msgid "Can manage data"
 msgstr ""
 
-#: models.py:659
+#: models.py:739
 msgid "Can impersonate"
 msgstr ""
 
-#: models.py:660
+#: models.py:740
 msgid "Can use search"
 msgstr ""
 
-#: models.py:661
+#: models.py:741
 msgid "Can change site preferences"
 msgstr ""
 
-#: models.py:662
+#: models.py:742
 msgid "Can change person preferences"
 msgstr ""
 
-#: models.py:663
+#: models.py:743
 msgid "Can change group preferences"
 msgstr ""
 
-#: preferences.py:27
+#: preferences.py:24
+msgid "Authentication"
+msgstr ""
+
+#: preferences.py:33
 msgid "Site title"
 msgstr ""
 
-#: preferences.py:36
+#: preferences.py:42
 msgid "Site description"
 msgstr ""
 
-#: preferences.py:45
+#: preferences.py:51
 msgid "Primary colour"
 msgstr ""
 
-#: preferences.py:54
+#: preferences.py:60
 msgid "Secondary colour"
 msgstr ""
 
-#: preferences.py:62
+#: preferences.py:68
 msgid "Logo"
 msgstr ""
 
-#: preferences.py:70
+#: preferences.py:76
 msgid "Favicon"
 msgstr ""
 
-#: preferences.py:78
+#: preferences.py:84
 msgid "PWA-Icon"
 msgstr ""
 
-#: preferences.py:87
+#: preferences.py:93
 msgid "Mail out name"
 msgstr ""
 
-#: preferences.py:96
+#: preferences.py:102
 msgid "Mail out address"
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:112
 msgid "Link to privacy policy"
 msgstr ""
 
-#: preferences.py:116
+#: preferences.py:122
 msgid "Link to imprint"
 msgstr ""
 
-#: preferences.py:126
+#: preferences.py:132
 msgid "Name format for addressing"
 msgstr ""
 
-#: preferences.py:140
+#: preferences.py:146
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:156
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: preferences.py:159
+#: preferences.py:165
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: preferences.py:171
+#: preferences.py:177
 msgid "Display name of the school"
 msgstr ""
 
-#: preferences.py:180
+#: preferences.py:186
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: settings.py:276
+#: preferences.py:194
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: settings.py:300
 msgid "English"
 msgstr ""
 
-#: settings.py:277
+#: settings.py:301
 msgid "German"
 msgstr ""
 
-#: settings.py:278
+#: settings.py:302
 msgid "French"
 msgstr ""
 
-#: templates/403.html:10 templates/404.html:10 templates/500.html:10
+#: settings.py:303
+msgid "Norsk (bokmål)"
+msgstr ""
+
+#: tables.py:19 templates/core/announcement/list.html:36
+#: templates/core/group/full.html:23 templates/core/person/full.html:22
+msgid "Edit"
+msgstr ""
+
+#: tables.py:21 templates/core/announcement/list.html:22
+msgid "Actions"
+msgstr ""
+
+#: tables.py:56 tables.py:57 tables.py:71
+#: templates/core/announcement/list.html:42 templates/core/group/full.html:30
+#: templates/core/pages/delete.html:22 templates/core/person/full.html:29
+msgid "Delete"
+msgstr ""
+
+#: templates/403.html:14 templates/404.html:10 templates/500.html:10
 msgid "Error"
 msgstr ""
 
-#: templates/403.html:10
+#: templates/403.html:14
 msgid ""
 "You are not allowed to access the requested page or\n"
 "          object."
 msgstr ""
 
-#: templates/403.html:13 templates/404.html:17
+#: templates/403.html:19 templates/404.html:17
 msgid ""
 "\n"
-"            If you think this is an error in AlekSIS, please contact your "
-"site\n"
+"            If you think this is an error in AlekSIS, please contact your site\n"
 "            administrators:\n"
 "          "
 msgstr ""
@@ -659,8 +733,7 @@ msgstr ""
 #: templates/500.html:13
 msgid ""
 "\n"
-"            Your site administrators will automatically be notified about "
-"this\n"
+"            Your site administrators will automatically be notified about this\n"
 "            error. You can also contact them directly:\n"
 "          "
 msgstr ""
@@ -674,75 +747,17 @@ msgstr ""
 #: templates/503.html:13
 msgid ""
 "\n"
-"            This page is currently unavailable. If this error persists, "
-"contact your site administrators:\n"
+"            This page is currently unavailable. If this error persists, contact your site administrators:\n"
 "          "
 msgstr ""
 
-#: templates/core/about.html:6 templates/core/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: templates/core/about.html:7
-msgid "AlekSIS – The Free School Information System"
-msgstr ""
-
-#: templates/core/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS, a web-based school "
-"information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of "
-"educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:25
-msgid "Website of AlekSIS"
+#: templates/core/additional_field/edit.html:6
+#: templates/core/additional_field/edit.html:7
+msgid "Edit additional field"
 msgstr ""
 
-#: templates/core/about.html:26
-msgid "Source code"
-msgstr ""
-
-#: templates/core/about.html:35
-msgid "Licence information"
-msgstr ""
-
-#: templates/core/about.html:37
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under "
-"the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the "
-"respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:45
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: templates/core/about.html:46
-msgid "Other Licence"
-msgstr ""
-
-#: templates/core/about.html:50
-msgid "Full licence text"
-msgstr ""
-
-#: templates/core/about.html:51
-msgid "More information about the EUPL"
-msgstr ""
-
-#: templates/core/about.html:90
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
+#: templates/core/additional_field/list.html:14
+msgid "Create additional field"
 msgstr ""
 
 #: templates/core/announcement/form.html:10
@@ -775,163 +790,134 @@ msgstr ""
 msgid "Recipients"
 msgstr ""
 
-#: templates/core/announcement/list.html:22
-msgid "Actions"
-msgstr ""
-
-#: templates/core/announcement/list.html:36 templates/core/group_full.html:22
-#: templates/core/person_full.html:21
-msgid "Edit"
-msgstr ""
-
-#: templates/core/announcement/list.html:42
-msgid "Delete"
-msgstr ""
-
 #: templates/core/announcement/list.html:50
 msgid "There are no announcements."
 msgstr ""
 
-#: templates/core/announcements.html:9 templates/core/announcements.html:36
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:13
-#, python-format
-msgid ""
-"\n"
-"              Valid from %(from)s until %(until)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:40
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s – %(until)s\n"
-"            "
-msgstr ""
-
 #: templates/core/base.html:54
 msgid "Logged in as"
 msgstr ""
 
-#: templates/core/base.html:76 templates/search/search.html:7
-#: templates/search/search.html:22
-msgid "Search"
-msgstr ""
-
-#: templates/core/base.html:148
+#: templates/core/base.html:147
 msgid "About AlekSIS — The Free School Information System"
 msgstr ""
 
-#: templates/core/base.html:156
+#: templates/core/base.html:155
 msgid "Impress"
 msgstr ""
 
-#: templates/core/base.html:164
+#: templates/core/base.html:163
 msgid "Privacy Policy"
 msgstr ""
 
-#: templates/core/base_print.html:62
+#: templates/core/base_print.html:64
 msgid "Powered by AlekSIS"
 msgstr ""
 
-#: templates/core/edit_group.html:6 templates/core/edit_group.html:7
-msgid "Edit group"
-msgstr ""
-
-#: templates/core/edit_person.html:8 templates/core/edit_person.html:9
-msgid "Edit person"
-msgstr ""
-
-#: templates/core/group_full.html:28 templates/core/person_full.html:28
-msgid "Change preferences"
-msgstr ""
-
-#: templates/core/groups.html:14
-msgid "Create group"
-msgstr ""
-
-#: templates/core/groups_child_groups.html:18
+#: templates/core/group/child_groups.html:18
 msgid ""
 "\n"
-"          You can use this to assign child groups to groups. Please use the "
-"filters below to select groups you want to\n"
+"          You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n"
 "          change and click \"Next\".\n"
 "        "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:31
+#: templates/core/group/child_groups.html:31
 msgid "Update selection"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:35
+#: templates/core/group/child_groups.html:35
 msgid "Clear all filters"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:39
+#: templates/core/group/child_groups.html:39
 msgid "Currently selected groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:52
+#: templates/core/group/child_groups.html:52
 msgid "Start assigning child groups for this groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:61
+#: templates/core/group/child_groups.html:61
 msgid ""
 "\n"
 "            Please select some groups in order to go on with assigning.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:72
+#: templates/core/group/child_groups.html:72
 msgid "Current group:"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:78
+#: templates/core/group/child_groups.html:78
 msgid "Please be careful!"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:79
+#: templates/core/group/child_groups.html:79
 msgid ""
 "\n"
-"            If you click \"Back\" or \"Next\" the current group assignments "
-"are not saved.\n"
-"            If you click \"Save\", you will overwrite all existing child "
-"group relations for this group with what you\n"
+"            If you click \"Back\" or \"Next\" the current group assignments are not saved.\n"
+"            If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n"
 "            selected on this page.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:93
-#: templates/core/groups_child_groups.html:128
+#: templates/core/group/child_groups.html:93
+#: templates/core/group/child_groups.html:128
 #: templates/two_factor/_wizard_actions.html:15
 #: templates/two_factor/_wizard_actions.html:20
 msgid "Back"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:99
-#: templates/core/groups_child_groups.html:134
+#: templates/core/group/child_groups.html:99
+#: templates/core/group/child_groups.html:134
 #: templates/two_factor/_wizard_actions.html:26
 msgid "Next"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:106
-#: templates/core/groups_child_groups.html:141
-#: templates/core/save_button.html:3
+#: templates/core/group/child_groups.html:106
+#: templates/core/group/child_groups.html:141
+#: templates/core/partials/save_button.html:3
 msgid "Save"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:112
-#: templates/core/groups_child_groups.html:147
+#: templates/core/group/child_groups.html:112
+#: templates/core/group/child_groups.html:147
 msgid "Save and next"
 msgstr ""
 
+#: templates/core/group/edit.html:6 templates/core/group/edit.html:7
+msgid "Edit group"
+msgstr ""
+
+#: templates/core/group/full.html:37 templates/core/person/full.html:36
+msgid "Change preferences"
+msgstr ""
+
+#: templates/core/group/list.html:14
+msgid "Create group"
+msgstr ""
+
+#: templates/core/group/list.html:17
+msgid "Filter groups"
+msgstr ""
+
+#: templates/core/group/list.html:24 templates/core/person/list.html:28
+msgid "Clear"
+msgstr ""
+
+#: templates/core/group/list.html:28
+msgid "Selected groups"
+msgstr ""
+
+#: templates/core/group_type/edit.html:6 templates/core/group_type/edit.html:7
+msgid "Edit group type"
+msgstr ""
+
+#: templates/core/group_type/list.html:14
+msgid "Create group type"
+msgstr ""
+
 #: templates/core/index.html:4
 msgid "Home"
 msgstr ""
@@ -956,105 +942,328 @@ msgstr ""
 msgid "No notifications available yet."
 msgstr ""
 
-#: templates/core/no_person.html:12
+#: templates/core/pages/about.html:6 templates/core/pages/about.html:15
+msgid "About AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:7
+msgid "AlekSIS – The Free School Information System"
+msgstr ""
+
+#: templates/core/pages/about.html:17
 msgid ""
 "\n"
-"            Your administrator account is not linked to any person. "
-"Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
+"              This platform is powered by AlekSIS, a web-based school information system (SIS) which can be used\n"
+"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
+"              can be used by anyone.\n"
+"            "
 msgstr ""
 
-#: templates/core/no_person.html:19
+#: templates/core/pages/about.html:25
+msgid "Website of AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:26
+msgid "Source code"
+msgstr ""
+
+#: templates/core/pages/about.html:35
+msgid "Licence information"
+msgstr ""
+
+#: templates/core/pages/about.html:37
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
+"              information from third-party apps, if installed, refer to the respective components below. The\n"
+"              licences are marked like this:\n"
+"            "
 msgstr ""
 
-#: templates/core/person_full.html:34
-msgid "Contact details"
+#: templates/core/pages/about.html:45
+msgid "Free/Open Source Licence"
 msgstr ""
 
-#: templates/core/persons_accounts.html:7
-#: templates/core/persons_accounts.html:9
-msgid "Link persons to accounts"
+#: templates/core/pages/about.html:46
+msgid "Other Licence"
+msgstr ""
+
+#: templates/core/pages/about.html:50
+msgid "Full licence text"
+msgstr ""
+
+#: templates/core/pages/about.html:51
+msgid "More information about the EUPL"
 msgstr ""
 
-#: templates/core/persons_accounts.html:16
+#: templates/core/pages/about.html:90
+#, python-format
 msgid ""
 "\n"
-"        You can use this form to assign user accounts to persons. Use the\n"
-"        dropdowns to select existing accounts; use the text fields to create "
-"new\n"
-"        accounts on-the-fly. The latter will create a new account with the\n"
-"        entered username and copy all other details from the person.\n"
-"      "
+"                    This app is licenced under %(licence)s.\n"
+"                  "
 msgstr ""
 
-#: templates/core/persons_accounts.html:31
-#: templates/core/persons_accounts.html:55
-msgid "Update"
+#: templates/core/pages/delete.html:6
+#, python-format
+msgid "Delete %(object_name)s"
 msgstr ""
 
-#: templates/core/persons_accounts.html:37
-msgid "Existing account"
+#: templates/core/pages/delete.html:13
+#, python-format
+msgid ""
+"\n"
+"      Do you really want to delete the %(object_name)s \"%(object)s\"?\n"
+"    "
 msgstr ""
 
-#: templates/core/persons_accounts.html:38
-msgid "New account"
+#: templates/core/pages/offline.html:6
+msgid ""
+"No internet\n"
+"    connection."
+msgstr ""
+
+#: templates/core/pages/offline.html:10
+msgid ""
+"\n"
+"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
+"      administrators:\n"
+"    "
+msgstr ""
+
+#: templates/core/pages/progress.html:27
+msgid ""
+"\n"
+"              Without activated JavaScript the progress status can't be updated.\n"
+"            "
+msgstr ""
+
+#: templates/core/pages/progress.html:47
+#: templates/two_factor/core/otp_required.html:19
+msgid "Go back"
 msgstr ""
 
-#: templates/core/system_status.html:12
+#: templates/core/pages/system_status.html:12
 msgid "System checks"
 msgstr ""
 
-#: templates/core/system_status.html:21
+#: templates/core/pages/system_status.html:21
 msgid "Maintenance mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:23
+#: templates/core/pages/system_status.html:23
 msgid ""
 "\n"
-"                Only admin and visitors from internal IPs can access "
-"thesite.\n"
+"                Only admin and visitors from internal IPs can access thesite.\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:34
+#: templates/core/pages/system_status.html:34
 msgid "Maintenance mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:35
+#: templates/core/pages/system_status.html:35
 msgid "Everyone can access the site."
 msgstr ""
 
-#: templates/core/system_status.html:45
+#: templates/core/pages/system_status.html:45
 msgid "Debug mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:47
+#: templates/core/pages/system_status.html:47
 msgid ""
 "\n"
-"                The web server throws back debug information on errors. Do "
-"not use in production!\n"
+"                The web server throws back debug information on errors. Do not use in production!\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:54
+#: templates/core/pages/system_status.html:54
 msgid "Debug mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:56
+#: templates/core/pages/system_status.html:56
 msgid ""
 "\n"
-"                Debug mode is disabled. Default error pages are displayed on "
-"errors.\n"
+"                Debug mode is disabled. Default error pages are displayed on errors.\n"
 "              "
 msgstr ""
 
+#: templates/core/pages/system_status.html:69
+msgid "System health checks"
+msgstr ""
+
+#: templates/core/pages/system_status.html:75
+msgid "Service"
+msgstr ""
+
+#: templates/core/pages/system_status.html:76
+#: templates/core/pages/system_status.html:115
+msgid "Status"
+msgstr ""
+
+#: templates/core/pages/system_status.html:77
+msgid "Time taken"
+msgstr ""
+
+#: templates/core/pages/system_status.html:96
+msgid "seconds"
+msgstr ""
+
+#: templates/core/pages/system_status.html:107
+msgid "Celery task results"
+msgstr ""
+
+#: templates/core/pages/system_status.html:112
+msgid "Task"
+msgstr ""
+
+#: templates/core/pages/system_status.html:113
+msgid "ID"
+msgstr ""
+
+#: templates/core/pages/system_status.html:114
+msgid "Date done"
+msgstr ""
+
+#: templates/core/partials/announcements.html:9
+#: templates/core/partials/announcements.html:36
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:13
+#, python-format
+msgid ""
+"\n"
+"              Valid from %(from)s until %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:40
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s – %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:10
+#, python-format
+msgid ""
+"\n"
+"              Created by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:14
+#: templates/core/partials/crud_events.html:22
+#: templates/core/partials/crud_events.html:26
+#, python-format
+msgid ""
+"\n"
+"              Updated by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:18
+#, python-format
+msgid ""
+"\n"
+"              Deleted by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/language_form.html:16
+msgid "Language"
+msgstr ""
+
+#: templates/core/partials/language_form.html:28
+msgid "Select language"
+msgstr ""
+
+#: templates/core/partials/no_person.html:12
+msgid ""
+"\n"
+"            Your administrator account is not linked to any person. Therefore,\n"
+"            a dummy person has been linked to your account.\n"
+"          "
+msgstr ""
+
+#: templates/core/partials/no_person.html:19
+msgid ""
+"\n"
+"            Your user account is not linked to a person. This means you\n"
+"            cannot access any school-related information. Please contact\n"
+"            the managers of AlekSIS at your school.\n"
+"          "
+msgstr ""
+
+#: templates/core/person/accounts.html:7 templates/core/person/accounts.html:9
+msgid "Link persons to accounts"
+msgstr ""
+
+#: templates/core/person/accounts.html:16
+msgid ""
+"\n"
+"        You can use this form to assign user accounts to persons. Use the\n"
+"        dropdowns to select existing accounts; use the text fields to create new\n"
+"        accounts on-the-fly. The latter will create a new account with the\n"
+"        entered username and copy all other details from the person.\n"
+"      "
+msgstr ""
+
+#: templates/core/person/accounts.html:31
+#: templates/core/person/accounts.html:55
+msgid "Update"
+msgstr ""
+
+#: templates/core/person/accounts.html:37
+msgid "Existing account"
+msgstr ""
+
+#: templates/core/person/accounts.html:38
+msgid "New account"
+msgstr ""
+
+#: templates/core/person/edit.html:11 templates/core/person/edit.html:12
+msgid "Edit person"
+msgstr ""
+
+#: templates/core/person/full.html:42
+msgid "Contact details"
+msgstr ""
+
+#: templates/core/person/full.html:122
+msgid "Children"
+msgstr ""
+
+#: templates/core/person/list.html:17
+msgid "Create person"
+msgstr ""
+
+#: templates/core/person/list.html:21
+msgid "Filter persons"
+msgstr ""
+
+#: templates/core/person/list.html:32
+msgid "Selected persons"
+msgstr ""
+
+#: templates/core/school_term/create.html:6
+#: templates/core/school_term/create.html:7
+#: templates/core/school_term/list.html:14
+msgid "Create school term"
+msgstr ""
+
+#: templates/core/school_term/edit.html:6
+#: templates/core/school_term/edit.html:7
+msgid "Edit school term"
+msgstr ""
+
 #: templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -1080,23 +1289,6 @@ msgstr ""
 msgid "Impersonate user"
 msgstr ""
 
-#: templates/offline.html:6
-msgid ""
-"No internet\n"
-"    connection."
-msgstr ""
-
-#: templates/offline.html:10
-msgid ""
-"\n"
-"      There was an error accessing this page. You probably don't have an "
-"internet connection. Check to see if your WiFi\n"
-"      or mobile data is turned on and try again. If you think you are "
-"connected, please contact the system\n"
-"      administrators:\n"
-"    "
-msgstr ""
-
 #: templates/search/search.html:8
 msgid "Global Search"
 msgstr ""
@@ -1121,28 +1313,43 @@ msgstr ""
 msgid "New notification for"
 msgstr ""
 
-#: templates/templated_email/notification.email:7
-msgid "Dear"
+#: templates/templated_email/notification.email:6
+#: templates/templated_email/notification.email:27
+#, python-format
+msgid "Dear %(notification_user)s,"
 msgstr ""
 
 #: templates/templated_email/notification.email:8
+#: templates/templated_email/notification.email:29
 msgid "we got a new notification for you:"
 msgstr ""
 
-#: templates/templated_email/notification.email:12
+#: templates/templated_email/notification.email:15
+#: templates/templated_email/notification.email:35
 msgid "More information"
 msgstr ""
 
-#: templates/templated_email/notification.email:16
+#: templates/templated_email/notification.email:18
 #, python-format
 msgid ""
 "\n"
-"    <p>By %(trans_sender)s at %(trans_created_at)s</p>\n"
-"\n"
-"    <i>Your AlekSIS team</i>\n"
+"        Sent by %(trans_sender)s at %(trans_created_at)s\n"
 "    "
 msgstr ""
 
+#: templates/templated_email/notification.email:22
+#: templates/templated_email/notification.email:46
+msgid "Your AlekSIS team"
+msgstr ""
+
+#: templates/templated_email/notification.email:40
+#, python-format
+msgid ""
+"\n"
+"            Sent by %(trans_sender)s at %(trans_created_at)s\n"
+"        "
+msgstr ""
+
 #: templates/two_factor/_base_focus.html:6
 #: templates/two_factor/core/otp_required.html:22
 #: templates/two_factor/core/setup.html:5
@@ -1165,10 +1372,8 @@ msgid ""
 "\n"
 "        Backup tokens can be used when your primary and backup\n"
 "        phone numbers aren't available. The backup tokens below can be used\n"
-"        for login verification. If you've used up all your backup tokens, "
-"you\n"
-"        can generate a new set of backup tokens. Only the backup tokens "
-"shown\n"
+"        for login verification. If you've used up all your backup tokens, you\n"
+"        can generate a new set of backup tokens. Only the backup tokens shown\n"
 "        below will be valid.\n"
 "      "
 msgstr ""
@@ -1193,52 +1398,58 @@ msgid "Generate Tokens"
 msgstr ""
 
 #: templates/two_factor/core/login.html:16
-msgid ""
-"You have no permission to view this page. Please login with an other account."
+msgid "You have no permission to view this page. Please login with an other account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:25
+#: templates/two_factor/core/login.html:24
 msgid "Please login to see this page."
 msgstr ""
 
-#: templates/two_factor/core/login.html:28
+#: templates/two_factor/core/login.html:30
+msgid "Login with username and password"
+msgstr ""
+
+#: templates/two_factor/core/login.html:40
 msgid ""
 "We are calling your phone right now, please enter the\n"
 "              digits you hear."
 msgstr ""
 
-#: templates/two_factor/core/login.html:31
+#: templates/two_factor/core/login.html:43
 msgid ""
 "We sent you a text message, please enter the tokens we\n"
 "              sent."
 msgstr ""
 
-#: templates/two_factor/core/login.html:34
+#: templates/two_factor/core/login.html:46
 msgid ""
 "Please enter the tokens generated by your token\n"
 "              generator."
 msgstr ""
 
-#: templates/two_factor/core/login.html:38
+#: templates/two_factor/core/login.html:50
 msgid ""
 "Use this form for entering backup tokens for logging in.\n"
-"            These tokens have been generated for you to print and keep safe. "
-"Please\n"
+"            These tokens have been generated for you to print and keep safe. Please\n"
 "            enter one of these backup tokens to login to your account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:56
+#: templates/two_factor/core/login.html:68
 msgid "Or, alternatively, use one of your backup phones:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:66
+#: templates/two_factor/core/login.html:78
 msgid "As a last resort, you can use a backup token:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:69
+#: templates/two_factor/core/login.html:81
 msgid "Use Backup Token"
 msgstr ""
 
+#: templates/two_factor/core/login.html:93
+msgid "Use alternative login options"
+msgstr ""
+
 #: templates/two_factor/core/otp_required.html:9
 msgid "Permission Denied"
 msgstr ""
@@ -1246,8 +1457,7 @@ msgstr ""
 #: templates/two_factor/core/otp_required.html:10
 msgid ""
 "The page you requested, enforces users to verify using\n"
-"          two-factor authentication for security reasons. You need to enable "
-"these\n"
+"          two-factor authentication for security reasons. You need to enable these\n"
 "          security features in order to access this page."
 msgstr ""
 
@@ -1258,10 +1468,6 @@ msgid ""
 "          security."
 msgstr ""
 
-#: templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr ""
-
 #: templates/two_factor/core/phone_register.html:5
 #: templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -1324,8 +1530,7 @@ msgstr ""
 #: templates/two_factor/core/setup.html:50
 msgid ""
 "\n"
-"            We are calling your phone right now, please enter the digits you "
-"hear.\n"
+"            We are calling your phone right now, please enter the digits you hear.\n"
 "          "
 msgstr ""
 
@@ -1339,12 +1544,9 @@ msgstr ""
 #: templates/two_factor/core/setup.html:63
 msgid ""
 "\n"
-"          We've encountered an issue with the selected authentication "
-"method. Please\n"
-"          go back and verify that you entered your information correctly, "
-"try\n"
-"          again, or use a different authentication method instead. If the "
-"issue\n"
+"          We've encountered an issue with the selected authentication method. Please\n"
+"          go back and verify that you entered your information correctly, try\n"
+"          again, or use a different authentication method instead. If the issue\n"
 "          persists, contact the site administrator.\n"
 "        "
 msgstr ""
@@ -1366,8 +1568,7 @@ msgstr ""
 #: templates/two_factor/core/setup_complete.html:14
 msgid ""
 "\n"
-"        Congratulations, you've successfully enabled two-factor "
-"authentication.\n"
+"        Congratulations, you've successfully enabled two-factor authentication.\n"
 "      "
 msgstr ""
 
@@ -1385,8 +1586,7 @@ msgstr ""
 msgid ""
 "\n"
 "          However, it might happen that you don't have access to\n"
-"          your primary token device. To enable account recovery, generate "
-"backup codes\n"
+"          your primary token device. To enable account recovery, generate backup codes\n"
 "          or add a phone number.\n"
 "        "
 msgstr ""
@@ -1404,9 +1604,7 @@ msgid "Disable Two-Factor Authentication"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:12
-msgid ""
-"You are about to disable two-factor authentication. This weakens your "
-"account security, are you sure?"
+msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:26
@@ -1497,26 +1695,58 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: views.py:212
+#: views.py:122
+msgid "The school term has been created."
+msgstr ""
+
+#: views.py:133
+msgid "The school term has been saved."
+msgstr ""
+
+#: views.py:273
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: views.py:240
+#: views.py:309
 msgid "The person has been saved."
 msgstr ""
 
-#: views.py:276
+#: views.py:346
 msgid "The group has been saved."
 msgstr ""
 
-#: views.py:348
+#: views.py:434
 msgid "The announcement has been saved."
 msgstr ""
 
-#: views.py:364
+#: views.py:450
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: views.py:435
+#: views.py:521
 msgid "The preferences have been saved successfully."
 msgstr ""
+
+#: views.py:544
+msgid "The person has been deleted."
+msgstr ""
+
+#: views.py:557
+msgid "The group has been deleted."
+msgstr ""
+
+#: views.py:588
+msgid "The additional_field has been saved."
+msgstr ""
+
+#: views.py:622
+msgid "The additional field has been deleted."
+msgstr ""
+
+#: views.py:646
+msgid "The group type has been saved."
+msgstr ""
+
+#: views.py:676
+msgid "The group type has been deleted."
+msgstr ""
diff --git a/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po b/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po
index 28f74abb7354ad25df12874286481ef1858f96a0..c48da556b093acc67242995ed684ce8bfa609426 100644
--- a/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-28 13:31+0000\n"
+"POT-Creation-Date: 2020-08-02 16:29+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"
diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po
index d8fe1369884426025d603c428f4a4eb21b13d313..34b6ad53af3d4ef208eae1853e96dfc2e0116938 100644
--- a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po
@@ -7,9 +7,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-04 15:39+0200\n"
-"PO-Revision-Date: 2020-05-04 15:09+0000\n"
-"Last-Translator: Anonymous <noreply@weblate.org>\n"
+"POT-Creation-Date: 2020-08-02 16:29+0200\n"
+"PO-Revision-Date: 2020-08-02 14:44+0000\n"
+"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis/"
 "de/>\n"
 "Language: de_DE\n"
@@ -19,11 +19,23 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.0.1\n"
 
+#: filters.py:37 templates/core/base.html:77 templates/core/group/list.html:20
+#: templates/core/person/list.html:24 templates/search/search.html:7
+#: templates/search/search.html:22
+msgid "Search"
+msgstr "Suchen"
+
+#: filters.py:53
+msgid "Search by name"
+msgstr "Nach Namen suchen"
+
+#: filters.py:65
+msgid "Search by contact details"
+msgstr "Nach Kontaktdetails suchen"
+
 #: forms.py:46
 msgid "You cannot set a new username when also selecting an existing user."
-msgstr ""
-"Sie können keine neuen Benutzer erstellen, wenn Sie gleichzeitig einen "
-"existierenden Benutzer auswählen."
+msgstr "Sie können keine neuen Benutzer erstellen, wenn Sie gleichzeitig einen existierenden Benutzer auswählen."
 
 #: forms.py:50
 msgid "This username is already in use."
@@ -45,68 +57,71 @@ msgstr "Kontaktdaten"
 msgid "Advanced personal data"
 msgstr "Zusätzliche persönliche Daten"
 
-#: forms.py:116
+#: forms.py:114
 msgid "New user"
 msgstr "Neuer Benutzer"
 
-#: forms.py:116
+#: forms.py:114
 msgid "Create a new account"
 msgstr "Neues Benutzerkonto erstellen"
 
-#: forms.py:128
+#: forms.py:126 models.py:91
+msgid "School term"
+msgstr "Schuljahr"
+
+#: forms.py:127
 msgid "Common data"
 msgstr "Allgemeine Daten"
 
-#: forms.py:129 forms.py:169 menus.py:141 models.py:54
-#: templates/core/persons.html:8 templates/core/persons.html:9
+#: forms.py:128 forms.py:170 menus.py:152 models.py:105
+#: templates/core/person/list.html:8 templates/core/person/list.html:9
 msgid "Persons"
 msgstr "Personen"
 
-#: forms.py:162 forms.py:165 models.py:31
+#: forms.py:129
+msgid "Additional data"
+msgstr "Zusätzliche Datne"
+
+#: forms.py:163 forms.py:166 models.py:35
 msgid "Date"
 msgstr "Datum"
 
-#: forms.py:163 forms.py:166 models.py:39
+#: forms.py:164 forms.py:167 models.py:43
 msgid "Time"
 msgstr "Zeit"
 
-#: forms.py:171 menus.py:149 models.py:253 templates/core/groups.html:8
-#: templates/core/groups.html:9 templates/core/person_full.html:106
+#: forms.py:172 menus.py:160 models.py:319 templates/core/group/list.html:8
+#: templates/core/group/list.html:9 templates/core/person/full.html:136
 msgid "Groups"
 msgstr "Gruppen"
 
-#: forms.py:175
+#: forms.py:176
 msgid "From when until when should the announcement be displayed?"
 msgstr "Von wann bis wann soll die Ankündigung angezeigt werden?"
 
-#: forms.py:178
+#: forms.py:179
 msgid "Who should see the announcement?"
 msgstr "Wer soll die Ankündigung sehen?"
 
-#: forms.py:179
+#: forms.py:180
 msgid "Write your announcement:"
 msgstr "Schreiben Sie ihre Ankündigung:"
 
-#: forms.py:216
-msgid ""
-"You are not allowed to create announcements which are only valid in the past."
-msgstr ""
-"Sie dürfen keine Ankündigungen erstellen, die nur für die Vergangenheit "
-"gültig sind."
+#: forms.py:219
+msgid "You are not allowed to create announcements which are only valid in the past."
+msgstr "Sie dürfen keine Ankündigungen erstellen, die nur für die Vergangenheit gültig sind."
 
-#: forms.py:220
+#: forms.py:223
 msgid "The from date and time must be earlier then the until date and time."
-msgstr ""
-"Das Startdatum und die Startzeit müssen vor dem Enddatum und der Endzeit "
-"sein."
+msgstr "Das Startdatum und die Startzeit müssen vor dem Enddatum und der Endzeit sein."
 
-#: forms.py:229
+#: forms.py:232
 msgid "You need at least one recipient."
 msgstr "Sie benötigen mindestens einen Empfänger."
 
 #: menus.py:7 templates/two_factor/core/login.html:6
 #: templates/two_factor/core/login.html:10
-#: templates/two_factor/core/login.html:73
+#: templates/two_factor/core/login.html:86
 msgid "Login"
 msgstr "Anmelden"
 
@@ -142,493 +157,548 @@ msgstr "Einstellungen"
 msgid "Admin"
 msgstr "Admin"
 
-#: menus.py:75 models.py:487 templates/core/announcement/list.html:7
+#: menus.py:75 models.py:564 templates/core/announcement/list.html:7
 #: templates/core/announcement/list.html:8
 msgid "Announcements"
 msgstr "Ankündigungen"
 
-#: menus.py:86 templates/core/data_management.html:6
-#: templates/core/data_management.html:7
+#: menus.py:86 models.py:92 templates/core/school_term/list.html:8
+#: templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr "Schuljahre"
+
+#: menus.py:97 templates/core/management/data_management.html:6
+#: templates/core/management/data_management.html:7
 msgid "Data management"
 msgstr "Datenverwaltung"
 
-#: menus.py:94 templates/core/system_status.html:5
-#: templates/core/system_status.html:7
+#: menus.py:105 templates/core/pages/system_status.html:5
+#: templates/core/pages/system_status.html:7
 msgid "System status"
 msgstr "Systemstatus"
 
-#: menus.py:105
+#: menus.py:116
 msgid "Impersonation"
 msgstr "Verkleidung"
 
-#: menus.py:113
+#: menus.py:124
 msgid "Configuration"
 msgstr "Konfiguration"
 
-#: menus.py:124
+#: menus.py:135
 msgid "Backend Admin"
 msgstr "Backend-Administration"
 
-#: menus.py:132
+#: menus.py:143
 msgid "People"
 msgstr "Leute"
 
-#: menus.py:157
+#: menus.py:168 models.py:727 templates/core/group_type/list.html:8
+#: templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr "Gruppentypen"
+
+#: menus.py:179
 msgid "Persons and accounts"
 msgstr "Personen und Konten"
 
-#: menus.py:168
+#: menus.py:190
 msgid "Groups and child groups"
 msgstr "Gruppen und Kindgruppen"
 
-#: menus.py:183 templates/core/groups_child_groups.html:7
-#: templates/core/groups_child_groups.html:9
+#: menus.py:201 models.py:363 templates/core/additional_field/list.html:8
+#: templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr "Zusätzliche Felder"
+
+#: menus.py:216 templates/core/group/child_groups.html:7
+#: templates/core/group/child_groups.html:9
 msgid "Assign child groups to groups"
 msgstr "Kindgruppen zu Gruppen zuordnen"
 
-#: models.py:29
+#: mixins.py:406
+msgid "Linked school term"
+msgstr "Zugeordnetes Schuljahr"
+
+#: models.py:33
 msgid "Boolean (Yes/No)"
 msgstr "Boolean (Ja/Nein)"
 
-#: models.py:30
+#: models.py:34
 msgid "Text (one line)"
 msgstr "Text (eine Zeile)"
 
-#: models.py:32
+#: models.py:36
 msgid "Date and time"
 msgstr "Datum und Uhrzeit"
 
-#: models.py:33
+#: models.py:37
 msgid "Decimal number"
 msgstr "Dezimalzahl"
 
-#: models.py:34 models.py:95
+#: models.py:38 models.py:146
 msgid "E-mail address"
 msgstr "E-Mail-Adresse"
 
-#: models.py:35
+#: models.py:39
 msgid "Integer"
 msgstr "Ganze Zahl"
 
-#: models.py:36
+#: models.py:40
 msgid "IP address"
 msgstr "IP-Adresse"
 
-#: models.py:37
+#: models.py:41
 msgid "Boolean or empty (Yes/No/Neither)"
 msgstr "Boolean oder leer (Ja/Nein/weder)"
 
-#: models.py:38
+#: models.py:42
 msgid "Text (multi-line)"
 msgstr "Text (mehrzeilig)"
 
-#: models.py:40
+#: models.py:44
 msgid "URL / Link"
 msgstr "URL / Link"
 
-#: models.py:53 templates/core/persons_accounts.html:36
+#: models.py:56 models.py:700
+msgid "Name"
+msgstr "Name"
+
+#: models.py:58
+msgid "Start date"
+msgstr "Startdatum"
+
+#: models.py:59
+msgid "End date"
+msgstr "Enddatum"
+
+#: models.py:77
+msgid "The start date must be earlier than the end date."
+msgstr "Das Startdatum muss vor dem Enddatum liegen."
+
+#: models.py:84
+msgid "There is already a school term for this time or a part of this time."
+msgstr ""
+"Es gibt bereits ein Schuljahr für diesen Zeitraum oder einen Teilzeitraum."
+
+#: models.py:104 templates/core/person/accounts.html:36
 msgid "Person"
 msgstr "Person"
 
-#: models.py:56
+#: models.py:107
 msgid "Can view address"
 msgstr "Kann Adresse sehen"
 
-#: models.py:57
+#: models.py:108
 msgid "Can view contact details"
 msgstr "Kann Kontaktdetails sehen"
 
-#: models.py:58
+#: models.py:109
 msgid "Can view photo"
 msgstr "Kann Foto sehen"
 
-#: models.py:59
+#: models.py:110
 msgid "Can view persons groups"
 msgstr "Kann Gruppen einer Person sehen"
 
-#: models.py:60
+#: models.py:111
 msgid "Can view personal details"
 msgstr "Kann persönliche Daten sehen"
 
-#: models.py:65
+#: models.py:116
 msgid "female"
 msgstr "weiblich"
 
-#: models.py:65
+#: models.py:116
 msgid "male"
 msgstr "männlich"
 
-#: models.py:73
+#: models.py:124
 msgid "Linked user"
 msgstr "Verknüpfter Benutzer"
 
-#: models.py:75
+#: models.py:126
 msgid "Is person active?"
 msgstr "Ist die Person aktiv?"
 
-#: models.py:77
+#: models.py:128
 msgid "First name"
 msgstr "Vorname"
 
-#: models.py:78
+#: models.py:129
 msgid "Last name"
 msgstr "Nachname"
 
-#: models.py:80
+#: models.py:131
 msgid "Additional name(s)"
 msgstr "Zusätzliche Namen"
 
-#: models.py:84 models.py:260
+#: models.py:135 models.py:332
 msgid "Short name"
 msgstr "Kurzname"
 
-#: models.py:87
+#: models.py:138
 msgid "Street"
 msgstr "Straße"
 
-#: models.py:88
+#: models.py:139
 msgid "Street number"
 msgstr "Hausnummer"
 
-#: models.py:89
+#: models.py:140
 msgid "Postal code"
 msgstr "Postleitzahl"
 
-#: models.py:90
+#: models.py:141
 msgid "Place"
 msgstr "Ort"
 
-#: models.py:92
+#: models.py:143
 msgid "Home phone"
 msgstr "Festnetz"
 
-#: models.py:93
+#: models.py:144
 msgid "Mobile phone"
 msgstr "Handy"
 
-#: models.py:97
+#: models.py:148
 msgid "Date of birth"
 msgstr "Geburtsdatum"
 
-#: models.py:98
+#: models.py:149
 msgid "Sex"
 msgstr "Geschlecht"
 
-#: models.py:100
+#: models.py:151
 msgid "Photo"
 msgstr "Foto"
 
-#: models.py:105
+#: models.py:155 templates/core/person/full.html:129
 msgid "Guardians / Parents"
 msgstr "Erziehungsberechtigte / Eltern"
 
-#: models.py:112
+#: models.py:162
 msgid "Primary group"
 msgstr "Primärgruppe"
 
-#: models.py:115 models.py:346 models.py:370 models.py:455 models.py:643
+#: models.py:165 models.py:423 models.py:447 models.py:532 models.py:720
+#: templates/core/person/full.html:112
 msgid "Description"
 msgstr "Beschreibung"
 
-#: models.py:233
+#: models.py:296
 msgid "Title of field"
 msgstr "Feldtitel"
 
-#: models.py:235
+#: models.py:298
 msgid "Type of field"
 msgstr "Feldtyp"
 
-#: models.py:239
+#: models.py:305
 msgid "Addtitional field for groups"
 msgstr "Zusätzliche Felder für Gruppen"
 
-#: models.py:240
+#: models.py:306
 msgid "Addtitional fields for groups"
 msgstr "Zusätzliche Felder für Gruppen"
 
-#: models.py:252
+#: models.py:318
 msgid "Group"
 msgstr "Gruppe"
 
-#: models.py:254
+#: models.py:320
 msgid "Can assign child groups to groups"
 msgstr "Kann Kindgruppen zu Gruppen zuordnen"
 
-#: models.py:258
+#: models.py:330
 msgid "Long name"
 msgstr "Langer Name"
 
-#: models.py:268 templates/core/group_full.html:37
+#: models.py:340 templates/core/group/full.html:65
 msgid "Members"
 msgstr "Mitglieder"
 
-#: models.py:271 templates/core/group_full.html:34
+#: models.py:343 templates/core/group/full.html:62
 msgid "Owners"
 msgstr "Leiter/-innen"
 
-#: models.py:278
+#: models.py:350 templates/core/group/full.html:54
 msgid "Parent groups"
 msgstr "Ãœbergeordnete Gruppen"
 
-#: models.py:286
+#: models.py:358
 msgid "Type of group"
 msgstr "Gruppentyp"
 
-#: models.py:290
-msgid "Additional fields"
-msgstr "Zusätzliche Felder"
-
-#: models.py:342
+#: models.py:419
 msgid "User"
 msgstr "Benutzer"
 
-#: models.py:345 models.py:369 models.py:454
+#: models.py:422 models.py:446 models.py:531
 #: templates/core/announcement/list.html:18
 msgid "Title"
 msgstr "Titel"
 
-#: models.py:348
+#: models.py:425
 msgid "Application"
 msgstr "Anwendung"
 
-#: models.py:354
+#: models.py:431
 msgid "Activity"
 msgstr "Aktivität"
 
-#: models.py:355
+#: models.py:432
 msgid "Activities"
 msgstr "Aktivitäten"
 
-#: models.py:361
+#: models.py:438
 msgid "Sender"
 msgstr "Absender"
 
-#: models.py:366
+#: models.py:443
 msgid "Recipient"
 msgstr "Empfänger"
 
-#: models.py:371 models.py:624
+#: models.py:448 models.py:701
 msgid "Link"
 msgstr "Link"
 
-#: models.py:373
+#: models.py:450
 msgid "Read"
 msgstr "Gelesen"
 
-#: models.py:374
+#: models.py:451
 msgid "Sent"
 msgstr "Versandt"
 
-#: models.py:387
+#: models.py:464
 msgid "Notification"
 msgstr "Benachrichtigung"
 
-#: models.py:388
+#: models.py:465
 msgid "Notifications"
 msgstr "Benachrichtigungen"
 
-#: models.py:456
+#: models.py:533
 msgid "Link to detailed view"
 msgstr "Link zur detaillierten Ansicht"
 
-#: models.py:459
+#: models.py:536
 msgid "Date and time from when to show"
 msgstr "Datum und Uhrzeit des Anzeigestarts"
 
-#: models.py:462
+#: models.py:539
 msgid "Date and time until when to show"
 msgstr "Anzeigezeitraum"
 
-#: models.py:486
+#: models.py:563
 msgid "Announcement"
 msgstr "Ankündigung"
 
-#: models.py:524
+#: models.py:601
 msgid "Announcement recipient"
 msgstr "Empfänger der Ankündigung"
 
-#: models.py:525
+#: models.py:602
 msgid "Announcement recipients"
 msgstr "Empfänger der Ankündigung"
 
-#: models.py:575
+#: models.py:652
 msgid "Widget Title"
 msgstr "Widget-Titel"
 
-#: models.py:576
+#: models.py:653
 msgid "Activate Widget"
 msgstr "Widget aktivieren"
 
-#: models.py:594
+#: models.py:671
 msgid "Dashboard Widget"
 msgstr "Dashboard-Widget"
 
-#: models.py:595
+#: models.py:672
 msgid "Dashboard Widgets"
 msgstr "Dashboard-Widgets"
 
-#: models.py:601
+#: models.py:678
 msgid "Menu ID"
 msgstr "Menü-ID"
 
-#: models.py:613
+#: models.py:690
 msgid "Custom menu"
 msgstr "Benutzerdefiniertes Menü"
 
-#: models.py:614
+#: models.py:691
 msgid "Custom menus"
 msgstr "Benutzerdefinierte Menüs"
 
-#: models.py:621
+#: models.py:698
 msgid "Menu"
 msgstr "Menü"
 
-#: models.py:623
-msgid "Name"
-msgstr "Name"
-
-#: models.py:625
+#: models.py:702
 msgid "Icon"
 msgstr "Icon"
 
-#: models.py:631
+#: models.py:708
 msgid "Custom menu item"
 msgstr "Benutzerdefiniertes Menüelement"
 
-#: models.py:632
+#: models.py:709
 msgid "Custom menu items"
 msgstr "Benutzerdefinierte Menüelemente"
 
-#: models.py:642
+#: models.py:719
 msgid "Title of type"
 msgstr "Titel des Typs"
 
-#: models.py:646
+#: models.py:726 templates/core/group/full.html:46
 msgid "Group type"
 msgstr "Gruppentyp"
 
-#: models.py:647
-msgid "Group types"
-msgstr "Gruppentypen"
-
-#: models.py:656
+#: models.py:736
 msgid "Can view system status"
 msgstr "Kann Systemstatus sehen"
 
-#: models.py:657
+#: models.py:737
 msgid "Can link persons to accounts"
 msgstr "Kann Personen mit Benutzerkonten verknüpfen"
 
-#: models.py:658
+#: models.py:738
 msgid "Can manage data"
 msgstr "Kann Daten verwalten"
 
-#: models.py:659
+#: models.py:739
 msgid "Can impersonate"
 msgstr "Kann sich verkleiden"
 
-#: models.py:660
+#: models.py:740
 msgid "Can use search"
 msgstr "Kann Suche benutzen"
 
-#: models.py:661
+#: models.py:741
 msgid "Can change site preferences"
 msgstr "Kann Konfiguration ändern"
 
-#: models.py:662
+#: models.py:742
 msgid "Can change person preferences"
 msgstr "Kann Einstellungen einer Person verändern"
 
-#: models.py:663
+#: models.py:743
 msgid "Can change group preferences"
 msgstr "Kann Einstellungen einer Gruppe verändern"
 
-#: preferences.py:27
+#: preferences.py:24
+msgid "Authentication"
+msgstr "Authentifizierung"
+
+#: preferences.py:33
 msgid "Site title"
 msgstr "Seitentitel"
 
-#: preferences.py:36
+#: preferences.py:42
 msgid "Site description"
 msgstr "Seitenbeschreibung"
 
-#: preferences.py:45
+#: preferences.py:51
 msgid "Primary colour"
 msgstr "Primärfarbe"
 
-#: preferences.py:54
+#: preferences.py:60
 msgid "Secondary colour"
 msgstr "Akzentfarbe"
 
-#: preferences.py:62
+#: preferences.py:68
 msgid "Logo"
 msgstr "Logo"
 
-#: preferences.py:70
+#: preferences.py:76
 msgid "Favicon"
 msgstr "Favicon"
 
-#: preferences.py:78
+#: preferences.py:84
 msgid "PWA-Icon"
 msgstr "PWA-Icon"
 
-#: preferences.py:87
+#: preferences.py:93
 msgid "Mail out name"
 msgstr "Ausgangsmailname"
 
-#: preferences.py:96
+#: preferences.py:102
 msgid "Mail out address"
 msgstr "E-Mail-Ausgangsadresse"
 
-#: preferences.py:106
+#: preferences.py:112
 msgid "Link to privacy policy"
 msgstr "Link zur Datenschutzerklärung"
 
-#: preferences.py:116
+#: preferences.py:122
 msgid "Link to imprint"
 msgstr "Link zum Impressum"
 
-#: preferences.py:126
+#: preferences.py:132
 msgid "Name format for addressing"
 msgstr "Namensformat für Anreden"
 
-#: preferences.py:140
+#: preferences.py:146
 msgid "Channels to use for notifications"
 msgstr "Aktivierte Benachrichtungskanäle"
 
-#: preferences.py:150
+#: preferences.py:156
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr "Regulärer Ausdruck um Primärgruppen zu finden, z. B.  '^Class .*'"
 
-#: preferences.py:159
+#: preferences.py:165
 msgid "Field on person to match primary group against"
 msgstr "Feld um Primärgruppen zu finden"
 
-#: preferences.py:171
+#: preferences.py:177
 msgid "Display name of the school"
 msgstr "Sichtbarer Name der Schule"
 
-#: preferences.py:180
+#: preferences.py:186
 msgid "Official name of the school, e.g. as given by supervisory authority"
-msgstr ""
-"Offizieller Name der Schule, wie er z.B. von der Behörde vorgegeben ist"
+msgstr "Offizieller Name der Schule, wie er z.B. von der Behörde vorgegeben ist"
 
-#: settings.py:276
+#: preferences.py:194
+msgid "Enabled custom authentication backends"
+msgstr "Benutzerdefinierte Authentifizierungsbackends aktivieren"
+
+#: settings.py:300
 msgid "English"
 msgstr "Englisch"
 
-#: settings.py:277
+#: settings.py:301
 msgid "German"
 msgstr "Deutsch"
 
-#: settings.py:278
+#: settings.py:302
 msgid "French"
 msgstr "Französisch"
 
-#: templates/403.html:10 templates/404.html:10 templates/500.html:10
+#: settings.py:303
+msgid "Norsk (bokmål)"
+msgstr ""
+
+#: tables.py:19 templates/core/announcement/list.html:36
+#: templates/core/group/full.html:23 templates/core/person/full.html:22
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: tables.py:21 templates/core/announcement/list.html:22
+msgid "Actions"
+msgstr "Aktionen"
+
+#: tables.py:56 tables.py:57 tables.py:71
+#: templates/core/announcement/list.html:42 templates/core/group/full.html:30
+#: templates/core/pages/delete.html:22 templates/core/person/full.html:29
+msgid "Delete"
+msgstr "Löschen"
+
+#: templates/403.html:14 templates/404.html:10 templates/500.html:10
 msgid "Error"
 msgstr "Fehler"
 
-#: templates/403.html:10
+#: templates/403.html:14
 msgid ""
 "You are not allowed to access the requested page or\n"
 "          object."
@@ -636,17 +706,15 @@ msgstr ""
 "Es ist Ihnen nicht erlaubt, auf die angefragte Seite oder das angefragte\n"
 "             Objekt zuzugreifen."
 
-#: templates/403.html:13 templates/404.html:17
+#: templates/403.html:19 templates/404.html:17
 msgid ""
 "\n"
-"            If you think this is an error in AlekSIS, please contact your "
-"site\n"
+"            If you think this is an error in AlekSIS, please contact your site\n"
 "            administrators:\n"
 "          "
 msgstr ""
 "\n"
-"            Wenn Sie der Meinung sind, dass es sich um einen Fehler in "
-"AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n"
+"            Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n"
 "     Systemadministratoren:\n"
 "          "
 
@@ -666,8 +734,7 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Wenn Sie über einen Link auf einer externen Seite hierher "
-"gelangt sind,\n"
+"            Wenn Sie über einen Link auf einer externen Seite hierher gelangt sind,\n"
 "      ist es möglich, dass dieser veraltet war.\n"
 "          "
 
@@ -682,14 +749,12 @@ msgstr ""
 #: templates/500.html:13
 msgid ""
 "\n"
-"            Your site administrators will automatically be notified about "
-"this\n"
+"            Your site administrators will automatically be notified about this\n"
 "            error. You can also contact them directly:\n"
 "          "
 msgstr ""
 "\n"
-"            Ihre Administratoren werden automatisch über diesen Fehler "
-"informiert.\n"
+"            Ihre Administratoren werden automatisch über diesen Fehler informiert.\n"
 "      Sie können diese auch direkt kontaktieren:\n"
 "          "
 
@@ -704,97 +769,21 @@ msgstr ""
 #: templates/503.html:13
 msgid ""
 "\n"
-"            This page is currently unavailable. If this error persists, "
-"contact your site administrators:\n"
+"            This page is currently unavailable. If this error persists, contact your site administrators:\n"
 "          "
 msgstr ""
 "\n"
-"            Diese Seite ist aktuell nicht erreichbar. Wenn dieser Fehler "
-"bestehen bleibt, kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n"
+"            Diese Seite ist aktuell nicht erreichbar. Wenn dieser Fehler bestehen bleibt, kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n"
 "          "
 
-#: templates/core/about.html:6 templates/core/about.html:15
-msgid "About AlekSIS"
-msgstr "Ãœber AlekSIS"
-
-#: templates/core/about.html:7
-msgid "AlekSIS – The Free School Information System"
-msgstr "AlekSIS – The Free School Information System"
-
-#: templates/core/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS, a web-based school "
-"information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of "
-"educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-"\n"
-"              Diese Plattform wird mit AlekSIS, einem webbasierten "
-"Schulinformationssystem (SIS), \n"
-"welches für die Verwaltung und/oder Veröffentlichung von "
-"Bildungseinrichtungen verwendet werden kann.\n"
-"AlekSIS ist freie Software und kann von jedem benutzt werden.\n"
-"            "
-
-#: templates/core/about.html:25
-msgid "Website of AlekSIS"
-msgstr "Website von AlekSIS"
-
-#: templates/core/about.html:26
-msgid "Source code"
-msgstr "Quellcode"
-
-#: templates/core/about.html:35
-msgid "Licence information"
-msgstr "Lizenzinformationen"
-
-#: templates/core/about.html:37
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under "
-"the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the "
-"respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-"\n"
-"              Der Core und die offiziellen Apps von AlekSIS sind unter der "
-"EUPL, Version 1.2 oder später, lizenziert. Für Lizenzinformationen\n"
-"zu Apps von Drittanbietern, wenn installiert, siehe direkt bei der "
-"jeweiligen App weiter unten auf dieser Seite. Die Lizenzen\n"
-"sind wie folgt markiert:\n"
-"            "
+#: templates/core/additional_field/edit.html:6
+#: templates/core/additional_field/edit.html:7
+msgid "Edit additional field"
+msgstr "Zusätzliches Feld bearbeiten"
 
-#: templates/core/about.html:45
-msgid "Free/Open Source Licence"
-msgstr "Freie/Open Source Lizenz"
-
-#: templates/core/about.html:46
-msgid "Other Licence"
-msgstr "Andere Lizenz"
-
-#: templates/core/about.html:50
-msgid "Full licence text"
-msgstr "Kompletter Lizenztext"
-
-#: templates/core/about.html:51
-msgid "More information about the EUPL"
-msgstr "Weitere Informationen über die EUPL"
-
-#: templates/core/about.html:90
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
-"\n"
-"                    Diese App ist unter %(licence)s lizenziert.\n"
-"                  "
+#: templates/core/additional_field/list.html:14
+msgid "Create additional field"
+msgstr "Zusätzliches Feld erstellen"
 
 #: templates/core/announcement/form.html:10
 #: templates/core/announcement/form.html:17
@@ -826,129 +815,59 @@ msgstr "Gültig bis"
 msgid "Recipients"
 msgstr "Empfänger"
 
-#: templates/core/announcement/list.html:22
-msgid "Actions"
-msgstr "Aktionen"
-
-#: templates/core/announcement/list.html:36 templates/core/group_full.html:22
-#: templates/core/person_full.html:21
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: templates/core/announcement/list.html:42
-msgid "Delete"
-msgstr "Löschen"
-
 #: templates/core/announcement/list.html:50
 msgid "There are no announcements."
 msgstr "Es gibt aktuell keine Ankündigungen."
 
-#: templates/core/announcements.html:9 templates/core/announcements.html:36
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s\n"
-"            "
-msgstr ""
-"\n"
-"              Gültig für %(from)s\n"
-"            "
-
-#: templates/core/announcements.html:13
-#, python-format
-msgid ""
-"\n"
-"              Valid from %(from)s until %(until)s\n"
-"            "
-msgstr ""
-"\n"
-"              Gültig von %(from)s bis %(until)s\n"
-"            "
-
-#: templates/core/announcements.html:40
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s – %(until)s\n"
-"            "
-msgstr ""
-"\n"
-"              Gültig von %(from)s – %(until)s\n"
-"            "
-
 #: templates/core/base.html:54
 msgid "Logged in as"
 msgstr "Angemeldet als"
 
-#: templates/core/base.html:76 templates/search/search.html:7
-#: templates/search/search.html:22
-msgid "Search"
-msgstr "Suchen"
-
-#: templates/core/base.html:148
+#: templates/core/base.html:147
 msgid "About AlekSIS — The Free School Information System"
 msgstr "Über AlekSIS — The Free School Information System"
 
-#: templates/core/base.html:156
+#: templates/core/base.html:155
 msgid "Impress"
 msgstr "Impressum"
 
-#: templates/core/base.html:164
+#: templates/core/base.html:163
 msgid "Privacy Policy"
 msgstr "Datenschutzerklärung"
 
-#: templates/core/base_print.html:62
+#: templates/core/base_print.html:64
 msgid "Powered by AlekSIS"
 msgstr "Betrieben mit AlekSIS"
 
-#: templates/core/edit_group.html:6 templates/core/edit_group.html:7
-msgid "Edit group"
-msgstr "Gruppe editieren"
-
-#: templates/core/edit_person.html:8 templates/core/edit_person.html:9
-msgid "Edit person"
-msgstr "Person editieren"
-
-#: templates/core/group_full.html:28 templates/core/person_full.html:28
-msgid "Change preferences"
-msgstr "Einstellungen ändern"
-
-#: templates/core/groups.html:14
-msgid "Create group"
-msgstr "Gruppe erstellen"
-
-#: templates/core/groups_child_groups.html:18
+#: templates/core/group/child_groups.html:18
 msgid ""
 "\n"
-"          You can use this to assign child groups to groups. Please use the "
-"filters below to select groups you want to\n"
+"          You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n"
 "          change and click \"Next\".\n"
 "        "
 msgstr ""
 "\n"
-"          Sie können diese Seite verwenden, um Kindgruppen zu Gruppen "
-"zuzuordnen. Bitte nutzen Sie die folgenden Filter, um die Gruppen "
-"auszuwählen, die Sie \n"
+"          Sie können diese Seite verwenden, um Kindgruppen zu Gruppen zuzuordnen. Bitte nutzen Sie die folgenden Filter, um die Gruppen auszuwählen, die Sie \n"
 "          ändern möchten und klicken auf \"Weiter\".\n"
 "        "
 
-#: templates/core/groups_child_groups.html:31
+#: templates/core/group/child_groups.html:31
 msgid "Update selection"
 msgstr "Auswahl aktualisieren"
 
-#: templates/core/groups_child_groups.html:35
+#: templates/core/group/child_groups.html:35
 msgid "Clear all filters"
 msgstr "Alle Filter leeren"
 
-#: templates/core/groups_child_groups.html:39
+#: templates/core/group/child_groups.html:39
 msgid "Currently selected groups"
 msgstr "Aktuell ausgewählte Gruppen"
 
-#: templates/core/groups_child_groups.html:52
+#: templates/core/group/child_groups.html:52
 msgid "Start assigning child groups for this groups"
 msgstr "Zuordnung von Kindgruppen zu Gruppen starten"
 
-#: templates/core/groups_child_groups.html:61
+#: templates/core/group/child_groups.html:61
 msgid ""
 "\n"
 "            Please select some groups in order to go on with assigning.\n"
@@ -958,56 +877,84 @@ msgstr ""
 "            Bitte wählen Sie Gruppen aus, um Gruppen zuzuordnen.\n"
 "          "
 
-#: templates/core/groups_child_groups.html:72
+#: templates/core/group/child_groups.html:72
 msgid "Current group:"
 msgstr "Aktuelle Gruppe:"
 
-#: templates/core/groups_child_groups.html:78
+#: templates/core/group/child_groups.html:78
 msgid "Please be careful!"
 msgstr "Bitte seien Sie vorsichtig!"
 
-#: templates/core/groups_child_groups.html:79
+#: templates/core/group/child_groups.html:79
 msgid ""
 "\n"
-"            If you click \"Back\" or \"Next\" the current group assignments "
-"are not saved.\n"
-"            If you click \"Save\", you will overwrite all existing child "
-"group relations for this group with what you\n"
+"            If you click \"Back\" or \"Next\" the current group assignments are not saved.\n"
+"            If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n"
 "            selected on this page.\n"
 "          "
 msgstr ""
 "\n"
-"            Wenn Sie auf \"Zurück\" oder \"Weiter\" klicken, werden die "
-"aktuellen Gruppenzuordnungen nicht gespeichert.\n"
-"Wenn Sie auf \"Speichern\" klicken, werden alle existierenden Zuordnungen "
-"von Kindgruppen für diese Gruppe\n"
+"            Wenn Sie auf \"Zurück\" oder \"Weiter\" klicken, werden die aktuellen Gruppenzuordnungen nicht gespeichert.\n"
+"Wenn Sie auf \"Speichern\" klicken, werden alle existierenden Zuordnungen von Kindgruppen für diese Gruppe\n"
 "mit dem überschrieben, was Sie auf dieser Seite ausgewählt haben.\n"
 "          "
 
-#: templates/core/groups_child_groups.html:93
-#: templates/core/groups_child_groups.html:128
+#: templates/core/group/child_groups.html:93
+#: templates/core/group/child_groups.html:128
 #: templates/two_factor/_wizard_actions.html:15
 #: templates/two_factor/_wizard_actions.html:20
 msgid "Back"
 msgstr "Zurück"
 
-#: templates/core/groups_child_groups.html:99
-#: templates/core/groups_child_groups.html:134
+#: templates/core/group/child_groups.html:99
+#: templates/core/group/child_groups.html:134
 #: templates/two_factor/_wizard_actions.html:26
 msgid "Next"
 msgstr "Weiter"
 
-#: templates/core/groups_child_groups.html:106
-#: templates/core/groups_child_groups.html:141
-#: templates/core/save_button.html:3
+#: templates/core/group/child_groups.html:106
+#: templates/core/group/child_groups.html:141
+#: templates/core/partials/save_button.html:3
 msgid "Save"
 msgstr "Speichern"
 
-#: templates/core/groups_child_groups.html:112
-#: templates/core/groups_child_groups.html:147
+#: templates/core/group/child_groups.html:112
+#: templates/core/group/child_groups.html:147
 msgid "Save and next"
 msgstr "Speichern und weiter"
 
+#: templates/core/group/edit.html:6 templates/core/group/edit.html:7
+msgid "Edit group"
+msgstr "Gruppe editieren"
+
+#: templates/core/group/full.html:37 templates/core/person/full.html:36
+msgid "Change preferences"
+msgstr "Einstellungen ändern"
+
+#: templates/core/group/list.html:14
+msgid "Create group"
+msgstr "Gruppe erstellen"
+
+#: templates/core/group/list.html:17
+msgid "Filter groups"
+msgstr "Gruppen filtern"
+
+#: templates/core/group/list.html:24 templates/core/person/list.html:28
+msgid "Clear"
+msgstr "Zurücksetzen"
+
+#: templates/core/group/list.html:28
+msgid "Selected groups"
+msgstr "Ausgewählte Gruppen"
+
+#: templates/core/group_type/edit.html:6 templates/core/group_type/edit.html:7
+msgid "Edit group type"
+msgstr "Gruppentyp editieren"
+
+#: templates/core/group_type/list.html:14
+msgid "Create group type"
+msgstr "Gruppentyp erstellen"
+
 #: templates/core/index.html:4
 msgid "Home"
 msgstr "Startseite"
@@ -1032,137 +979,397 @@ msgstr "Mehr Informationen →"
 msgid "No notifications available yet."
 msgstr "Aktuell keine Benachrichtigungen verfügbar."
 
-#: templates/core/no_person.html:12
+#: templates/core/pages/about.html:6 templates/core/pages/about.html:15
+msgid "About AlekSIS"
+msgstr "Ãœber AlekSIS"
+
+#: templates/core/pages/about.html:7
+msgid "AlekSIS – The Free School Information System"
+msgstr "AlekSIS – The Free School Information System"
+
+#: templates/core/pages/about.html:17
 msgid ""
 "\n"
-"            Your administrator account is not linked to any person. "
-"Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
+"              This platform is powered by AlekSIS, a web-based school information system (SIS) which can be used\n"
+"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
+"              can be used by anyone.\n"
+"            "
 msgstr ""
 "\n"
-"            Ihr Administratorenkonto ist mit keiner Person verknüpft. "
-"Deshalb\n"
-"            wurde Ihr Konto mit einer Dummyperson verknüpft.\n"
-"          "
+"              Diese Plattform wird mit AlekSIS, einem webbasierten Schulinformationssystem (SIS), \n"
+"welches für die Verwaltung und/oder Veröffentlichung von Bildungseinrichtungen verwendet werden kann.\n"
+"AlekSIS ist freie Software und kann von jedem benutzt werden.\n"
+"            "
+
+#: templates/core/pages/about.html:25
+msgid "Website of AlekSIS"
+msgstr "Website von AlekSIS"
+
+#: templates/core/pages/about.html:26
+msgid "Source code"
+msgstr "Quellcode"
 
-#: templates/core/no_person.html:19
+#: templates/core/pages/about.html:35
+msgid "Licence information"
+msgstr "Lizenzinformationen"
+
+#: templates/core/pages/about.html:37
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
+"              information from third-party apps, if installed, refer to the respective components below. The\n"
+"              licences are marked like this:\n"
+"            "
 msgstr ""
 "\n"
-"            Ihr Benutzerkonto ist nicht mit einer Person verknüpft. Das "
-"bedeutet, dass Sie\n"
-"        keine schulbezogenen Informationen aufrufen können. Bitte wenden Sie "
-"sich an\n"
-"        die Verwaltenden von AlekSIS an Ihrer Schule.\n"
-"          "
+"              Der Core und die offiziellen Apps von AlekSIS sind unter der EUPL, Version 1.2 oder später, lizenziert. Für Lizenzinformationen\n"
+"zu Apps von Drittanbietern, wenn installiert, siehe direkt bei der jeweiligen App weiter unten auf dieser Seite. Die Lizenzen\n"
+"sind wie folgt markiert:\n"
+"            "
 
-#: templates/core/person_full.html:34
-msgid "Contact details"
-msgstr "Kontaktdetails"
+#: templates/core/pages/about.html:45
+msgid "Free/Open Source Licence"
+msgstr "Freie/Open Source Lizenz"
 
-#: templates/core/persons_accounts.html:7
-#: templates/core/persons_accounts.html:9
-msgid "Link persons to accounts"
-msgstr "Personen mit Benutzerkonten verknüpfen"
+#: templates/core/pages/about.html:46
+msgid "Other Licence"
+msgstr "Andere Lizenz"
 
-#: templates/core/persons_accounts.html:16
+#: templates/core/pages/about.html:50
+msgid "Full licence text"
+msgstr "Kompletter Lizenztext"
+
+#: templates/core/pages/about.html:51
+msgid "More information about the EUPL"
+msgstr "Weitere Informationen über die EUPL"
+
+#: templates/core/pages/about.html:90
+#, python-format
 msgid ""
 "\n"
-"        You can use this form to assign user accounts to persons. Use the\n"
-"        dropdowns to select existing accounts; use the text fields to create "
-"new\n"
-"        accounts on-the-fly. The latter will create a new account with the\n"
-"        entered username and copy all other details from the person.\n"
-"      "
+"                    This app is licenced under %(licence)s.\n"
+"                  "
 msgstr ""
 "\n"
-"        Sie können dieses Formular nutzen, um Benutzerkonten Personen "
-"zuzuweisen. Nutzen Sie das\n"
-"    Auswahlfeld um ein existierendes Benutzerkonto auszuwählen; nutzen Sie "
-"das Textfeld, um einen neuen Benutzer zu\n"
-"    erstellen. Letzteres erstellt ein neues Benutzerkonto mit dem\n"
-"    eingegebenen Benutzernamen und kopiert alle anderen Daten der Person.\n"
-"      "
+"                    Diese App ist unter %(licence)s lizenziert.\n"
+"                  "
 
-#: templates/core/persons_accounts.html:31
-#: templates/core/persons_accounts.html:55
-msgid "Update"
-msgstr "Aktualisieren"
+#: templates/core/pages/delete.html:6
+#, python-format
+msgid "Delete %(object_name)s"
+msgstr "%(object_name)s löschen"
 
-#: templates/core/persons_accounts.html:37
-msgid "Existing account"
-msgstr "Existierendes Konto"
+#: templates/core/pages/delete.html:13
+#, python-format
+msgid ""
+"\n"
+"      Do you really want to delete the %(object_name)s \"%(object)s\"?\n"
+"    "
+msgstr ""
+"\n"
+"      Möchten Sie wirklich %(object_name)s \"%(object)s\" löschen?\n"
+"    "
 
-#: templates/core/persons_accounts.html:38
-msgid "New account"
-msgstr "Neues Konto"
+#: templates/core/pages/offline.html:6
+msgid ""
+"No internet\n"
+"    connection."
+msgstr ""
+"Keine\n"
+"    Internetverbindung."
 
-#: templates/core/system_status.html:12
+#: templates/core/pages/offline.html:10
+msgid ""
+"\n"
+"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
+"      administrators:\n"
+"    "
+msgstr ""
+"\n"
+"      Es ist ein Fehler beim Aufrufen der Seite aufgetreten. Eventuell haben Sie keine Internetverbindung. Bitte prüfen Sie, ob WLAN oder mobile Daten aktiv sind, \n"
+"      und probieren Sie es erneut. Wenn Sie der Meinung sind, dass Sie mit dem Internet verbunden sind, kontaktieren Sie bitte einen Ihrer \n"
+"      Systemadministratoren:\n"
+"    "
+
+#: templates/core/pages/progress.html:27
+msgid ""
+"\n"
+"              Without activated JavaScript the progress status can't be updated.\n"
+"            "
+msgstr ""
+"\n"
+"              Ohne aktiviertes JavaScript kann der Fortschritt leider nicht "
+"aktualisiert werden.\n"
+"            "
+
+#: templates/core/pages/progress.html:47
+#: templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr "Zurück"
+
+#: templates/core/pages/system_status.html:12
 msgid "System checks"
 msgstr "Systemprüfungen"
 
-#: templates/core/system_status.html:21
+#: templates/core/pages/system_status.html:21
 msgid "Maintenance mode enabled"
 msgstr "Wartungsmodus aktiviert"
 
-#: templates/core/system_status.html:23
+#: templates/core/pages/system_status.html:23
 msgid ""
 "\n"
-"                Only admin and visitors from internal IPs can access "
-"thesite.\n"
+"                Only admin and visitors from internal IPs can access thesite.\n"
 "              "
 msgstr ""
 "\n"
-"                Nur Administratoren und Besucher von internen IP-Adressen "
-"können die Seite aufrufen.\n"
+"                Nur Administratoren und Besucher von internen IP-Adressen können die Seite aufrufen.\n"
 "              "
 
-#: templates/core/system_status.html:34
+#: templates/core/pages/system_status.html:34
 msgid "Maintenance mode disabled"
 msgstr "Wartungsmodus deaktiviert"
 
-#: templates/core/system_status.html:35
+#: templates/core/pages/system_status.html:35
 msgid "Everyone can access the site."
 msgstr "Jeder kann die Seite aufrufen."
 
-#: templates/core/system_status.html:45
+#: templates/core/pages/system_status.html:45
 msgid "Debug mode enabled"
 msgstr "Debug-Modus aktiviert"
 
-#: templates/core/system_status.html:47
+#: templates/core/pages/system_status.html:47
 msgid ""
 "\n"
-"                The web server throws back debug information on errors. Do "
-"not use in production!\n"
+"                The web server throws back debug information on errors. Do not use in production!\n"
 "              "
 msgstr ""
 "\n"
-"                Der Server gibt Debug-Informationen bei Fehlern zurück. "
-"Nicht im Produktivbetrieb nutzen!\n"
+"                Der Server gibt Debug-Informationen bei Fehlern zurück. Nicht im Produktivbetrieb nutzen!\n"
 "              "
 
-#: templates/core/system_status.html:54
+#: templates/core/pages/system_status.html:54
 msgid "Debug mode disabled"
 msgstr "Debug-Modus deaktivert"
 
-#: templates/core/system_status.html:56
+#: templates/core/pages/system_status.html:56
 msgid ""
 "\n"
-"                Debug mode is disabled. Default error pages are displayed on "
-"errors.\n"
+"                Debug mode is disabled. Default error pages are displayed on errors.\n"
 "              "
 msgstr ""
 "\n"
-"                Debug-Modus ist deaktiviert. Standard-Fehlerseiten werden "
-"bei Fehlern angezeigt.\n"
+"                Debug-Modus ist deaktiviert. Standard-Fehlerseiten werden bei Fehlern angezeigt.\n"
 "              "
 
+#: templates/core/pages/system_status.html:69
+msgid "System health checks"
+msgstr "Systemprüfungen"
+
+#: templates/core/pages/system_status.html:75
+msgid "Service"
+msgstr "Dienst"
+
+#: templates/core/pages/system_status.html:76
+#: templates/core/pages/system_status.html:115
+msgid "Status"
+msgstr "Status"
+
+#: templates/core/pages/system_status.html:77
+msgid "Time taken"
+msgstr "Dauer"
+
+#: templates/core/pages/system_status.html:96
+msgid "seconds"
+msgstr "Sekunden"
+
+#: templates/core/pages/system_status.html:107
+msgid "Celery task results"
+msgstr "Celery Task-Ergebnisse"
+
+#: templates/core/pages/system_status.html:112
+msgid "Task"
+msgstr "Task"
+
+#: templates/core/pages/system_status.html:113
+msgid "ID"
+msgstr "ID"
+
+#: templates/core/pages/system_status.html:114
+msgid "Date done"
+msgstr "Erledigungszeitpunkt"
+
+#: templates/core/partials/announcements.html:9
+#: templates/core/partials/announcements.html:36
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s\n"
+"            "
+msgstr ""
+"\n"
+"              Gültig für %(from)s\n"
+"            "
+
+#: templates/core/partials/announcements.html:13
+#, python-format
+msgid ""
+"\n"
+"              Valid from %(from)s until %(until)s\n"
+"            "
+msgstr ""
+"\n"
+"              Gültig von %(from)s bis %(until)s\n"
+"            "
+
+#: templates/core/partials/announcements.html:40
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s – %(until)s\n"
+"            "
+msgstr ""
+"\n"
+"              Gültig von %(from)s – %(until)s\n"
+"            "
+
+#: templates/core/partials/crud_events.html:10
+#, python-format
+msgid ""
+"\n"
+"              Created by %(person)s\n"
+"            "
+msgstr ""
+"\n"
+"              Erstellt von %(person)s\n"
+"            "
+
+#: templates/core/partials/crud_events.html:14
+#: templates/core/partials/crud_events.html:22
+#: templates/core/partials/crud_events.html:26
+#, python-format
+msgid ""
+"\n"
+"              Updated by %(person)s\n"
+"            "
+msgstr ""
+"\n"
+"              Aktualisiert von %(person)s\n"
+"            "
+
+#: templates/core/partials/crud_events.html:18
+#, python-format
+msgid ""
+"\n"
+"              Deleted by %(person)s\n"
+"            "
+msgstr ""
+"\n"
+"              Gelöscht von %(person)s\n"
+"            "
+
+#: templates/core/partials/language_form.html:16
+msgid "Language"
+msgstr "Sprache"
+
+#: templates/core/partials/language_form.html:28
+msgid "Select language"
+msgstr "Sprache auswählen"
+
+#: templates/core/partials/no_person.html:12
+msgid ""
+"\n"
+"            Your administrator account is not linked to any person. Therefore,\n"
+"            a dummy person has been linked to your account.\n"
+"          "
+msgstr ""
+"\n"
+"            Ihr Administratorenkonto ist mit keiner Person verknüpft. Deshalb\n"
+"            wurde Ihr Konto mit einer Dummyperson verknüpft.\n"
+"          "
+
+#: templates/core/partials/no_person.html:19
+msgid ""
+"\n"
+"            Your user account is not linked to a person. This means you\n"
+"            cannot access any school-related information. Please contact\n"
+"            the managers of AlekSIS at your school.\n"
+"          "
+msgstr ""
+"\n"
+"            Ihr Benutzerkonto ist nicht mit einer Person verknüpft. Das bedeutet, dass Sie\n"
+"        keine schulbezogenen Informationen aufrufen können. Bitte wenden Sie sich an\n"
+"        die Verwaltenden von AlekSIS an Ihrer Schule.\n"
+"          "
+
+#: templates/core/person/accounts.html:7 templates/core/person/accounts.html:9
+msgid "Link persons to accounts"
+msgstr "Personen mit Benutzerkonten verknüpfen"
+
+#: templates/core/person/accounts.html:16
+msgid ""
+"\n"
+"        You can use this form to assign user accounts to persons. Use the\n"
+"        dropdowns to select existing accounts; use the text fields to create new\n"
+"        accounts on-the-fly. The latter will create a new account with the\n"
+"        entered username and copy all other details from the person.\n"
+"      "
+msgstr ""
+"\n"
+"        Sie können dieses Formular nutzen, um Benutzerkonten Personen zuzuweisen. Nutzen Sie das\n"
+"    Auswahlfeld um ein existierendes Benutzerkonto auszuwählen; nutzen Sie das Textfeld, um einen neuen Benutzer zu\n"
+"    erstellen. Letzteres erstellt ein neues Benutzerkonto mit dem\n"
+"    eingegebenen Benutzernamen und kopiert alle anderen Daten der Person.\n"
+"      "
+
+#: templates/core/person/accounts.html:31
+#: templates/core/person/accounts.html:55
+msgid "Update"
+msgstr "Aktualisieren"
+
+#: templates/core/person/accounts.html:37
+msgid "Existing account"
+msgstr "Existierendes Konto"
+
+#: templates/core/person/accounts.html:38
+msgid "New account"
+msgstr "Neues Konto"
+
+#: templates/core/person/edit.html:11 templates/core/person/edit.html:12
+msgid "Edit person"
+msgstr "Person editieren"
+
+#: templates/core/person/full.html:42
+msgid "Contact details"
+msgstr "Kontaktdetails"
+
+#: templates/core/person/full.html:122
+msgid "Children"
+msgstr "Kinder"
+
+#: templates/core/person/list.html:17
+msgid "Create person"
+msgstr "Person erstellen"
+
+#: templates/core/person/list.html:21
+msgid "Filter persons"
+msgstr "Personen filtern"
+
+#: templates/core/person/list.html:32
+msgid "Selected persons"
+msgstr "Ausgewählte Personen"
+
+#: templates/core/school_term/create.html:6
+#: templates/core/school_term/create.html:7
+#: templates/core/school_term/list.html:14
+msgid "Create school term"
+msgstr "Schuljahr erstellen"
+
+#: templates/core/school_term/edit.html:6
+#: templates/core/school_term/edit.html:7
+msgid "Edit school term"
+msgstr "Schuljahr bearbeiten"
+
 #: templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr "Seiteneinstellungen ändern"
@@ -1188,33 +1395,6 @@ msgstr "Alle"
 msgid "Impersonate user"
 msgstr "Als Benutzer verkleiden"
 
-#: templates/offline.html:6
-msgid ""
-"No internet\n"
-"    connection."
-msgstr ""
-"Keine\n"
-"    Internetverbindung."
-
-#: templates/offline.html:10
-msgid ""
-"\n"
-"      There was an error accessing this page. You probably don't have an "
-"internet connection. Check to see if your WiFi\n"
-"      or mobile data is turned on and try again. If you think you are "
-"connected, please contact the system\n"
-"      administrators:\n"
-"    "
-msgstr ""
-"\n"
-"      Es ist ein Fehler beim Aufrufen der Seite aufgetreten. Eventuell haben "
-"Sie keine Internetverbindung. Bitte prüfen Sie, ob WLAN oder mobile Daten "
-"aktiv sind, \n"
-"      und probieren Sie es erneut. Wenn Sie der Meinung sind, dass Sie mit "
-"dem Internet verbunden sind, kontaktieren Sie bitte einen Ihrer \n"
-"      Systemadministratoren:\n"
-"    "
-
 #: templates/search/search.html:8
 msgid "Global Search"
 msgstr "Globale Suche"
@@ -1239,33 +1419,49 @@ msgstr "Bitte geben Sie einen Suchausdruck ein."
 msgid "New notification for"
 msgstr "Neue Benachrichtigung für"
 
-#: templates/templated_email/notification.email:7
-msgid "Dear"
-msgstr "Sehr geehrter"
+#: templates/templated_email/notification.email:6
+#: templates/templated_email/notification.email:27
+#, python-format
+msgid "Dear %(notification_user)s,"
+msgstr "Liebe(r) %(notification_user)s,"
 
 #: templates/templated_email/notification.email:8
+#: templates/templated_email/notification.email:29
 msgid "we got a new notification for you:"
 msgstr "Wir haben eine neue Benachrichtigung für Sie:"
 
-#: templates/templated_email/notification.email:12
+#: templates/templated_email/notification.email:15
+#: templates/templated_email/notification.email:35
 msgid "More information"
 msgstr "Mehr Informationen"
 
-#: templates/templated_email/notification.email:16
+#: templates/templated_email/notification.email:18
 #, python-format
 msgid ""
 "\n"
-"    <p>By %(trans_sender)s at %(trans_created_at)s</p>\n"
-"\n"
-"    <i>Your AlekSIS team</i>\n"
+"        Sent by %(trans_sender)s at %(trans_created_at)s\n"
 "    "
 msgstr ""
 "\n"
-"    <p>Von %(trans_sender)s um %(trans_created_at)s</p>\n"
-"\n"
-"    <i>Ihr AlekSIS-Team</i>\n"
+"        Von %(trans_sender)s um %(trans_created_at)s\n"
 "    "
 
+#: templates/templated_email/notification.email:22
+#: templates/templated_email/notification.email:46
+msgid "Your AlekSIS team"
+msgstr "Ihr AlekSIS-Team"
+
+#: templates/templated_email/notification.email:40
+#, python-format
+msgid ""
+"\n"
+"            Sent by %(trans_sender)s at %(trans_created_at)s\n"
+"        "
+msgstr ""
+"\n"
+"            Von %(trans_sender)s um %(trans_created_at)s\n"
+"        "
+
 #: templates/two_factor/_base_focus.html:6
 #: templates/two_factor/core/otp_required.html:22
 #: templates/two_factor/core/setup.html:5
@@ -1288,21 +1484,16 @@ msgid ""
 "\n"
 "        Backup tokens can be used when your primary and backup\n"
 "        phone numbers aren't available. The backup tokens below can be used\n"
-"        for login verification. If you've used up all your backup tokens, "
-"you\n"
-"        can generate a new set of backup tokens. Only the backup tokens "
-"shown\n"
+"        for login verification. If you've used up all your backup tokens, you\n"
+"        can generate a new set of backup tokens. Only the backup tokens shown\n"
 "        below will be valid.\n"
 "      "
 msgstr ""
 "\n"
 "        Backup-Token können genutzt werden, wenn Ihre primären und Backup-\n"
-"        Telefonnummern nicht verfügbar sind. Die Backup-Tokens unten können "
-"für\n"
-"        die Anmeldungsverifizierung genutzt werden. Wenn Sie alle Backup-"
-"Tokens genutzt haben,\n"
-"        müssen Sie neue generieren. Nur gültige Backup-Tokens werden "
-"angezeigt.\n"
+"        Telefonnummern nicht verfügbar sind. Die Backup-Tokens unten können für\n"
+"        die Anmeldungsverifizierung genutzt werden. Wenn Sie alle Backup-Tokens genutzt haben,\n"
+"        müssen Sie neue generieren. Nur gültige Backup-Tokens werden angezeigt.\n"
 "      "
 
 #: templates/two_factor/core/backup_tokens.html:33
@@ -1328,17 +1519,18 @@ msgid "Generate Tokens"
 msgstr "Tokens generieren"
 
 #: templates/two_factor/core/login.html:16
-msgid ""
-"You have no permission to view this page. Please login with an other account."
-msgstr ""
-"Sie haben nicht die nötigen Berechtigungen, um diese Seite aufzurufen. Bitte "
-"loggen Sie sich mit einem anderen Account ein."
+msgid "You have no permission to view this page. Please login with an other account."
+msgstr "Sie haben nicht die nötigen Berechtigungen, um diese Seite aufzurufen. Bitte loggen Sie sich mit einem anderen Account ein."
 
-#: templates/two_factor/core/login.html:25
+#: templates/two_factor/core/login.html:24
 msgid "Please login to see this page."
 msgstr "Bitte melden Sie sich an, um diese Seite zu sehen."
 
-#: templates/two_factor/core/login.html:28
+#: templates/two_factor/core/login.html:30
+msgid "Login with username and password"
+msgstr "Anmeldung mit Nutzername und Passwort"
+
+#: templates/two_factor/core/login.html:40
 msgid ""
 "We are calling your phone right now, please enter the\n"
 "              digits you hear."
@@ -1346,16 +1538,15 @@ msgstr ""
 "Wir rufen Ihr Telefon jetzt an, bitte geben Sie die\n"
 "                Zahlen ein, die Sie hören."
 
-#: templates/two_factor/core/login.html:31
+#: templates/two_factor/core/login.html:43
 msgid ""
 "We sent you a text message, please enter the tokens we\n"
 "              sent."
 msgstr ""
-"Wir haben Ihnen eine Textnachricht geschickt. Bitte geben Sie die Tokens "
-"ein,\n"
+"Wir haben Ihnen eine Textnachricht geschickt. Bitte geben Sie die Tokens ein,\n"
 "              die wir Ihnen geschickt haben."
 
-#: templates/two_factor/core/login.html:34
+#: templates/two_factor/core/login.html:46
 msgid ""
 "Please enter the tokens generated by your token\n"
 "              generator."
@@ -1363,30 +1554,32 @@ msgstr ""
 "Bitte geben Sie den von Ihrem Token-Generator\n"
 "              generierten Token ein."
 
-#: templates/two_factor/core/login.html:38
+#: templates/two_factor/core/login.html:50
 msgid ""
 "Use this form for entering backup tokens for logging in.\n"
-"            These tokens have been generated for you to print and keep safe. "
-"Please\n"
+"            These tokens have been generated for you to print and keep safe. Please\n"
 "            enter one of these backup tokens to login to your account."
 msgstr ""
 "Nutzen Sie dieses Formular um Ihre Backup-Tokens zum Anmelden einzugeben.\n"
-"                Diese Tokens wurden für Sie generiert, um diese gut "
-"aufzubewahren. Bitte\n"
+"                Diese Tokens wurden für Sie generiert, um diese gut aufzubewahren. Bitte\n"
 "                geben Sie einen dieser Tokens ein, um sich einzuloggen."
 
-#: templates/two_factor/core/login.html:56
+#: templates/two_factor/core/login.html:68
 msgid "Or, alternatively, use one of your backup phones:"
 msgstr "Oder, alternativ, nutzen Sie eins Ihrer Backup-Telefone:"
 
-#: templates/two_factor/core/login.html:66
+#: templates/two_factor/core/login.html:78
 msgid "As a last resort, you can use a backup token:"
 msgstr "Als letzte Möglichkeit können Sie einen Backup-Token nutzen:"
 
-#: templates/two_factor/core/login.html:69
+#: templates/two_factor/core/login.html:81
 msgid "Use Backup Token"
 msgstr "Backup-Token nutzen"
 
+#: templates/two_factor/core/login.html:93
+msgid "Use alternative login options"
+msgstr "Alternative Anmeldemöglichkeiten nutzen"
+
 #: templates/two_factor/core/otp_required.html:9
 msgid "Permission Denied"
 msgstr "Zugriff verwehrt"
@@ -1394,13 +1587,11 @@ msgstr "Zugriff verwehrt"
 #: templates/two_factor/core/otp_required.html:10
 msgid ""
 "The page you requested, enforces users to verify using\n"
-"          two-factor authentication for security reasons. You need to enable "
-"these\n"
+"          two-factor authentication for security reasons. You need to enable these\n"
 "          security features in order to access this page."
 msgstr ""
 "Die von Ihnen gewünschte Seite erfordert aus Sicherheitsgründen\n"
-"          eine Verifizierung durch Zwei-Faktor-Authentifizierung. Sie müssen "
-"diese\n"
+"          eine Verifizierung durch Zwei-Faktor-Authentifizierung. Sie müssen diese\n"
 "          Sicherheitsfunktion aktivieren, um diese Seite aufzurufen."
 
 #: templates/two_factor/core/otp_required.html:14
@@ -1413,10 +1604,6 @@ msgstr ""
 "          Aktivieren Sie Zwei-Faktor-Authentifizierung für eine verbesserte\n"
 "          Accountsicherheit."
 
-#: templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr "Zurück"
-
 #: templates/two_factor/core/phone_register.html:5
 #: templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -1450,8 +1637,7 @@ msgid ""
 msgstr ""
 "\n"
 "        Sie sind dabei, Ihre Accountsicherheit auf das\n"
-"       nächste Level zu erhöhen. Bitte folgen Sie den Schritten im Wizard um "
-"die\n"
+"       nächste Level zu erhöhen. Bitte folgen Sie den Schritten im Wizard um die\n"
 "       Zwei-Faktor-Authentifizierug zu aktivieren.\n"
 "      "
 
@@ -1462,8 +1648,7 @@ msgid ""
 "      "
 msgstr ""
 "\n"
-"        Bitte wählen Sie aus, welche Authentifikationsmethode Sie nutzen "
-"wollen:\n"
+"        Bitte wählen Sie aus, welche Authentifikationsmethode Sie nutzen wollen:\n"
 "      "
 
 #: templates/two_factor/core/setup.html:23
@@ -1475,10 +1660,8 @@ msgid ""
 "      "
 msgstr ""
 "\n"
-"        Um mit dem Codegenerator zu starten, benutzen Sie bitte Ihr "
-"Smartphone,\n"
-"um diesen QR-Code zu scannen (z. B. den Google Authenticator). Dann geben "
-"Sie \n"
+"        Um mit dem Codegenerator zu starten, benutzen Sie bitte Ihr Smartphone,\n"
+"um diesen QR-Code zu scannen (z. B. den Google Authenticator). Dann geben Sie \n"
 "den in der App angezeigten Code an:\n"
 "      "
 
@@ -1491,8 +1674,7 @@ msgid ""
 msgstr ""
 "\n"
 "        Bitte geben Sie die Telefonnummer des Gerätes an,\n"
-"        an die die SMS-Nachrichten geschickt werden sollen. Diese Nummer "
-"wird im nächsten Schritt überprüft.\n"
+"        an die die SMS-Nachrichten geschickt werden sollen. Diese Nummer wird im nächsten Schritt überprüft.\n"
 "      "
 
 #: templates/two_factor/core/setup.html:41
@@ -1510,13 +1692,11 @@ msgstr ""
 #: templates/two_factor/core/setup.html:50
 msgid ""
 "\n"
-"            We are calling your phone right now, please enter the digits you "
-"hear.\n"
+"            We are calling your phone right now, please enter the digits you hear.\n"
 "          "
 msgstr ""
 "\n"
-"            Wir rufen Ihr Telefon jetzt an, bitte geben Sie die Zahlen ein, "
-"die Sie hören.\n"
+"            Wir rufen Ihr Telefon jetzt an, bitte geben Sie die Zahlen ein, die Sie hören.\n"
 "          "
 
 #: templates/two_factor/core/setup.html:56
@@ -1526,30 +1706,23 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Wir haben Ihnen per SMS einen Token geschickt, bitte geben Sie "
-"diesen ein.\n"
+"            Wir haben Ihnen per SMS einen Token geschickt, bitte geben Sie diesen ein.\n"
 "          "
 
 #: templates/two_factor/core/setup.html:63
 msgid ""
 "\n"
-"          We've encountered an issue with the selected authentication "
-"method. Please\n"
-"          go back and verify that you entered your information correctly, "
-"try\n"
-"          again, or use a different authentication method instead. If the "
-"issue\n"
+"          We've encountered an issue with the selected authentication method. Please\n"
+"          go back and verify that you entered your information correctly, try\n"
+"          again, or use a different authentication method instead. If the issue\n"
 "          persists, contact the site administrator.\n"
 "        "
 msgstr ""
 "\n"
-"          Mit der ausgewählten Authentifizierungsmethode ist ein Fehler "
-"aufgetreten. \n"
-"Bitte gehen Sie zurück und überprüfen, dass Sie die Informationen korrekt "
-"eingegeben haben, versuchen Sie es erneut,\n"
+"          Mit der ausgewählten Authentifizierungsmethode ist ein Fehler aufgetreten. \n"
+"Bitte gehen Sie zurück und überprüfen, dass Sie die Informationen korrekt eingegeben haben, versuchen Sie es erneut,\n"
 "oder benutzen Sie stattdessen eine andere Authentifizierungsmethode. \n"
-"Wenn der Fehler bestehen bleibt, kontaktieren Sie bitte einen der "
-"Administratoren.\n"
+"Wenn der Fehler bestehen bleibt, kontaktieren Sie bitte einen der Administratoren.\n"
 "        "
 
 #: templates/two_factor/core/setup.html:73
@@ -1574,13 +1747,11 @@ msgstr "Zwei-Faktor-Authentifizierung erfolgreich aktiviert"
 #: templates/two_factor/core/setup_complete.html:14
 msgid ""
 "\n"
-"        Congratulations, you've successfully enabled two-factor "
-"authentication.\n"
+"        Congratulations, you've successfully enabled two-factor authentication.\n"
 "      "
 msgstr ""
 "\n"
-"        Gratulation, Sie haben die Zwei-Faktor-Authentifizierung erfolgreich "
-"aktiviert.\n"
+"        Gratulation, Sie haben die Zwei-Faktor-Authentifizierung erfolgreich aktiviert.\n"
 "      "
 
 #: templates/two_factor/core/setup_complete.html:24
@@ -1597,14 +1768,12 @@ msgstr "Backup-Codes generieren"
 msgid ""
 "\n"
 "          However, it might happen that you don't have access to\n"
-"          your primary token device. To enable account recovery, generate "
-"backup codes\n"
+"          your primary token device. To enable account recovery, generate backup codes\n"
 "          or add a phone number.\n"
 "        "
 msgstr ""
 "\n"
-"          Es kann passieren, dass Sie keinen Zugriff auf Ihren "
-"Tokengenerator haben. \n"
+"          Es kann passieren, dass Sie keinen Zugriff auf Ihren Tokengenerator haben. \n"
 "Um die Wiederherstellung zu aktivieren,\n"
 "generieren Sie Backupcodes oder fügen eine Telefonnummer hinzu.\n"
 "        "
@@ -1622,12 +1791,8 @@ msgid "Disable Two-Factor Authentication"
 msgstr "Zwei-Faktor-Authentifizierung deaktiveren"
 
 #: templates/two_factor/profile/disable.html:12
-msgid ""
-"You are about to disable two-factor authentication. This weakens your "
-"account security, are you sure?"
-msgstr ""
-"Sie sind dabei, Zwei-Faktor-Authentifizierung zu deaktivieren. Das "
-"verschlechtert Ihre Kontosicherheit. Sind Sie sicher?"
+msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?"
+msgstr "Sie sind dabei, Zwei-Faktor-Authentifizierung zu deaktivieren. Das verschlechtert Ihre Kontosicherheit. Sind Sie sicher?"
 
 #: templates/two_factor/profile/disable.html:26
 msgid "Disable"
@@ -1707,8 +1872,7 @@ msgid ""
 msgstr ""
 "\n"
 "        Wir raten Ihnen jedoch dringend davon ab.\n"
-"        Sie können jedoch auch die Zwei-Faktor-Authentifizierung für Ihr "
-"Konto deaktivieren.\n"
+"        Sie können jedoch auch die Zwei-Faktor-Authentifizierung für Ihr Konto deaktivieren.\n"
 "      "
 
 #: templates/two_factor/profile/profile.html:78
@@ -1720,8 +1884,7 @@ msgid ""
 "      "
 msgstr ""
 "\n"
-"        Die Zwei-Faktor-Authentifizierung ist nicht für Ihren Account "
-"aktiviert.\n"
+"        Die Zwei-Faktor-Authentifizierung ist nicht für Ihren Account aktiviert.\n"
 "          Aktivieren Sie Zwei-Faktor-Authentifizierung für eine verbesserte\n"
 "          Accountsicherheit.\n"
 "      "
@@ -1734,30 +1897,65 @@ msgstr "E-Mail"
 msgid "SMS"
 msgstr "SMS"
 
-#: views.py:212
+#: views.py:122
+msgid "The school term has been created."
+msgstr "Das Schuljahr wurde erstellt."
+
+#: views.py:133
+msgid "The school term has been saved."
+msgstr "Das Schuljahr wurde gespeichert."
+
+#: views.py:273
 msgid "The child groups were successfully saved."
 msgstr "Die Untergruppen wurden gespeichert."
 
-#: views.py:240
+#: views.py:309
 msgid "The person has been saved."
 msgstr "Die Person wurde gespeichert."
 
-#: views.py:276
+#: views.py:346
 msgid "The group has been saved."
 msgstr "Die Gruppe wurde gespeichert."
 
-#: views.py:348
+#: views.py:434
 msgid "The announcement has been saved."
 msgstr "Die Ankündigung wurde gespeichert."
 
-#: views.py:364
+#: views.py:450
 msgid "The announcement has been deleted."
 msgstr "Ankündigung wurde gelöscht."
 
-#: views.py:435
+#: views.py:521
 msgid "The preferences have been saved successfully."
 msgstr "Die Einstellungen wurde gespeichert."
 
+#: views.py:544
+msgid "The person has been deleted."
+msgstr "Die Person wurde gelöscht."
+
+#: views.py:557
+msgid "The group has been deleted."
+msgstr "Die Gruppe wurde gelöscht."
+
+#: views.py:588
+msgid "The additional_field has been saved."
+msgstr "Das zusätzliche Feld wurde gespeichert."
+
+#: views.py:622
+msgid "The additional field has been deleted."
+msgstr "Das zusätzliche Feld wurde gelöscht."
+
+#: views.py:646
+msgid "The group type has been saved."
+msgstr "Der Gruppentyp wurde gespeichert."
+
+#: views.py:676
+msgid "The group type has been deleted."
+msgstr "Der Gruppentyp wurde gelöscht."
+
+#~ msgid "Dear"
+#~ msgstr "Sehr geehrter"
+
 #~ msgid "Two factor auth"
 #~ msgstr "Zwei-Faktor-Authentifizierung"
 
@@ -1767,9 +1965,6 @@ msgstr "Die Einstellungen wurde gespeichert."
 #~ msgid "Edit school information"
 #~ msgstr "Schulinformationen bearbeiten"
 
-#~ msgid "Edit school term"
-#~ msgstr "Schuljahr bearbeiten"
-
 #~ msgid "Addtitional field"
 #~ msgstr "Zusätzliches Feld"
 
@@ -1786,8 +1981,7 @@ msgstr "Die Einstellungen wurde gespeichert."
 #~ "     "
 #~ msgstr ""
 #~ "\n"
-#~ "      Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS "
-#~ "handelt, kontaktieren Sie bitte einen Ihrer\n"
+#~ "      Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n"
 #~ "     Systemadministratoren:\n"
 #~ "     "
 
@@ -1861,9 +2055,7 @@ msgstr "Die Einstellungen wurde gespeichert."
 #~ msgstr "Markdown-Anleitung (Hilfe)"
 
 #~ msgid "You are not allowed to mark notifications from other users as read!"
-#~ msgstr ""
-#~ "Es ist Ihnen nicht erlaubt, Benachrichtigungen von anderen Benutzern als "
-#~ "gelesen zu markieren!"
+#~ msgstr "Es ist Ihnen nicht erlaubt, Benachrichtigungen von anderen Benutzern als gelesen zu markieren!"
 
 #, fuzzy
 #~| msgid "School management"
@@ -1891,24 +2083,12 @@ msgstr "Die Einstellungen wurde gespeichert."
 #~ msgid "Effective end date of term"
 #~ msgstr "Enddatum des Schuljahres"
 
-#~ msgid "School term"
-#~ msgstr "Schuljahr"
-
-#~ msgid "School terms"
-#~ msgstr "Schuljahre"
-
 #~ msgid "Edit school"
 #~ msgstr "Schule bearbeiten"
 
 #~ msgid "School management"
 #~ msgstr "Schulverwaltung"
 
-#~ msgid "The school has been saved."
-#~ msgstr "Die Schule wurde gespeichert."
-
-#~ msgid "The term has been saved."
-#~ msgstr "Das Schuljahr wurde gespeichert."
-
 #~ msgid "Reference ID of import source"
 #~ msgstr "Referenz-ID der Import-Quelle"
 
@@ -1942,8 +2122,7 @@ msgstr "Die Einstellungen wurde gespeichert."
 #~ "    "
 #~ msgstr ""
 #~ "\n"
-#~ "     Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es "
-#~ "später erneut.\n"
+#~ "     Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es später erneut.\n"
 #~ "    "
 
 #~ msgid "Details"
@@ -1988,9 +2167,6 @@ msgstr "Die Einstellungen wurde gespeichert."
 #~ msgid "Assorted"
 #~ msgstr "Unsortiert"
 
-#~ msgid "Language"
-#~ msgstr "Sprache"
-
 #~ msgid "Administration"
 #~ msgstr "Verwaltung"
 
diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po b/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
index a872c31afd29d0d617356303698963017e5381a9..9dbef6e6f74f842b0e8f25e389edf1a852cd8d99 100644
--- a/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-03 10:36+0000\n"
+"POT-Creation-Date: 2020-08-02 16:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,14 +17,14 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: aleksis/core/static/js/main.js:21
+#: static/js/main.js:21
 msgid "Today"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:22
+#: static/js/main.js:22
 msgid "Cancel"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:23
+#: static/js/main.js:23
 msgid "OK"
 msgstr ""
diff --git a/aleksis/core/locale/fr/LC_MESSAGES/django.po b/aleksis/core/locale/fr/LC_MESSAGES/django.po
index e248a116e72f4957542b94f55a3dc8d37ab24748..cb852c3d01c827640d82d180bd99fde275363d7a 100644
--- a/aleksis/core/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/fr/LC_MESSAGES/django.po
@@ -7,11 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-04 15:39+0200\n"
+"POT-Creation-Date: 2020-08-02 16:29+0200\n"
 "PO-Revision-Date: 2020-04-27 13:03+0000\n"
 "Last-Translator: Marlene Grundey <grundema@katharineum.de>\n"
-"Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis/"
-"fr/>\n"
+"Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis/fr/>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,6 +18,22 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 4.0.1\n"
 
+#: filters.py:37 templates/core/base.html:77 templates/core/group/list.html:20
+#: templates/core/person/list.html:24 templates/search/search.html:7
+#: templates/search/search.html:22
+msgid "Search"
+msgstr ""
+
+#: filters.py:53
+msgid "Search by name"
+msgstr ""
+
+#: filters.py:65
+#, fuzzy
+#| msgid "Contact details"
+msgid "Search by contact details"
+msgstr "Détails de contact"
+
 #: forms.py:46
 msgid "You cannot set a new username when also selecting an existing user."
 msgstr ""
@@ -47,70 +62,79 @@ msgstr "Détails de contact"
 msgid "Advanced personal data"
 msgstr "Détails de contact"
 
-#: forms.py:116
+#: forms.py:114
 msgid "New user"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 msgid "Create a new account"
 msgstr ""
 
-#: forms.py:128
+#: forms.py:126 models.py:91
+msgid "School term"
+msgstr ""
+
+#: forms.py:127
 #, fuzzy
 #| msgid "Contact details"
 msgid "Common data"
 msgstr "Détails de contact"
 
-#: forms.py:129 forms.py:169 menus.py:141 models.py:54
-#: templates/core/persons.html:8 templates/core/persons.html:9
+#: forms.py:128 forms.py:170 menus.py:152 models.py:105
+#: templates/core/person/list.html:8 templates/core/person/list.html:9
 #, fuzzy
 #| msgid "Person"
 msgid "Persons"
 msgstr "Personne"
 
-#: forms.py:162 forms.py:165 models.py:31
+#: forms.py:129
+#, fuzzy
+#| msgid "Contact details"
+msgid "Additional data"
+msgstr "Détails de contact"
+
+#: forms.py:163 forms.py:166 models.py:35
 msgid "Date"
 msgstr "Date"
 
-#: forms.py:163 forms.py:166 models.py:39
+#: forms.py:164 forms.py:167 models.py:43
 msgid "Time"
 msgstr ""
 
-#: forms.py:171 menus.py:149 models.py:253 templates/core/groups.html:8
-#: templates/core/groups.html:9 templates/core/person_full.html:106
+#: forms.py:172 menus.py:160 models.py:319 templates/core/group/list.html:8
+#: templates/core/group/list.html:9 templates/core/person/full.html:136
 #, fuzzy
 #| msgid "Group"
 msgid "Groups"
 msgstr "Groupe"
 
-#: forms.py:175
+#: forms.py:176
 msgid "From when until when should the announcement be displayed?"
 msgstr ""
 
-#: forms.py:178
+#: forms.py:179
 msgid "Who should see the announcement?"
 msgstr ""
 
-#: forms.py:179
+#: forms.py:180
 msgid "Write your announcement:"
 msgstr ""
 
-#: forms.py:216
-msgid ""
-"You are not allowed to create announcements which are only valid in the past."
+#: forms.py:219
+msgid "You are not allowed to create announcements which are only valid in the past."
 msgstr ""
 
-#: forms.py:220
+#: forms.py:223
 msgid "The from date and time must be earlier then the until date and time."
 msgstr ""
 
-#: forms.py:229
+#: forms.py:232
 msgid "You need at least one recipient."
 msgstr ""
 
 #: menus.py:7 templates/two_factor/core/login.html:6
 #: templates/two_factor/core/login.html:10
-#: templates/two_factor/core/login.html:73
+#: templates/two_factor/core/login.html:86
 msgid "Login"
 msgstr ""
 
@@ -146,530 +170,586 @@ msgstr ""
 msgid "Admin"
 msgstr ""
 
-#: menus.py:75 models.py:487 templates/core/announcement/list.html:7
+#: menus.py:75 models.py:564 templates/core/announcement/list.html:7
 #: templates/core/announcement/list.html:8
 msgid "Announcements"
 msgstr ""
 
-#: menus.py:86 templates/core/data_management.html:6
-#: templates/core/data_management.html:7
+#: menus.py:86 models.py:92 templates/core/school_term/list.html:8
+#: templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr ""
+
+#: menus.py:97 templates/core/management/data_management.html:6
+#: templates/core/management/data_management.html:7
 msgid "Data management"
 msgstr ""
 
-#: menus.py:94 templates/core/system_status.html:5
-#: templates/core/system_status.html:7
+#: menus.py:105 templates/core/pages/system_status.html:5
+#: templates/core/pages/system_status.html:7
 msgid "System status"
 msgstr ""
 
-#: menus.py:105
+#: menus.py:116
 msgid "Impersonation"
 msgstr ""
 
-#: menus.py:113
+#: menus.py:124
 msgid "Configuration"
 msgstr ""
 
-#: menus.py:124
+#: menus.py:135
 msgid "Backend Admin"
 msgstr ""
 
-#: menus.py:132
+#: menus.py:143
 msgid "People"
 msgstr ""
 
-#: menus.py:157
+#: menus.py:168 models.py:727 templates/core/group_type/list.html:8
+#: templates/core/group_type/list.html:9
+#, fuzzy
+#| msgid "Group"
+msgid "Group types"
+msgstr "Groupe"
+
+#: menus.py:179
 msgid "Persons and accounts"
 msgstr ""
 
-#: menus.py:168
+#: menus.py:190
 msgid "Groups and child groups"
 msgstr ""
 
-#: menus.py:183 templates/core/groups_child_groups.html:7
-#: templates/core/groups_child_groups.html:9
+#: menus.py:201 models.py:363 templates/core/additional_field/list.html:8
+#: templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr ""
+
+#: menus.py:216 templates/core/group/child_groups.html:7
+#: templates/core/group/child_groups.html:9
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: models.py:29
+#: mixins.py:406
+msgid "Linked school term"
+msgstr ""
+
+#: models.py:33
 msgid "Boolean (Yes/No)"
 msgstr ""
 
-#: models.py:30
+#: models.py:34
 msgid "Text (one line)"
 msgstr ""
 
-#: models.py:32
+#: models.py:36
 msgid "Date and time"
 msgstr ""
 
-#: models.py:33
+#: models.py:37
 msgid "Decimal number"
 msgstr ""
 
-#: models.py:34 models.py:95
+#: models.py:38 models.py:146
 msgid "E-mail address"
 msgstr ""
 
-#: models.py:35
+#: models.py:39
 msgid "Integer"
 msgstr ""
 
-#: models.py:36
+#: models.py:40
 msgid "IP address"
 msgstr ""
 
-#: models.py:37
+#: models.py:41
 msgid "Boolean or empty (Yes/No/Neither)"
 msgstr ""
 
-#: models.py:38
+#: models.py:42
 msgid "Text (multi-line)"
 msgstr ""
 
-#: models.py:40
+#: models.py:44
 msgid "URL / Link"
 msgstr ""
 
-#: models.py:53 templates/core/persons_accounts.html:36
+#: models.py:56 models.py:700
+msgid "Name"
+msgstr ""
+
+#: models.py:58
+#, fuzzy
+#| msgid "Contact details"
+msgid "Start date"
+msgstr "Détails de contact"
+
+#: models.py:59
+msgid "End date"
+msgstr ""
+
+#: models.py:77
+msgid "The start date must be earlier than the end date."
+msgstr ""
+
+#: models.py:84
+msgid "There is already a school term for this time or a part of this time."
+msgstr ""
+
+#: models.py:104 templates/core/person/accounts.html:36
 msgid "Person"
 msgstr "Personne"
 
-#: models.py:56
+#: models.py:107
 #, fuzzy
 #| msgid "Contact details"
 msgid "Can view address"
 msgstr "Détails de contact"
 
-#: models.py:57
+#: models.py:108
 #, fuzzy
 #| msgid "Contact details"
 msgid "Can view contact details"
 msgstr "Détails de contact"
 
-#: models.py:58
+#: models.py:109
 #, fuzzy
 #| msgid "Contact details"
 msgid "Can view photo"
 msgstr "Détails de contact"
 
-#: models.py:59
+#: models.py:110
 #, fuzzy
 #| msgid "Contact details"
 msgid "Can view persons groups"
 msgstr "Détails de contact"
 
-#: models.py:60
+#: models.py:111
 #, fuzzy
 #| msgid "Contact details"
 msgid "Can view personal details"
 msgstr "Détails de contact"
 
-#: models.py:65
+#: models.py:116
 msgid "female"
 msgstr ""
 
-#: models.py:65
+#: models.py:116
 msgid "male"
 msgstr ""
 
-#: models.py:73
+#: models.py:124
 msgid "Linked user"
 msgstr ""
 
-#: models.py:75
+#: models.py:126
 msgid "Is person active?"
 msgstr ""
 
-#: models.py:77
+#: models.py:128
 msgid "First name"
 msgstr "Prénom"
 
-#: models.py:78
+#: models.py:129
 msgid "Last name"
 msgstr "Nom de famille"
 
-#: models.py:80
+#: models.py:131
 msgid "Additional name(s)"
 msgstr ""
 
-#: models.py:84 models.py:260
+#: models.py:135 models.py:332
 #, fuzzy
 #| msgid "First name"
 msgid "Short name"
 msgstr "Prénom"
 
-#: models.py:87
+#: models.py:138
 msgid "Street"
 msgstr ""
 
-#: models.py:88
+#: models.py:139
 msgid "Street number"
 msgstr ""
 
-#: models.py:89
+#: models.py:140
 msgid "Postal code"
 msgstr ""
 
-#: models.py:90
+#: models.py:141
 msgid "Place"
 msgstr ""
 
-#: models.py:92
+#: models.py:143
 msgid "Home phone"
 msgstr ""
 
-#: models.py:93
+#: models.py:144
 msgid "Mobile phone"
 msgstr ""
 
-#: models.py:97
+#: models.py:148
 msgid "Date of birth"
 msgstr "Date d'anniversaire"
 
-#: models.py:98
+#: models.py:149
 msgid "Sex"
 msgstr "Sexe"
 
-#: models.py:100
+#: models.py:151
 msgid "Photo"
 msgstr ""
 
-#: models.py:105
+#: models.py:155 templates/core/person/full.html:129
 msgid "Guardians / Parents"
 msgstr ""
 
-#: models.py:112
+#: models.py:162
 msgid "Primary group"
 msgstr ""
 
-#: models.py:115 models.py:346 models.py:370 models.py:455 models.py:643
+#: models.py:165 models.py:423 models.py:447 models.py:532 models.py:720
+#: templates/core/person/full.html:112
 msgid "Description"
 msgstr "Description"
 
-#: models.py:233
+#: models.py:296
 msgid "Title of field"
 msgstr ""
 
-#: models.py:235
+#: models.py:298
 msgid "Type of field"
 msgstr ""
 
-#: models.py:239
+#: models.py:305
 msgid "Addtitional field for groups"
 msgstr ""
 
-#: models.py:240
+#: models.py:306
 msgid "Addtitional fields for groups"
 msgstr ""
 
-#: models.py:252
+#: models.py:318
 msgid "Group"
 msgstr "Groupe"
 
-#: models.py:254
+#: models.py:320
 msgid "Can assign child groups to groups"
 msgstr ""
 
-#: models.py:258
+#: models.py:330
 #, fuzzy
 #| msgid "Last name"
 msgid "Long name"
 msgstr "Nom de famille"
 
-#: models.py:268 templates/core/group_full.html:37
+#: models.py:340 templates/core/group/full.html:65
 msgid "Members"
 msgstr ""
 
-#: models.py:271 templates/core/group_full.html:34
+#: models.py:343 templates/core/group/full.html:62
 msgid "Owners"
 msgstr "Propriétaires"
 
-#: models.py:278
+#: models.py:350 templates/core/group/full.html:54
 msgid "Parent groups"
 msgstr ""
 
-#: models.py:286
+#: models.py:358
 msgid "Type of group"
 msgstr ""
 
-#: models.py:290
-msgid "Additional fields"
-msgstr ""
-
-#: models.py:342
+#: models.py:419
 msgid "User"
 msgstr ""
 
-#: models.py:345 models.py:369 models.py:454
+#: models.py:422 models.py:446 models.py:531
 #: templates/core/announcement/list.html:18
 msgid "Title"
 msgstr ""
 
-#: models.py:348
+#: models.py:425
 msgid "Application"
 msgstr ""
 
-#: models.py:354
+#: models.py:431
 msgid "Activity"
 msgstr ""
 
-#: models.py:355
+#: models.py:432
 msgid "Activities"
 msgstr ""
 
-#: models.py:361
+#: models.py:438
 msgid "Sender"
 msgstr ""
 
-#: models.py:366
+#: models.py:443
 msgid "Recipient"
 msgstr ""
 
-#: models.py:371 models.py:624
+#: models.py:448 models.py:701
 msgid "Link"
 msgstr ""
 
-#: models.py:373
+#: models.py:450
 msgid "Read"
 msgstr ""
 
-#: models.py:374
+#: models.py:451
 msgid "Sent"
 msgstr ""
 
-#: models.py:387
+#: models.py:464
 msgid "Notification"
 msgstr ""
 
-#: models.py:388
+#: models.py:465
 msgid "Notifications"
 msgstr ""
 
-#: models.py:456
+#: models.py:533
 msgid "Link to detailed view"
 msgstr ""
 
-#: models.py:459
+#: models.py:536
 msgid "Date and time from when to show"
 msgstr ""
 
-#: models.py:462
+#: models.py:539
 msgid "Date and time until when to show"
 msgstr ""
 
-#: models.py:486
+#: models.py:563
 msgid "Announcement"
 msgstr ""
 
-#: models.py:524
+#: models.py:601
 msgid "Announcement recipient"
 msgstr ""
 
-#: models.py:525
+#: models.py:602
 msgid "Announcement recipients"
 msgstr ""
 
-#: models.py:575
+#: models.py:652
 msgid "Widget Title"
 msgstr ""
 
-#: models.py:576
+#: models.py:653
 msgid "Activate Widget"
 msgstr ""
 
-#: models.py:594
+#: models.py:671
 msgid "Dashboard Widget"
 msgstr ""
 
-#: models.py:595
+#: models.py:672
 msgid "Dashboard Widgets"
 msgstr ""
 
-#: models.py:601
+#: models.py:678
 msgid "Menu ID"
 msgstr ""
 
-#: models.py:613
+#: models.py:690
 msgid "Custom menu"
 msgstr ""
 
-#: models.py:614
+#: models.py:691
 msgid "Custom menus"
 msgstr ""
 
-#: models.py:621
+#: models.py:698
 msgid "Menu"
 msgstr ""
 
-#: models.py:623
-msgid "Name"
-msgstr ""
-
-#: models.py:625
+#: models.py:702
 msgid "Icon"
 msgstr ""
 
-#: models.py:631
+#: models.py:708
 msgid "Custom menu item"
 msgstr ""
 
-#: models.py:632
+#: models.py:709
 msgid "Custom menu items"
 msgstr ""
 
-#: models.py:642
+#: models.py:719
 msgid "Title of type"
 msgstr ""
 
-#: models.py:646
+#: models.py:726 templates/core/group/full.html:46
 #, fuzzy
 #| msgid "Group"
 msgid "Group type"
 msgstr "Groupe"
 
-#: models.py:647
-#, fuzzy
-#| msgid "Group"
-msgid "Group types"
-msgstr "Groupe"
-
-#: models.py:656
+#: models.py:736
 #, fuzzy
 #| msgid "Contact details"
 msgid "Can view system status"
 msgstr "Détails de contact"
 
-#: models.py:657
+#: models.py:737
 #, fuzzy
 #| msgid "Contact details"
 msgid "Can link persons to accounts"
 msgstr "Détails de contact"
 
-#: models.py:658
+#: models.py:738
 msgid "Can manage data"
 msgstr ""
 
-#: models.py:659
+#: models.py:739
 #, fuzzy
 #| msgid "Contact details"
 msgid "Can impersonate"
 msgstr "Détails de contact"
 
-#: models.py:660
+#: models.py:740
 msgid "Can use search"
 msgstr ""
 
-#: models.py:661
+#: models.py:741
 msgid "Can change site preferences"
 msgstr ""
 
-#: models.py:662
+#: models.py:742
 msgid "Can change person preferences"
 msgstr ""
 
-#: models.py:663
+#: models.py:743
 msgid "Can change group preferences"
 msgstr ""
 
-#: preferences.py:27
+#: preferences.py:24
+msgid "Authentication"
+msgstr ""
+
+#: preferences.py:33
 msgid "Site title"
 msgstr ""
 
-#: preferences.py:36
+#: preferences.py:42
 #, fuzzy
 #| msgid "Description"
 msgid "Site description"
 msgstr "Description"
 
-#: preferences.py:45
+#: preferences.py:51
 msgid "Primary colour"
 msgstr ""
 
-#: preferences.py:54
+#: preferences.py:60
 msgid "Secondary colour"
 msgstr ""
 
-#: preferences.py:62
+#: preferences.py:68
 msgid "Logo"
 msgstr ""
 
-#: preferences.py:70
+#: preferences.py:76
 msgid "Favicon"
 msgstr ""
 
-#: preferences.py:78
+#: preferences.py:84
 msgid "PWA-Icon"
 msgstr ""
 
-#: preferences.py:87
+#: preferences.py:93
 #, fuzzy
 #| msgid "Last name"
 msgid "Mail out name"
 msgstr "Nom de famille"
 
-#: preferences.py:96
+#: preferences.py:102
 msgid "Mail out address"
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:112
 msgid "Link to privacy policy"
 msgstr ""
 
-#: preferences.py:116
+#: preferences.py:122
 msgid "Link to imprint"
 msgstr ""
 
-#: preferences.py:126
+#: preferences.py:132
 msgid "Name format for addressing"
 msgstr ""
 
-#: preferences.py:140
+#: preferences.py:146
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:156
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: preferences.py:159
+#: preferences.py:165
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: preferences.py:171
+#: preferences.py:177
 msgid "Display name of the school"
 msgstr ""
 
-#: preferences.py:180
+#: preferences.py:186
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: settings.py:276
+#: preferences.py:194
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: settings.py:300
 msgid "English"
 msgstr ""
 
-#: settings.py:277
+#: settings.py:301
 msgid "German"
 msgstr ""
 
-#: settings.py:278
+#: settings.py:302
 msgid "French"
 msgstr ""
 
-#: templates/403.html:10 templates/404.html:10 templates/500.html:10
+#: settings.py:303
+msgid "Norsk (bokmål)"
+msgstr ""
+
+#: tables.py:19 templates/core/announcement/list.html:36
+#: templates/core/group/full.html:23 templates/core/person/full.html:22
+msgid "Edit"
+msgstr ""
+
+#: tables.py:21 templates/core/announcement/list.html:22
+msgid "Actions"
+msgstr ""
+
+#: tables.py:56 tables.py:57 tables.py:71
+#: templates/core/announcement/list.html:42 templates/core/group/full.html:30
+#: templates/core/pages/delete.html:22 templates/core/person/full.html:29
+msgid "Delete"
+msgstr ""
+
+#: templates/403.html:14 templates/404.html:10 templates/500.html:10
 msgid "Error"
 msgstr ""
 
-#: templates/403.html:10
+#: templates/403.html:14
 msgid ""
 "You are not allowed to access the requested page or\n"
 "          object."
 msgstr ""
 
-#: templates/403.html:13 templates/404.html:17
+#: templates/403.html:19 templates/404.html:17
 msgid ""
 "\n"
-"            If you think this is an error in AlekSIS, please contact your "
-"site\n"
+"            If you think this is an error in AlekSIS, please contact your site\n"
 "            administrators:\n"
 "          "
 msgstr ""
@@ -697,8 +777,7 @@ msgstr ""
 #: templates/500.html:13
 msgid ""
 "\n"
-"            Your site administrators will automatically be notified about "
-"this\n"
+"            Your site administrators will automatically be notified about this\n"
 "            error. You can also contact them directly:\n"
 "          "
 msgstr ""
@@ -712,75 +791,17 @@ msgstr ""
 #: templates/503.html:13
 msgid ""
 "\n"
-"            This page is currently unavailable. If this error persists, "
-"contact your site administrators:\n"
+"            This page is currently unavailable. If this error persists, contact your site administrators:\n"
 "          "
 msgstr ""
 
-#: templates/core/about.html:6 templates/core/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: templates/core/about.html:7
-msgid "AlekSIS – The Free School Information System"
-msgstr ""
-
-#: templates/core/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS, a web-based school "
-"information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of "
-"educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:25
-msgid "Website of AlekSIS"
-msgstr ""
-
-#: templates/core/about.html:26
-msgid "Source code"
-msgstr ""
-
-#: templates/core/about.html:35
-msgid "Licence information"
-msgstr ""
-
-#: templates/core/about.html:37
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under "
-"the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the "
-"respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:45
-msgid "Free/Open Source Licence"
+#: templates/core/additional_field/edit.html:6
+#: templates/core/additional_field/edit.html:7
+msgid "Edit additional field"
 msgstr ""
 
-#: templates/core/about.html:46
-msgid "Other Licence"
-msgstr ""
-
-#: templates/core/about.html:50
-msgid "Full licence text"
-msgstr ""
-
-#: templates/core/about.html:51
-msgid "More information about the EUPL"
-msgstr ""
-
-#: templates/core/about.html:90
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
+#: templates/core/additional_field/list.html:14
+msgid "Create additional field"
 msgstr ""
 
 #: templates/core/announcement/form.html:10
@@ -813,163 +834,138 @@ msgstr ""
 msgid "Recipients"
 msgstr ""
 
-#: templates/core/announcement/list.html:22
-msgid "Actions"
-msgstr ""
-
-#: templates/core/announcement/list.html:36 templates/core/group_full.html:22
-#: templates/core/person_full.html:21
-msgid "Edit"
-msgstr ""
-
-#: templates/core/announcement/list.html:42
-msgid "Delete"
-msgstr ""
-
 #: templates/core/announcement/list.html:50
 msgid "There are no announcements."
 msgstr ""
 
-#: templates/core/announcements.html:9 templates/core/announcements.html:36
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:13
-#, python-format
-msgid ""
-"\n"
-"              Valid from %(from)s until %(until)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:40
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s – %(until)s\n"
-"            "
-msgstr ""
-
 #: templates/core/base.html:54
 msgid "Logged in as"
 msgstr ""
 
-#: templates/core/base.html:76 templates/search/search.html:7
-#: templates/search/search.html:22
-msgid "Search"
-msgstr ""
-
-#: templates/core/base.html:148
+#: templates/core/base.html:147
 msgid "About AlekSIS — The Free School Information System"
 msgstr ""
 
-#: templates/core/base.html:156
+#: templates/core/base.html:155
 msgid "Impress"
 msgstr ""
 
-#: templates/core/base.html:164
+#: templates/core/base.html:163
 msgid "Privacy Policy"
 msgstr ""
 
-#: templates/core/base_print.html:62
+#: templates/core/base_print.html:64
 msgid "Powered by AlekSIS"
 msgstr ""
 
-#: templates/core/edit_group.html:6 templates/core/edit_group.html:7
-msgid "Edit group"
-msgstr ""
-
-#: templates/core/edit_person.html:8 templates/core/edit_person.html:9
-msgid "Edit person"
-msgstr ""
-
-#: templates/core/group_full.html:28 templates/core/person_full.html:28
-msgid "Change preferences"
-msgstr ""
-
-#: templates/core/groups.html:14
-msgid "Create group"
-msgstr ""
-
-#: templates/core/groups_child_groups.html:18
+#: templates/core/group/child_groups.html:18
 msgid ""
 "\n"
-"          You can use this to assign child groups to groups. Please use the "
-"filters below to select groups you want to\n"
+"          You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n"
 "          change and click \"Next\".\n"
 "        "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:31
+#: templates/core/group/child_groups.html:31
 msgid "Update selection"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:35
+#: templates/core/group/child_groups.html:35
 msgid "Clear all filters"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:39
+#: templates/core/group/child_groups.html:39
 msgid "Currently selected groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:52
+#: templates/core/group/child_groups.html:52
 msgid "Start assigning child groups for this groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:61
+#: templates/core/group/child_groups.html:61
 msgid ""
 "\n"
 "            Please select some groups in order to go on with assigning.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:72
+#: templates/core/group/child_groups.html:72
 msgid "Current group:"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:78
+#: templates/core/group/child_groups.html:78
 msgid "Please be careful!"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:79
+#: templates/core/group/child_groups.html:79
 msgid ""
 "\n"
-"            If you click \"Back\" or \"Next\" the current group assignments "
-"are not saved.\n"
-"            If you click \"Save\", you will overwrite all existing child "
-"group relations for this group with what you\n"
+"            If you click \"Back\" or \"Next\" the current group assignments are not saved.\n"
+"            If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n"
 "            selected on this page.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:93
-#: templates/core/groups_child_groups.html:128
+#: templates/core/group/child_groups.html:93
+#: templates/core/group/child_groups.html:128
 #: templates/two_factor/_wizard_actions.html:15
 #: templates/two_factor/_wizard_actions.html:20
 msgid "Back"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:99
-#: templates/core/groups_child_groups.html:134
+#: templates/core/group/child_groups.html:99
+#: templates/core/group/child_groups.html:134
 #: templates/two_factor/_wizard_actions.html:26
 msgid "Next"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:106
-#: templates/core/groups_child_groups.html:141
-#: templates/core/save_button.html:3
+#: templates/core/group/child_groups.html:106
+#: templates/core/group/child_groups.html:141
+#: templates/core/partials/save_button.html:3
 msgid "Save"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:112
-#: templates/core/groups_child_groups.html:147
+#: templates/core/group/child_groups.html:112
+#: templates/core/group/child_groups.html:147
 msgid "Save and next"
 msgstr ""
 
+#: templates/core/group/edit.html:6 templates/core/group/edit.html:7
+msgid "Edit group"
+msgstr ""
+
+#: templates/core/group/full.html:37 templates/core/person/full.html:36
+msgid "Change preferences"
+msgstr ""
+
+#: templates/core/group/list.html:14
+msgid "Create group"
+msgstr ""
+
+#: templates/core/group/list.html:17
+msgid "Filter groups"
+msgstr ""
+
+#: templates/core/group/list.html:24 templates/core/person/list.html:28
+msgid "Clear"
+msgstr ""
+
+#: templates/core/group/list.html:28
+msgid "Selected groups"
+msgstr ""
+
+#: templates/core/group_type/edit.html:6 templates/core/group_type/edit.html:7
+#, fuzzy
+#| msgid "Group"
+msgid "Edit group type"
+msgstr "Groupe"
+
+#: templates/core/group_type/list.html:14
+#, fuzzy
+#| msgid "Group"
+msgid "Create group type"
+msgstr "Groupe"
+
 #: templates/core/index.html:4
 msgid "Home"
 msgstr ""
@@ -994,105 +990,332 @@ msgstr ""
 msgid "No notifications available yet."
 msgstr ""
 
-#: templates/core/no_person.html:12
+#: templates/core/pages/about.html:6 templates/core/pages/about.html:15
+msgid "About AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:7
+msgid "AlekSIS – The Free School Information System"
+msgstr ""
+
+#: templates/core/pages/about.html:17
 msgid ""
 "\n"
-"            Your administrator account is not linked to any person. "
-"Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
+"              This platform is powered by AlekSIS, a web-based school information system (SIS) which can be used\n"
+"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
+"              can be used by anyone.\n"
+"            "
+msgstr ""
+
+#: templates/core/pages/about.html:25
+msgid "Website of AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:26
+msgid "Source code"
+msgstr ""
+
+#: templates/core/pages/about.html:35
+msgid "Licence information"
 msgstr ""
 
-#: templates/core/no_person.html:19
+#: templates/core/pages/about.html:37
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
+"              information from third-party apps, if installed, refer to the respective components below. The\n"
+"              licences are marked like this:\n"
+"            "
 msgstr ""
 
-#: templates/core/person_full.html:34
-msgid "Contact details"
-msgstr "Détails de contact"
+#: templates/core/pages/about.html:45
+msgid "Free/Open Source Licence"
+msgstr ""
 
-#: templates/core/persons_accounts.html:7
-#: templates/core/persons_accounts.html:9
-msgid "Link persons to accounts"
+#: templates/core/pages/about.html:46
+msgid "Other Licence"
 msgstr ""
 
-#: templates/core/persons_accounts.html:16
+#: templates/core/pages/about.html:50
+msgid "Full licence text"
+msgstr ""
+
+#: templates/core/pages/about.html:51
+msgid "More information about the EUPL"
+msgstr ""
+
+#: templates/core/pages/about.html:90
+#, python-format
 msgid ""
 "\n"
-"        You can use this form to assign user accounts to persons. Use the\n"
-"        dropdowns to select existing accounts; use the text fields to create "
-"new\n"
-"        accounts on-the-fly. The latter will create a new account with the\n"
-"        entered username and copy all other details from the person.\n"
-"      "
+"                    This app is licenced under %(licence)s.\n"
+"                  "
 msgstr ""
 
-#: templates/core/persons_accounts.html:31
-#: templates/core/persons_accounts.html:55
-msgid "Update"
+#: templates/core/pages/delete.html:6
+#, python-format
+msgid "Delete %(object_name)s"
 msgstr ""
 
-#: templates/core/persons_accounts.html:37
-msgid "Existing account"
+#: templates/core/pages/delete.html:13
+#, python-format
+msgid ""
+"\n"
+"      Do you really want to delete the %(object_name)s \"%(object)s\"?\n"
+"    "
 msgstr ""
 
-#: templates/core/persons_accounts.html:38
-msgid "New account"
+#: templates/core/pages/offline.html:6
+msgid ""
+"No internet\n"
+"    connection."
 msgstr ""
 
-#: templates/core/system_status.html:12
+#: templates/core/pages/offline.html:10
+msgid ""
+"\n"
+"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
+"      administrators:\n"
+"    "
+msgstr ""
+
+#: templates/core/pages/progress.html:27
+msgid ""
+"\n"
+"              Without activated JavaScript the progress status can't be updated.\n"
+"            "
+msgstr ""
+
+#: templates/core/pages/progress.html:47
+#: templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr ""
+
+#: templates/core/pages/system_status.html:12
 msgid "System checks"
 msgstr ""
 
-#: templates/core/system_status.html:21
+#: templates/core/pages/system_status.html:21
 msgid "Maintenance mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:23
+#: templates/core/pages/system_status.html:23
 msgid ""
 "\n"
-"                Only admin and visitors from internal IPs can access "
-"thesite.\n"
+"                Only admin and visitors from internal IPs can access thesite.\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:34
+#: templates/core/pages/system_status.html:34
 msgid "Maintenance mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:35
+#: templates/core/pages/system_status.html:35
 msgid "Everyone can access the site."
 msgstr ""
 
-#: templates/core/system_status.html:45
+#: templates/core/pages/system_status.html:45
 msgid "Debug mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:47
+#: templates/core/pages/system_status.html:47
 msgid ""
 "\n"
-"                The web server throws back debug information on errors. Do "
-"not use in production!\n"
+"                The web server throws back debug information on errors. Do not use in production!\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:54
+#: templates/core/pages/system_status.html:54
 msgid "Debug mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:56
+#: templates/core/pages/system_status.html:56
 msgid ""
 "\n"
-"                Debug mode is disabled. Default error pages are displayed on "
-"errors.\n"
+"                Debug mode is disabled. Default error pages are displayed on errors.\n"
 "              "
 msgstr ""
 
+#: templates/core/pages/system_status.html:69
+msgid "System health checks"
+msgstr ""
+
+#: templates/core/pages/system_status.html:75
+msgid "Service"
+msgstr ""
+
+#: templates/core/pages/system_status.html:76
+#: templates/core/pages/system_status.html:115
+msgid "Status"
+msgstr ""
+
+#: templates/core/pages/system_status.html:77
+msgid "Time taken"
+msgstr ""
+
+#: templates/core/pages/system_status.html:96
+msgid "seconds"
+msgstr ""
+
+#: templates/core/pages/system_status.html:107
+msgid "Celery task results"
+msgstr ""
+
+#: templates/core/pages/system_status.html:112
+msgid "Task"
+msgstr ""
+
+#: templates/core/pages/system_status.html:113
+msgid "ID"
+msgstr ""
+
+#: templates/core/pages/system_status.html:114
+#, fuzzy
+#| msgid "Date"
+msgid "Date done"
+msgstr "Date"
+
+#: templates/core/partials/announcements.html:9
+#: templates/core/partials/announcements.html:36
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:13
+#, python-format
+msgid ""
+"\n"
+"              Valid from %(from)s until %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:40
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s – %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:10
+#, python-format
+msgid ""
+"\n"
+"              Created by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:14
+#: templates/core/partials/crud_events.html:22
+#: templates/core/partials/crud_events.html:26
+#, python-format
+msgid ""
+"\n"
+"              Updated by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:18
+#, python-format
+msgid ""
+"\n"
+"              Deleted by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/language_form.html:16
+msgid "Language"
+msgstr ""
+
+#: templates/core/partials/language_form.html:28
+msgid "Select language"
+msgstr ""
+
+#: templates/core/partials/no_person.html:12
+msgid ""
+"\n"
+"            Your administrator account is not linked to any person. Therefore,\n"
+"            a dummy person has been linked to your account.\n"
+"          "
+msgstr ""
+
+#: templates/core/partials/no_person.html:19
+msgid ""
+"\n"
+"            Your user account is not linked to a person. This means you\n"
+"            cannot access any school-related information. Please contact\n"
+"            the managers of AlekSIS at your school.\n"
+"          "
+msgstr ""
+
+#: templates/core/person/accounts.html:7 templates/core/person/accounts.html:9
+msgid "Link persons to accounts"
+msgstr ""
+
+#: templates/core/person/accounts.html:16
+msgid ""
+"\n"
+"        You can use this form to assign user accounts to persons. Use the\n"
+"        dropdowns to select existing accounts; use the text fields to create new\n"
+"        accounts on-the-fly. The latter will create a new account with the\n"
+"        entered username and copy all other details from the person.\n"
+"      "
+msgstr ""
+
+#: templates/core/person/accounts.html:31
+#: templates/core/person/accounts.html:55
+msgid "Update"
+msgstr ""
+
+#: templates/core/person/accounts.html:37
+msgid "Existing account"
+msgstr ""
+
+#: templates/core/person/accounts.html:38
+msgid "New account"
+msgstr ""
+
+#: templates/core/person/edit.html:11 templates/core/person/edit.html:12
+msgid "Edit person"
+msgstr ""
+
+#: templates/core/person/full.html:42
+msgid "Contact details"
+msgstr "Détails de contact"
+
+#: templates/core/person/full.html:122
+msgid "Children"
+msgstr ""
+
+#: templates/core/person/list.html:17
+#, fuzzy
+#| msgid "Contact details"
+msgid "Create person"
+msgstr "Détails de contact"
+
+#: templates/core/person/list.html:21
+msgid "Filter persons"
+msgstr ""
+
+#: templates/core/person/list.html:32
+msgid "Selected persons"
+msgstr ""
+
+#: templates/core/school_term/create.html:6
+#: templates/core/school_term/create.html:7
+#: templates/core/school_term/list.html:14
+msgid "Create school term"
+msgstr ""
+
+#: templates/core/school_term/edit.html:6
+#: templates/core/school_term/edit.html:7
+msgid "Edit school term"
+msgstr ""
+
 #: templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -1118,23 +1341,6 @@ msgstr ""
 msgid "Impersonate user"
 msgstr ""
 
-#: templates/offline.html:6
-msgid ""
-"No internet\n"
-"    connection."
-msgstr ""
-
-#: templates/offline.html:10
-msgid ""
-"\n"
-"      There was an error accessing this page. You probably don't have an "
-"internet connection. Check to see if your WiFi\n"
-"      or mobile data is turned on and try again. If you think you are "
-"connected, please contact the system\n"
-"      administrators:\n"
-"    "
-msgstr ""
-
 #: templates/search/search.html:8
 msgid "Global Search"
 msgstr ""
@@ -1159,28 +1365,43 @@ msgstr ""
 msgid "New notification for"
 msgstr ""
 
-#: templates/templated_email/notification.email:7
-msgid "Dear"
+#: templates/templated_email/notification.email:6
+#: templates/templated_email/notification.email:27
+#, python-format
+msgid "Dear %(notification_user)s,"
 msgstr ""
 
 #: templates/templated_email/notification.email:8
+#: templates/templated_email/notification.email:29
 msgid "we got a new notification for you:"
 msgstr ""
 
-#: templates/templated_email/notification.email:12
+#: templates/templated_email/notification.email:15
+#: templates/templated_email/notification.email:35
 msgid "More information"
 msgstr ""
 
-#: templates/templated_email/notification.email:16
+#: templates/templated_email/notification.email:18
 #, python-format
 msgid ""
 "\n"
-"    <p>By %(trans_sender)s at %(trans_created_at)s</p>\n"
-"\n"
-"    <i>Your AlekSIS team</i>\n"
+"        Sent by %(trans_sender)s at %(trans_created_at)s\n"
 "    "
 msgstr ""
 
+#: templates/templated_email/notification.email:22
+#: templates/templated_email/notification.email:46
+msgid "Your AlekSIS team"
+msgstr ""
+
+#: templates/templated_email/notification.email:40
+#, python-format
+msgid ""
+"\n"
+"            Sent by %(trans_sender)s at %(trans_created_at)s\n"
+"        "
+msgstr ""
+
 #: templates/two_factor/_base_focus.html:6
 #: templates/two_factor/core/otp_required.html:22
 #: templates/two_factor/core/setup.html:5
@@ -1203,10 +1424,8 @@ msgid ""
 "\n"
 "        Backup tokens can be used when your primary and backup\n"
 "        phone numbers aren't available. The backup tokens below can be used\n"
-"        for login verification. If you've used up all your backup tokens, "
-"you\n"
-"        can generate a new set of backup tokens. Only the backup tokens "
-"shown\n"
+"        for login verification. If you've used up all your backup tokens, you\n"
+"        can generate a new set of backup tokens. Only the backup tokens shown\n"
 "        below will be valid.\n"
 "      "
 msgstr ""
@@ -1231,52 +1450,58 @@ msgid "Generate Tokens"
 msgstr ""
 
 #: templates/two_factor/core/login.html:16
-msgid ""
-"You have no permission to view this page. Please login with an other account."
+msgid "You have no permission to view this page. Please login with an other account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:25
+#: templates/two_factor/core/login.html:24
 msgid "Please login to see this page."
 msgstr ""
 
-#: templates/two_factor/core/login.html:28
+#: templates/two_factor/core/login.html:30
+msgid "Login with username and password"
+msgstr ""
+
+#: templates/two_factor/core/login.html:40
 msgid ""
 "We are calling your phone right now, please enter the\n"
 "              digits you hear."
 msgstr ""
 
-#: templates/two_factor/core/login.html:31
+#: templates/two_factor/core/login.html:43
 msgid ""
 "We sent you a text message, please enter the tokens we\n"
 "              sent."
 msgstr ""
 
-#: templates/two_factor/core/login.html:34
+#: templates/two_factor/core/login.html:46
 msgid ""
 "Please enter the tokens generated by your token\n"
 "              generator."
 msgstr ""
 
-#: templates/two_factor/core/login.html:38
+#: templates/two_factor/core/login.html:50
 msgid ""
 "Use this form for entering backup tokens for logging in.\n"
-"            These tokens have been generated for you to print and keep safe. "
-"Please\n"
+"            These tokens have been generated for you to print and keep safe. Please\n"
 "            enter one of these backup tokens to login to your account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:56
+#: templates/two_factor/core/login.html:68
 msgid "Or, alternatively, use one of your backup phones:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:66
+#: templates/two_factor/core/login.html:78
 msgid "As a last resort, you can use a backup token:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:69
+#: templates/two_factor/core/login.html:81
 msgid "Use Backup Token"
 msgstr ""
 
+#: templates/two_factor/core/login.html:93
+msgid "Use alternative login options"
+msgstr ""
+
 #: templates/two_factor/core/otp_required.html:9
 msgid "Permission Denied"
 msgstr ""
@@ -1284,8 +1509,7 @@ msgstr ""
 #: templates/two_factor/core/otp_required.html:10
 msgid ""
 "The page you requested, enforces users to verify using\n"
-"          two-factor authentication for security reasons. You need to enable "
-"these\n"
+"          two-factor authentication for security reasons. You need to enable these\n"
 "          security features in order to access this page."
 msgstr ""
 
@@ -1296,10 +1520,6 @@ msgid ""
 "          security."
 msgstr ""
 
-#: templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr ""
-
 #: templates/two_factor/core/phone_register.html:5
 #: templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -1362,8 +1582,7 @@ msgstr ""
 #: templates/two_factor/core/setup.html:50
 msgid ""
 "\n"
-"            We are calling your phone right now, please enter the digits you "
-"hear.\n"
+"            We are calling your phone right now, please enter the digits you hear.\n"
 "          "
 msgstr ""
 
@@ -1377,12 +1596,9 @@ msgstr ""
 #: templates/two_factor/core/setup.html:63
 msgid ""
 "\n"
-"          We've encountered an issue with the selected authentication "
-"method. Please\n"
-"          go back and verify that you entered your information correctly, "
-"try\n"
-"          again, or use a different authentication method instead. If the "
-"issue\n"
+"          We've encountered an issue with the selected authentication method. Please\n"
+"          go back and verify that you entered your information correctly, try\n"
+"          again, or use a different authentication method instead. If the issue\n"
 "          persists, contact the site administrator.\n"
 "        "
 msgstr ""
@@ -1404,8 +1620,7 @@ msgstr ""
 #: templates/two_factor/core/setup_complete.html:14
 msgid ""
 "\n"
-"        Congratulations, you've successfully enabled two-factor "
-"authentication.\n"
+"        Congratulations, you've successfully enabled two-factor authentication.\n"
 "      "
 msgstr ""
 
@@ -1423,8 +1638,7 @@ msgstr ""
 msgid ""
 "\n"
 "          However, it might happen that you don't have access to\n"
-"          your primary token device. To enable account recovery, generate "
-"backup codes\n"
+"          your primary token device. To enable account recovery, generate backup codes\n"
 "          or add a phone number.\n"
 "        "
 msgstr ""
@@ -1442,9 +1656,7 @@ msgid "Disable Two-Factor Authentication"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:12
-msgid ""
-"You are about to disable two-factor authentication. This weakens your "
-"account security, are you sure?"
+msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:26
@@ -1531,26 +1743,58 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: views.py:212
+#: views.py:122
+msgid "The school term has been created."
+msgstr ""
+
+#: views.py:133
+msgid "The school term has been saved."
+msgstr ""
+
+#: views.py:273
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: views.py:240
+#: views.py:309
 msgid "The person has been saved."
 msgstr ""
 
-#: views.py:276
+#: views.py:346
 msgid "The group has been saved."
 msgstr ""
 
-#: views.py:348
+#: views.py:434
 msgid "The announcement has been saved."
 msgstr ""
 
-#: views.py:364
+#: views.py:450
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: views.py:435
+#: views.py:521
 msgid "The preferences have been saved successfully."
 msgstr ""
+
+#: views.py:544
+msgid "The person has been deleted."
+msgstr ""
+
+#: views.py:557
+msgid "The group has been deleted."
+msgstr ""
+
+#: views.py:588
+msgid "The additional_field has been saved."
+msgstr ""
+
+#: views.py:622
+msgid "The additional field has been deleted."
+msgstr ""
+
+#: views.py:646
+msgid "The group type has been saved."
+msgstr ""
+
+#: views.py:676
+msgid "The group type has been deleted."
+msgstr ""
diff --git a/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po b/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po
index 417efd1fc19835a2763ca93f09e98863c9d77c61..62da02ce6b9e58455b9ed6547a5d1380b2b062ac 100644
--- a/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-03 10:36+0000\n"
+"POT-Creation-Date: 2020-08-02 16:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,14 +18,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: aleksis/core/static/js/main.js:21
+#: static/js/main.js:21
 msgid "Today"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:22
+#: static/js/main.js:22
 msgid "Cancel"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:23
+#: static/js/main.js:23
 msgid "OK"
 msgstr ""
diff --git a/aleksis/core/locale/la/LC_MESSAGES/django.po b/aleksis/core/locale/la/LC_MESSAGES/django.po
index ea6778d9a100251312966073db19d4a1cf7002e3..37cb96d070be3f09b45b2789de2d6ead57d3ec6e 100644
--- a/aleksis/core/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/la/LC_MESSAGES/django.po
@@ -7,11 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-04 15:39+0200\n"
+"POT-Creation-Date: 2020-08-02 16:29+0200\n"
 "PO-Revision-Date: 2020-04-27 13:03+0000\n"
 "Last-Translator: Julian <leuckerj@gmail.com>\n"
-"Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis/"
-"la/>\n"
+"Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis/la/>\n"
 "Language: la\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,6 +18,24 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.0.1\n"
 
+#: filters.py:37 templates/core/base.html:77 templates/core/group/list.html:20
+#: templates/core/person/list.html:24 templates/search/search.html:7
+#: templates/search/search.html:22
+msgid "Search"
+msgstr ""
+
+#: filters.py:53
+#, fuzzy
+#| msgid "Short name"
+msgid "Search by name"
+msgstr "Breve nomen"
+
+#: filters.py:65
+#, fuzzy
+#| msgid "E-mail address"
+msgid "Search by contact details"
+msgstr "Inscriptio electronica"
+
 #: forms.py:46
 msgid "You cannot set a new username when also selecting an existing user."
 msgstr ""
@@ -45,68 +62,77 @@ msgstr ""
 msgid "Advanced personal data"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 msgid "New user"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 #, fuzzy
 #| msgid "Persons and accounts"
 msgid "Create a new account"
 msgstr "Personae et computi"
 
-#: forms.py:128
+#: forms.py:126 models.py:91
+msgid "School term"
+msgstr "Anus scolae"
+
+#: forms.py:127
 #, fuzzy
 #| msgid "Data management"
 msgid "Common data"
 msgstr "Adminstratio datarum"
 
-#: forms.py:129 forms.py:169 menus.py:141 models.py:54
-#: templates/core/persons.html:8 templates/core/persons.html:9
+#: forms.py:128 forms.py:170 menus.py:152 models.py:105
+#: templates/core/person/list.html:8 templates/core/person/list.html:9
 msgid "Persons"
 msgstr "personae"
 
-#: forms.py:162 forms.py:165 models.py:31
+#: forms.py:129
+#, fuzzy
+#| msgid "Additional name(s)"
+msgid "Additional data"
+msgstr "addita nomines"
+
+#: forms.py:163 forms.py:166 models.py:35
 msgid "Date"
 msgstr "dies"
 
-#: forms.py:163 forms.py:166 models.py:39
+#: forms.py:164 forms.py:167 models.py:43
 msgid "Time"
 msgstr "tempus"
 
-#: forms.py:171 menus.py:149 models.py:253 templates/core/groups.html:8
-#: templates/core/groups.html:9 templates/core/person_full.html:106
+#: forms.py:172 menus.py:160 models.py:319 templates/core/group/list.html:8
+#: templates/core/group/list.html:9 templates/core/person/full.html:136
 msgid "Groups"
 msgstr "Greges"
 
-#: forms.py:175
+#: forms.py:176
 msgid "From when until when should the announcement be displayed?"
 msgstr ""
 
-#: forms.py:178
+#: forms.py:179
 msgid "Who should see the announcement?"
 msgstr "Quis nuntium videatne?"
 
-#: forms.py:179
+#: forms.py:180
 msgid "Write your announcement:"
 msgstr "Scribe nuntium:"
 
-#: forms.py:216
-msgid ""
-"You are not allowed to create announcements which are only valid in the past."
+#: forms.py:219
+msgid "You are not allowed to create announcements which are only valid in the past."
 msgstr ""
 
-#: forms.py:220
+#: forms.py:223
 msgid "The from date and time must be earlier then the until date and time."
 msgstr ""
 
-#: forms.py:229
+#: forms.py:232
 msgid "You need at least one recipient."
 msgstr ""
 
 #: menus.py:7 templates/two_factor/core/login.html:6
 #: templates/two_factor/core/login.html:10
-#: templates/two_factor/core/login.html:73
+#: templates/two_factor/core/login.html:86
 msgid "Login"
 msgstr "nomen profiteri"
 
@@ -142,560 +168,620 @@ msgstr ""
 msgid "Admin"
 msgstr "Administratio"
 
-#: menus.py:75 models.py:487 templates/core/announcement/list.html:7
+#: menus.py:75 models.py:564 templates/core/announcement/list.html:7
 #: templates/core/announcement/list.html:8
 msgid "Announcements"
 msgstr "Nuntii"
 
-#: menus.py:86 templates/core/data_management.html:6
-#: templates/core/data_management.html:7
+#: menus.py:86 models.py:92 templates/core/school_term/list.html:8
+#: templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr "ani scolae"
+
+#: menus.py:97 templates/core/management/data_management.html:6
+#: templates/core/management/data_management.html:7
 msgid "Data management"
 msgstr "Adminstratio datarum"
 
-#: menus.py:94 templates/core/system_status.html:5
-#: templates/core/system_status.html:7
+#: menus.py:105 templates/core/pages/system_status.html:5
+#: templates/core/pages/system_status.html:7
 msgid "System status"
 msgstr "Status systemae"
 
-#: menus.py:105
+#: menus.py:116
 msgid "Impersonation"
 msgstr "Simulare aliquem"
 
-#: menus.py:113
+#: menus.py:124
 #, fuzzy
 #| msgid "Notification"
 msgid "Configuration"
 msgstr "Nuntius"
 
-#: menus.py:124
+#: menus.py:135
 msgid "Backend Admin"
 msgstr ""
 
-#: menus.py:132
+#: menus.py:143
 msgid "People"
 msgstr "Personae"
 
-#: menus.py:157
+#: menus.py:168 models.py:727 templates/core/group_type/list.html:8
+#: templates/core/group_type/list.html:9
+#, fuzzy
+#| msgid "Groups"
+msgid "Group types"
+msgstr "Greges"
+
+#: menus.py:179
 msgid "Persons and accounts"
 msgstr "Personae et computi"
 
-#: menus.py:168
+#: menus.py:190
 msgid "Groups and child groups"
 msgstr ""
 
-#: menus.py:183 templates/core/groups_child_groups.html:7
-#: templates/core/groups_child_groups.html:9
+#: menus.py:201 models.py:363 templates/core/additional_field/list.html:8
+#: templates/core/additional_field/list.html:9
+#, fuzzy
+#| msgid "Additional name(s)"
+msgid "Additional fields"
+msgstr "addita nomines"
+
+#: menus.py:216 templates/core/group/child_groups.html:7
+#: templates/core/group/child_groups.html:9
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: models.py:29
+#: mixins.py:406
+#, fuzzy
+#| msgid "Edit school term"
+msgid "Linked school term"
+msgstr "Muta anum scolae"
+
+#: models.py:33
 msgid "Boolean (Yes/No)"
 msgstr ""
 
-#: models.py:30
+#: models.py:34
 msgid "Text (one line)"
 msgstr ""
 
-#: models.py:32
+#: models.py:36
 msgid "Date and time"
 msgstr ""
 
-#: models.py:33
+#: models.py:37
 msgid "Decimal number"
 msgstr ""
 
-#: models.py:34 models.py:95
+#: models.py:38 models.py:146
 msgid "E-mail address"
 msgstr "Inscriptio electronica"
 
-#: models.py:35
+#: models.py:39
 msgid "Integer"
 msgstr ""
 
-#: models.py:36
+#: models.py:40
 #, fuzzy
 #| msgid "E-mail address"
 msgid "IP address"
 msgstr "Inscriptio electronica"
 
-#: models.py:37
+#: models.py:41
 msgid "Boolean or empty (Yes/No/Neither)"
 msgstr ""
 
-#: models.py:38
+#: models.py:42
 msgid "Text (multi-line)"
 msgstr ""
 
-#: models.py:40
+#: models.py:44
 msgid "URL / Link"
 msgstr ""
 
-#: models.py:53 templates/core/persons_accounts.html:36
+#: models.py:56 models.py:700
+msgid "Name"
+msgstr "Nomen"
+
+#: models.py:58
+msgid "Start date"
+msgstr ""
+
+#: models.py:59
+msgid "End date"
+msgstr ""
+
+#: models.py:77
+msgid "The start date must be earlier than the end date."
+msgstr ""
+
+#: models.py:84
+msgid "There is already a school term for this time or a part of this time."
+msgstr ""
+
+#: models.py:104 templates/core/person/accounts.html:36
 msgid "Person"
 msgstr "Persona"
 
-#: models.py:56
+#: models.py:107
 #, fuzzy
 #| msgid "E-mail address"
 msgid "Can view address"
 msgstr "Inscriptio electronica"
 
-#: models.py:57
+#: models.py:108
 #, fuzzy
 #| msgid "E-mail address"
 msgid "Can view contact details"
 msgstr "Inscriptio electronica"
 
-#: models.py:58
+#: models.py:109
 #, fuzzy
 #| msgid "E-mail address"
 msgid "Can view photo"
 msgstr "Inscriptio electronica"
 
-#: models.py:59
+#: models.py:110
 #, fuzzy
 #| msgid "Persons and accounts"
 msgid "Can view persons groups"
 msgstr "Personae et computi"
 
-#: models.py:60
+#: models.py:111
 #, fuzzy
 #| msgid "Stop impersonation"
 msgid "Can view personal details"
 msgstr "Simulandum aliquem finire"
 
-#: models.py:65
+#: models.py:116
 msgid "female"
 msgstr "femininum"
 
-#: models.py:65
+#: models.py:116
 msgid "male"
 msgstr "maskulinum"
 
-#: models.py:73
+#: models.py:124
 msgid "Linked user"
 msgstr ""
 
-#: models.py:75
+#: models.py:126
 #, fuzzy
 #| msgid "Impersonation"
 msgid "Is person active?"
 msgstr "Simulare aliquem"
 
-#: models.py:77
+#: models.py:128
 msgid "First name"
 msgstr "Primus nomen"
 
-#: models.py:78
+#: models.py:129
 msgid "Last name"
 msgstr "Secondus nomen"
 
-#: models.py:80
+#: models.py:131
 msgid "Additional name(s)"
 msgstr "addita nomines"
 
-#: models.py:84 models.py:260
+#: models.py:135 models.py:332
 msgid "Short name"
 msgstr "Breve nomen"
 
-#: models.py:87
+#: models.py:138
 msgid "Street"
 msgstr "Via"
 
-#: models.py:88
+#: models.py:139
 msgid "Street number"
 msgstr "Numerus domini"
 
-#: models.py:89
+#: models.py:140
 msgid "Postal code"
 msgstr "Numerus directorius"
 
-#: models.py:90
+#: models.py:141
 msgid "Place"
 msgstr "Urbs"
 
-#: models.py:92
+#: models.py:143
 msgid "Home phone"
 msgstr "Numerus telephoni domi"
 
-#: models.py:93
+#: models.py:144
 msgid "Mobile phone"
 msgstr "Numerus telephoni mobilis"
 
-#: models.py:97
+#: models.py:148
 msgid "Date of birth"
 msgstr "Dies natalis"
 
-#: models.py:98
+#: models.py:149
 msgid "Sex"
 msgstr "Genus"
 
-#: models.py:100
+#: models.py:151
 msgid "Photo"
 msgstr "Photographia"
 
-#: models.py:105
+#: models.py:155 templates/core/person/full.html:129
 msgid "Guardians / Parents"
 msgstr "Parentes"
 
-#: models.py:112
+#: models.py:162
 msgid "Primary group"
 msgstr ""
 
-#: models.py:115 models.py:346 models.py:370 models.py:455 models.py:643
+#: models.py:165 models.py:423 models.py:447 models.py:532 models.py:720
+#: templates/core/person/full.html:112
 msgid "Description"
 msgstr "Descriptio"
 
-#: models.py:233
+#: models.py:296
 msgid "Title of field"
 msgstr ""
 
-#: models.py:235
+#: models.py:298
 msgid "Type of field"
 msgstr ""
 
-#: models.py:239
+#: models.py:305
 #, fuzzy
 #| msgid "Additional name(s)"
 msgid "Addtitional field for groups"
 msgstr "addita nomines"
 
-#: models.py:240
+#: models.py:306
 #, fuzzy
 #| msgid "Additional name(s)"
 msgid "Addtitional fields for groups"
 msgstr "addita nomines"
 
-#: models.py:252
+#: models.py:318
 msgid "Group"
 msgstr "Grex"
 
-#: models.py:254
+#: models.py:320
 msgid "Can assign child groups to groups"
 msgstr ""
 
-#: models.py:258
+#: models.py:330
 #, fuzzy
 #| msgid "Last name"
 msgid "Long name"
 msgstr "Secondus nomen"
 
-#: models.py:268 templates/core/group_full.html:37
+#: models.py:340 templates/core/group/full.html:65
 msgid "Members"
 msgstr ""
 
-#: models.py:271 templates/core/group_full.html:34
+#: models.py:343 templates/core/group/full.html:62
 msgid "Owners"
 msgstr ""
 
-#: models.py:278
+#: models.py:350 templates/core/group/full.html:54
 msgid "Parent groups"
 msgstr ""
 
-#: models.py:286
+#: models.py:358
 msgid "Type of group"
 msgstr ""
 
-#: models.py:290
-#, fuzzy
-#| msgid "Additional name(s)"
-msgid "Additional fields"
-msgstr "addita nomines"
-
-#: models.py:342
+#: models.py:419
 msgid "User"
 msgstr ""
 
-#: models.py:345 models.py:369 models.py:454
+#: models.py:422 models.py:446 models.py:531
 #: templates/core/announcement/list.html:18
 msgid "Title"
 msgstr "Titulus"
 
-#: models.py:348
+#: models.py:425
 msgid "Application"
 msgstr ""
 
-#: models.py:354
+#: models.py:431
 msgid "Activity"
 msgstr ""
 
-#: models.py:355
+#: models.py:432
 msgid "Activities"
 msgstr ""
 
-#: models.py:361
+#: models.py:438
 msgid "Sender"
 msgstr "Mittens"
 
-#: models.py:366
+#: models.py:443
 msgid "Recipient"
 msgstr ""
 
-#: models.py:371 models.py:624
+#: models.py:448 models.py:701
 msgid "Link"
 msgstr ""
 
-#: models.py:373
+#: models.py:450
 msgid "Read"
 msgstr ""
 
-#: models.py:374
+#: models.py:451
 msgid "Sent"
 msgstr ""
 
-#: models.py:387
+#: models.py:464
 #, fuzzy
 #| msgid "Notifications"
 msgid "Notification"
 msgstr "Nuntii"
 
-#: models.py:388
+#: models.py:465
 msgid "Notifications"
 msgstr "Nuntii"
 
-#: models.py:456
+#: models.py:533
 msgid "Link to detailed view"
 msgstr ""
 
-#: models.py:459
+#: models.py:536
 msgid "Date and time from when to show"
 msgstr ""
 
-#: models.py:462
+#: models.py:539
 msgid "Date and time until when to show"
 msgstr ""
 
-#: models.py:486
+#: models.py:563
 #, fuzzy
 #| msgid "Announcements"
 msgid "Announcement"
 msgstr "Nuntii"
 
-#: models.py:524
+#: models.py:601
 #, fuzzy
 #| msgid "Announcements"
 msgid "Announcement recipient"
 msgstr "Nuntii"
 
-#: models.py:525
+#: models.py:602
 #, fuzzy
 #| msgid "Announcements"
 msgid "Announcement recipients"
 msgstr "Nuntii"
 
-#: models.py:575
+#: models.py:652
 #, fuzzy
 #| msgid "Site title"
 msgid "Widget Title"
 msgstr "Titulus paginae"
 
-#: models.py:576
+#: models.py:653
 msgid "Activate Widget"
 msgstr ""
 
-#: models.py:594
+#: models.py:671
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Dashboard Widget"
 msgstr "Forum"
 
-#: models.py:595
+#: models.py:672
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Dashboard Widgets"
 msgstr "Forum"
 
-#: models.py:601
+#: models.py:678
 msgid "Menu ID"
 msgstr ""
 
-#: models.py:613
+#: models.py:690
 msgid "Custom menu"
 msgstr ""
 
-#: models.py:614
+#: models.py:691
 msgid "Custom menus"
 msgstr ""
 
-#: models.py:621
+#: models.py:698
 msgid "Menu"
 msgstr ""
 
-#: models.py:623
-msgid "Name"
-msgstr "Nomen"
-
-#: models.py:625
+#: models.py:702
 msgid "Icon"
 msgstr "Nota"
 
-#: models.py:631
+#: models.py:708
 msgid "Custom menu item"
 msgstr ""
 
-#: models.py:632
+#: models.py:709
 msgid "Custom menu items"
 msgstr ""
 
-#: models.py:642
+#: models.py:719
 msgid "Title of type"
 msgstr ""
 
-#: models.py:646
+#: models.py:726 templates/core/group/full.html:46
 #, fuzzy
 #| msgid "Group"
 msgid "Group type"
 msgstr "Grex"
 
-#: models.py:647
-#, fuzzy
-#| msgid "Groups"
-msgid "Group types"
-msgstr "Greges"
-
-#: models.py:656
+#: models.py:736
 #, fuzzy
 #| msgid "System status"
 msgid "Can view system status"
 msgstr "Status systemae"
 
-#: models.py:657
+#: models.py:737
 #, fuzzy
 #| msgid "Persons and accounts"
 msgid "Can link persons to accounts"
 msgstr "Personae et computi"
 
-#: models.py:658
+#: models.py:738
 #, fuzzy
 #| msgid "Data management"
 msgid "Can manage data"
 msgstr "Adminstratio datarum"
 
-#: models.py:659
+#: models.py:739
 #, fuzzy
 #| msgid "Stop impersonation"
 msgid "Can impersonate"
 msgstr "Simulandum aliquem finire"
 
-#: models.py:660
+#: models.py:740
 msgid "Can use search"
 msgstr ""
 
-#: models.py:661
+#: models.py:741
 msgid "Can change site preferences"
 msgstr ""
 
-#: models.py:662
+#: models.py:742
 msgid "Can change person preferences"
 msgstr ""
 
-#: models.py:663
+#: models.py:743
 msgid "Can change group preferences"
 msgstr ""
 
-#: preferences.py:27
+#: preferences.py:24
+#, fuzzy
+#| msgid "Notifications"
+msgid "Authentication"
+msgstr "Nuntii"
+
+#: preferences.py:33
 msgid "Site title"
 msgstr "Titulus paginae"
 
-#: preferences.py:36
+#: preferences.py:42
 msgid "Site description"
 msgstr "Descriptio paginae"
 
-#: preferences.py:45
+#: preferences.py:51
 msgid "Primary colour"
 msgstr ""
 
-#: preferences.py:54
+#: preferences.py:60
 msgid "Secondary colour"
 msgstr ""
 
-#: preferences.py:62
+#: preferences.py:68
 #, fuzzy
 #| msgid "Logout"
 msgid "Logo"
 msgstr "nomen retractare"
 
-#: preferences.py:70
+#: preferences.py:76
 msgid "Favicon"
 msgstr ""
 
-#: preferences.py:78
+#: preferences.py:84
 #, fuzzy
 #| msgid "Icon"
 msgid "PWA-Icon"
 msgstr "Nota"
 
-#: preferences.py:87
+#: preferences.py:93
 #, fuzzy
 #| msgid "Last name"
 msgid "Mail out name"
 msgstr "Secondus nomen"
 
-#: preferences.py:96
+#: preferences.py:102
 #, fuzzy
 #| msgid "E-mail address"
 msgid "Mail out address"
 msgstr "Inscriptio electronica"
 
-#: preferences.py:106
+#: preferences.py:112
 msgid "Link to privacy policy"
 msgstr ""
 
-#: preferences.py:116
+#: preferences.py:122
 msgid "Link to imprint"
 msgstr ""
 
-#: preferences.py:126
+#: preferences.py:132
 msgid "Name format for addressing"
 msgstr ""
 
-#: preferences.py:140
+#: preferences.py:146
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:156
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: preferences.py:159
+#: preferences.py:165
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: preferences.py:171
+#: preferences.py:177
 msgid "Display name of the school"
 msgstr ""
 
-#: preferences.py:180
+#: preferences.py:186
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr "Officialis nomen scolae, e. g."
 
-#: settings.py:276
+#: preferences.py:194
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: settings.py:300
 msgid "English"
 msgstr "Britannicus"
 
-#: settings.py:277
+#: settings.py:301
 msgid "German"
 msgstr "Germanus"
 
-#: settings.py:278
+#: settings.py:302
 msgid "French"
 msgstr ""
 
-#: templates/403.html:10 templates/404.html:10 templates/500.html:10
+#: settings.py:303
+msgid "Norsk (bokmål)"
+msgstr ""
+
+#: tables.py:19 templates/core/announcement/list.html:36
+#: templates/core/group/full.html:23 templates/core/person/full.html:22
+msgid "Edit"
+msgstr ""
+
+#: tables.py:21 templates/core/announcement/list.html:22
+#, fuzzy
+#| msgid "Notifications"
+msgid "Actions"
+msgstr "Nuntii"
+
+#: tables.py:56 tables.py:57 tables.py:71
+#: templates/core/announcement/list.html:42 templates/core/group/full.html:30
+#: templates/core/pages/delete.html:22 templates/core/person/full.html:29
+msgid "Delete"
+msgstr ""
+
+#: templates/403.html:14 templates/404.html:10 templates/500.html:10
 msgid "Error"
 msgstr ""
 
-#: templates/403.html:10
+#: templates/403.html:14
 msgid ""
 "You are not allowed to access the requested page or\n"
 "          object."
 msgstr ""
 
-#: templates/403.html:13 templates/404.html:17
+#: templates/403.html:19 templates/404.html:17
 msgid ""
 "\n"
-"            If you think this is an error in AlekSIS, please contact your "
-"site\n"
+"            If you think this is an error in AlekSIS, please contact your site\n"
 "            administrators:\n"
 "          "
 msgstr ""
@@ -723,8 +809,7 @@ msgstr ""
 #: templates/500.html:13
 msgid ""
 "\n"
-"            Your site administrators will automatically be notified about "
-"this\n"
+"            Your site administrators will automatically be notified about this\n"
 "            error. You can also contact them directly:\n"
 "          "
 msgstr ""
@@ -738,80 +823,22 @@ msgstr ""
 #: templates/503.html:13
 msgid ""
 "\n"
-"            This page is currently unavailable. If this error persists, "
-"contact your site administrators:\n"
+"            This page is currently unavailable. If this error persists, contact your site administrators:\n"
 "          "
 msgstr ""
 
-#: templates/core/about.html:6 templates/core/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: templates/core/about.html:7
-msgid "AlekSIS – The Free School Information System"
-msgstr ""
-
-#: templates/core/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS, a web-based school "
-"information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of "
-"educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:25
-msgid "Website of AlekSIS"
-msgstr ""
-
-#: templates/core/about.html:26
-msgid "Source code"
-msgstr ""
-
-#: templates/core/about.html:35
+#: templates/core/additional_field/edit.html:6
+#: templates/core/additional_field/edit.html:7
 #, fuzzy
-#| msgid "Edit school information"
-msgid "Licence information"
-msgstr "Muta informationes scolae"
-
-#: templates/core/about.html:37
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under "
-"the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the "
-"respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:45
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: templates/core/about.html:46
-msgid "Other Licence"
-msgstr ""
-
-#: templates/core/about.html:50
-msgid "Full licence text"
-msgstr ""
+#| msgid "Additional name(s)"
+msgid "Edit additional field"
+msgstr "addita nomines"
 
-#: templates/core/about.html:51
+#: templates/core/additional_field/list.html:14
 #, fuzzy
-#| msgid "Edit school information"
-msgid "More information about the EUPL"
-msgstr "Muta informationes scolae"
-
-#: templates/core/about.html:90
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
+#| msgid "Additional name(s)"
+msgid "Create additional field"
+msgstr "addita nomines"
 
 #: templates/core/announcement/form.html:10
 #: templates/core/announcement/form.html:17
@@ -851,167 +878,140 @@ msgstr ""
 msgid "Recipients"
 msgstr ""
 
-#: templates/core/announcement/list.html:22
-#, fuzzy
-#| msgid "Notifications"
-msgid "Actions"
-msgstr "Nuntii"
-
-#: templates/core/announcement/list.html:36 templates/core/group_full.html:22
-#: templates/core/person_full.html:21
-msgid "Edit"
-msgstr ""
-
-#: templates/core/announcement/list.html:42
-msgid "Delete"
-msgstr ""
-
 #: templates/core/announcement/list.html:50
 #, fuzzy
 #| msgid "Write your announcement:"
 msgid "There are no announcements."
 msgstr "Scribe nuntium:"
 
-#: templates/core/announcements.html:9 templates/core/announcements.html:36
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:13
-#, python-format
-msgid ""
-"\n"
-"              Valid from %(from)s until %(until)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:40
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s – %(until)s\n"
-"            "
-msgstr ""
-
 #: templates/core/base.html:54
 msgid "Logged in as"
 msgstr ""
 
-#: templates/core/base.html:76 templates/search/search.html:7
-#: templates/search/search.html:22
-msgid "Search"
-msgstr ""
-
-#: templates/core/base.html:148
+#: templates/core/base.html:147
 msgid "About AlekSIS — The Free School Information System"
 msgstr ""
 
-#: templates/core/base.html:156
+#: templates/core/base.html:155
 msgid "Impress"
 msgstr ""
 
-#: templates/core/base.html:164
+#: templates/core/base.html:163
 msgid "Privacy Policy"
 msgstr ""
 
-#: templates/core/base_print.html:62
+#: templates/core/base_print.html:64
 msgid "Powered by AlekSIS"
 msgstr ""
 
-#: templates/core/edit_group.html:6 templates/core/edit_group.html:7
-msgid "Edit group"
-msgstr ""
-
-#: templates/core/edit_person.html:8 templates/core/edit_person.html:9
-msgid "Edit person"
-msgstr ""
-
-#: templates/core/group_full.html:28 templates/core/person_full.html:28
-msgid "Change preferences"
-msgstr ""
-
-#: templates/core/groups.html:14
-msgid "Create group"
-msgstr ""
-
-#: templates/core/groups_child_groups.html:18
+#: templates/core/group/child_groups.html:18
 msgid ""
 "\n"
-"          You can use this to assign child groups to groups. Please use the "
-"filters below to select groups you want to\n"
+"          You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n"
 "          change and click \"Next\".\n"
 "        "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:31
+#: templates/core/group/child_groups.html:31
 msgid "Update selection"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:35
+#: templates/core/group/child_groups.html:35
 msgid "Clear all filters"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:39
+#: templates/core/group/child_groups.html:39
 msgid "Currently selected groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:52
+#: templates/core/group/child_groups.html:52
 msgid "Start assigning child groups for this groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:61
+#: templates/core/group/child_groups.html:61
 msgid ""
 "\n"
 "            Please select some groups in order to go on with assigning.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:72
+#: templates/core/group/child_groups.html:72
 msgid "Current group:"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:78
+#: templates/core/group/child_groups.html:78
 msgid "Please be careful!"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:79
+#: templates/core/group/child_groups.html:79
 msgid ""
 "\n"
-"            If you click \"Back\" or \"Next\" the current group assignments "
-"are not saved.\n"
-"            If you click \"Save\", you will overwrite all existing child "
-"group relations for this group with what you\n"
+"            If you click \"Back\" or \"Next\" the current group assignments are not saved.\n"
+"            If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n"
 "            selected on this page.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:93
-#: templates/core/groups_child_groups.html:128
+#: templates/core/group/child_groups.html:93
+#: templates/core/group/child_groups.html:128
 #: templates/two_factor/_wizard_actions.html:15
 #: templates/two_factor/_wizard_actions.html:20
 msgid "Back"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:99
-#: templates/core/groups_child_groups.html:134
+#: templates/core/group/child_groups.html:99
+#: templates/core/group/child_groups.html:134
 #: templates/two_factor/_wizard_actions.html:26
 msgid "Next"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:106
-#: templates/core/groups_child_groups.html:141
-#: templates/core/save_button.html:3
+#: templates/core/group/child_groups.html:106
+#: templates/core/group/child_groups.html:141
+#: templates/core/partials/save_button.html:3
 msgid "Save"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:112
-#: templates/core/groups_child_groups.html:147
+#: templates/core/group/child_groups.html:112
+#: templates/core/group/child_groups.html:147
 msgid "Save and next"
 msgstr ""
 
+#: templates/core/group/edit.html:6 templates/core/group/edit.html:7
+msgid "Edit group"
+msgstr ""
+
+#: templates/core/group/full.html:37 templates/core/person/full.html:36
+msgid "Change preferences"
+msgstr ""
+
+#: templates/core/group/list.html:14
+msgid "Create group"
+msgstr ""
+
+#: templates/core/group/list.html:17
+msgid "Filter groups"
+msgstr ""
+
+#: templates/core/group/list.html:24 templates/core/person/list.html:28
+msgid "Clear"
+msgstr ""
+
+#: templates/core/group/list.html:28
+msgid "Selected groups"
+msgstr ""
+
+#: templates/core/group_type/edit.html:6 templates/core/group_type/edit.html:7
+#, fuzzy
+#| msgid "Group"
+msgid "Edit group type"
+msgstr "Grex"
+
+#: templates/core/group_type/list.html:14
+#, fuzzy
+#| msgid "Group"
+msgid "Create group type"
+msgstr "Grex"
+
 #: templates/core/index.html:4
 msgid "Home"
 msgstr ""
@@ -1040,109 +1040,346 @@ msgstr "Muta informationes scolae"
 msgid "No notifications available yet."
 msgstr ""
 
-#: templates/core/no_person.html:12
+#: templates/core/pages/about.html:6 templates/core/pages/about.html:15
+msgid "About AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:7
+msgid "AlekSIS – The Free School Information System"
+msgstr ""
+
+#: templates/core/pages/about.html:17
 msgid ""
 "\n"
-"            Your administrator account is not linked to any person. "
-"Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
+"              This platform is powered by AlekSIS, a web-based school information system (SIS) which can be used\n"
+"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
+"              can be used by anyone.\n"
+"            "
+msgstr ""
+
+#: templates/core/pages/about.html:25
+msgid "Website of AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:26
+msgid "Source code"
 msgstr ""
 
-#: templates/core/no_person.html:19
+#: templates/core/pages/about.html:35
+#, fuzzy
+#| msgid "Edit school information"
+msgid "Licence information"
+msgstr "Muta informationes scolae"
+
+#: templates/core/pages/about.html:37
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
+"              information from third-party apps, if installed, refer to the respective components below. The\n"
+"              licences are marked like this:\n"
+"            "
 msgstr ""
 
-#: templates/core/person_full.html:34
-msgid "Contact details"
+#: templates/core/pages/about.html:45
+msgid "Free/Open Source Licence"
 msgstr ""
 
-#: templates/core/persons_accounts.html:7
-#: templates/core/persons_accounts.html:9
+#: templates/core/pages/about.html:46
+msgid "Other Licence"
+msgstr ""
+
+#: templates/core/pages/about.html:50
+msgid "Full licence text"
+msgstr ""
+
+#: templates/core/pages/about.html:51
 #, fuzzy
-#| msgid "Persons and accounts"
-msgid "Link persons to accounts"
-msgstr "Personae et computi"
+#| msgid "Edit school information"
+msgid "More information about the EUPL"
+msgstr "Muta informationes scolae"
 
-#: templates/core/persons_accounts.html:16
+#: templates/core/pages/about.html:90
+#, python-format
 msgid ""
 "\n"
-"        You can use this form to assign user accounts to persons. Use the\n"
-"        dropdowns to select existing accounts; use the text fields to create "
-"new\n"
-"        accounts on-the-fly. The latter will create a new account with the\n"
-"        entered username and copy all other details from the person.\n"
-"      "
+"                    This app is licenced under %(licence)s.\n"
+"                  "
 msgstr ""
 
-#: templates/core/persons_accounts.html:31
-#: templates/core/persons_accounts.html:55
-msgid "Update"
+#: templates/core/pages/delete.html:6
+#, python-format
+msgid "Delete %(object_name)s"
 msgstr ""
 
-#: templates/core/persons_accounts.html:37
-msgid "Existing account"
+#: templates/core/pages/delete.html:13
+#, python-format
+msgid ""
+"\n"
+"      Do you really want to delete the %(object_name)s \"%(object)s\"?\n"
+"    "
 msgstr ""
 
-#: templates/core/persons_accounts.html:38
-msgid "New account"
+#: templates/core/pages/offline.html:6
+msgid ""
+"No internet\n"
+"    connection."
 msgstr ""
 
-#: templates/core/system_status.html:12
+#: templates/core/pages/offline.html:10
+msgid ""
+"\n"
+"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
+"      administrators:\n"
+"    "
+msgstr ""
+
+#: templates/core/pages/progress.html:27
+msgid ""
+"\n"
+"              Without activated JavaScript the progress status can't be updated.\n"
+"            "
+msgstr ""
+
+#: templates/core/pages/progress.html:47
+#: templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr ""
+
+#: templates/core/pages/system_status.html:12
 #, fuzzy
 #| msgid "System status"
 msgid "System checks"
 msgstr "Status systemae"
 
-#: templates/core/system_status.html:21
+#: templates/core/pages/system_status.html:21
 msgid "Maintenance mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:23
+#: templates/core/pages/system_status.html:23
 msgid ""
 "\n"
-"                Only admin and visitors from internal IPs can access "
-"thesite.\n"
+"                Only admin and visitors from internal IPs can access thesite.\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:34
+#: templates/core/pages/system_status.html:34
 msgid "Maintenance mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:35
+#: templates/core/pages/system_status.html:35
 msgid "Everyone can access the site."
 msgstr ""
 
-#: templates/core/system_status.html:45
+#: templates/core/pages/system_status.html:45
 msgid "Debug mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:47
+#: templates/core/pages/system_status.html:47
 msgid ""
 "\n"
-"                The web server throws back debug information on errors. Do "
-"not use in production!\n"
+"                The web server throws back debug information on errors. Do not use in production!\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:54
+#: templates/core/pages/system_status.html:54
 msgid "Debug mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:56
+#: templates/core/pages/system_status.html:56
 msgid ""
 "\n"
-"                Debug mode is disabled. Default error pages are displayed on "
-"errors.\n"
+"                Debug mode is disabled. Default error pages are displayed on errors.\n"
 "              "
 msgstr ""
 
+#: templates/core/pages/system_status.html:69
+#, fuzzy
+#| msgid "System status"
+msgid "System health checks"
+msgstr "Status systemae"
+
+#: templates/core/pages/system_status.html:75
+msgid "Service"
+msgstr ""
+
+#: templates/core/pages/system_status.html:76
+#: templates/core/pages/system_status.html:115
+#, fuzzy
+#| msgid "System status"
+msgid "Status"
+msgstr "Status systemae"
+
+#: templates/core/pages/system_status.html:77
+msgid "Time taken"
+msgstr ""
+
+#: templates/core/pages/system_status.html:96
+msgid "seconds"
+msgstr ""
+
+#: templates/core/pages/system_status.html:107
+msgid "Celery task results"
+msgstr ""
+
+#: templates/core/pages/system_status.html:112
+msgid "Task"
+msgstr ""
+
+#: templates/core/pages/system_status.html:113
+msgid "ID"
+msgstr ""
+
+#: templates/core/pages/system_status.html:114
+#, fuzzy
+#| msgid "Date"
+msgid "Date done"
+msgstr "dies"
+
+#: templates/core/partials/announcements.html:9
+#: templates/core/partials/announcements.html:36
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:13
+#, python-format
+msgid ""
+"\n"
+"              Valid from %(from)s until %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:40
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s – %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:10
+#, python-format
+msgid ""
+"\n"
+"              Created by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:14
+#: templates/core/partials/crud_events.html:22
+#: templates/core/partials/crud_events.html:26
+#, python-format
+msgid ""
+"\n"
+"              Updated by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:18
+#, python-format
+msgid ""
+"\n"
+"              Deleted by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/language_form.html:16
+msgid "Language"
+msgstr ""
+
+#: templates/core/partials/language_form.html:28
+msgid "Select language"
+msgstr ""
+
+#: templates/core/partials/no_person.html:12
+msgid ""
+"\n"
+"            Your administrator account is not linked to any person. Therefore,\n"
+"            a dummy person has been linked to your account.\n"
+"          "
+msgstr ""
+
+#: templates/core/partials/no_person.html:19
+msgid ""
+"\n"
+"            Your user account is not linked to a person. This means you\n"
+"            cannot access any school-related information. Please contact\n"
+"            the managers of AlekSIS at your school.\n"
+"          "
+msgstr ""
+
+#: templates/core/person/accounts.html:7 templates/core/person/accounts.html:9
+#, fuzzy
+#| msgid "Persons and accounts"
+msgid "Link persons to accounts"
+msgstr "Personae et computi"
+
+#: templates/core/person/accounts.html:16
+msgid ""
+"\n"
+"        You can use this form to assign user accounts to persons. Use the\n"
+"        dropdowns to select existing accounts; use the text fields to create new\n"
+"        accounts on-the-fly. The latter will create a new account with the\n"
+"        entered username and copy all other details from the person.\n"
+"      "
+msgstr ""
+
+#: templates/core/person/accounts.html:31
+#: templates/core/person/accounts.html:55
+msgid "Update"
+msgstr ""
+
+#: templates/core/person/accounts.html:37
+msgid "Existing account"
+msgstr ""
+
+#: templates/core/person/accounts.html:38
+msgid "New account"
+msgstr ""
+
+#: templates/core/person/edit.html:11 templates/core/person/edit.html:12
+msgid "Edit person"
+msgstr ""
+
+#: templates/core/person/full.html:42
+msgid "Contact details"
+msgstr ""
+
+#: templates/core/person/full.html:122
+msgid "Children"
+msgstr ""
+
+#: templates/core/person/list.html:17
+#, fuzzy
+#| msgid "Stop impersonation"
+msgid "Create person"
+msgstr "Simulandum aliquem finire"
+
+#: templates/core/person/list.html:21
+msgid "Filter persons"
+msgstr ""
+
+#: templates/core/person/list.html:32
+msgid "Selected persons"
+msgstr ""
+
+#: templates/core/school_term/create.html:6
+#: templates/core/school_term/create.html:7
+#: templates/core/school_term/list.html:14
+#, fuzzy
+#| msgid "Edit school term"
+msgid "Create school term"
+msgstr "Muta anum scolae"
+
+#: templates/core/school_term/edit.html:6
+#: templates/core/school_term/edit.html:7
+msgid "Edit school term"
+msgstr "Muta anum scolae"
+
 #: templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -1170,23 +1407,6 @@ msgstr ""
 msgid "Impersonate user"
 msgstr "Simulare aliquem"
 
-#: templates/offline.html:6
-msgid ""
-"No internet\n"
-"    connection."
-msgstr ""
-
-#: templates/offline.html:10
-msgid ""
-"\n"
-"      There was an error accessing this page. You probably don't have an "
-"internet connection. Check to see if your WiFi\n"
-"      or mobile data is turned on and try again. If you think you are "
-"connected, please contact the system\n"
-"      administrators:\n"
-"    "
-msgstr ""
-
 #: templates/search/search.html:8
 msgid "Global Search"
 msgstr ""
@@ -1213,30 +1433,48 @@ msgstr ""
 msgid "New notification for"
 msgstr "Nuntius"
 
-#: templates/templated_email/notification.email:7
-msgid "Dear"
-msgstr ""
+#: templates/templated_email/notification.email:6
+#: templates/templated_email/notification.email:27
+#, fuzzy, python-format
+#| msgid "Notifications"
+msgid "Dear %(notification_user)s,"
+msgstr "Nuntii"
 
 #: templates/templated_email/notification.email:8
+#: templates/templated_email/notification.email:29
+#, fuzzy
+#| msgid "Notification"
 msgid "we got a new notification for you:"
-msgstr ""
+msgstr "Nuntius"
 
-#: templates/templated_email/notification.email:12
+#: templates/templated_email/notification.email:15
+#: templates/templated_email/notification.email:35
 #, fuzzy
 #| msgid "Edit school information"
 msgid "More information"
 msgstr "Muta informationes scolae"
 
-#: templates/templated_email/notification.email:16
+#: templates/templated_email/notification.email:18
 #, python-format
 msgid ""
 "\n"
-"    <p>By %(trans_sender)s at %(trans_created_at)s</p>\n"
-"\n"
-"    <i>Your AlekSIS team</i>\n"
+"        Sent by %(trans_sender)s at %(trans_created_at)s\n"
 "    "
 msgstr ""
 
+#: templates/templated_email/notification.email:22
+#: templates/templated_email/notification.email:46
+msgid "Your AlekSIS team"
+msgstr ""
+
+#: templates/templated_email/notification.email:40
+#, python-format
+msgid ""
+"\n"
+"            Sent by %(trans_sender)s at %(trans_created_at)s\n"
+"        "
+msgstr ""
+
 #: templates/two_factor/_base_focus.html:6
 #: templates/two_factor/core/otp_required.html:22
 #: templates/two_factor/core/setup.html:5
@@ -1259,10 +1497,8 @@ msgid ""
 "\n"
 "        Backup tokens can be used when your primary and backup\n"
 "        phone numbers aren't available. The backup tokens below can be used\n"
-"        for login verification. If you've used up all your backup tokens, "
-"you\n"
-"        can generate a new set of backup tokens. Only the backup tokens "
-"shown\n"
+"        for login verification. If you've used up all your backup tokens, you\n"
+"        can generate a new set of backup tokens. Only the backup tokens shown\n"
 "        below will be valid.\n"
 "      "
 msgstr ""
@@ -1287,52 +1523,58 @@ msgid "Generate Tokens"
 msgstr ""
 
 #: templates/two_factor/core/login.html:16
-msgid ""
-"You have no permission to view this page. Please login with an other account."
+msgid "You have no permission to view this page. Please login with an other account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:25
+#: templates/two_factor/core/login.html:24
 msgid "Please login to see this page."
 msgstr ""
 
-#: templates/two_factor/core/login.html:28
+#: templates/two_factor/core/login.html:30
+msgid "Login with username and password"
+msgstr ""
+
+#: templates/two_factor/core/login.html:40
 msgid ""
 "We are calling your phone right now, please enter the\n"
 "              digits you hear."
 msgstr ""
 
-#: templates/two_factor/core/login.html:31
+#: templates/two_factor/core/login.html:43
 msgid ""
 "We sent you a text message, please enter the tokens we\n"
 "              sent."
 msgstr ""
 
-#: templates/two_factor/core/login.html:34
+#: templates/two_factor/core/login.html:46
 msgid ""
 "Please enter the tokens generated by your token\n"
 "              generator."
 msgstr ""
 
-#: templates/two_factor/core/login.html:38
+#: templates/two_factor/core/login.html:50
 msgid ""
 "Use this form for entering backup tokens for logging in.\n"
-"            These tokens have been generated for you to print and keep safe. "
-"Please\n"
+"            These tokens have been generated for you to print and keep safe. Please\n"
 "            enter one of these backup tokens to login to your account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:56
+#: templates/two_factor/core/login.html:68
 msgid "Or, alternatively, use one of your backup phones:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:66
+#: templates/two_factor/core/login.html:78
 msgid "As a last resort, you can use a backup token:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:69
+#: templates/two_factor/core/login.html:81
 msgid "Use Backup Token"
 msgstr ""
 
+#: templates/two_factor/core/login.html:93
+msgid "Use alternative login options"
+msgstr ""
+
 #: templates/two_factor/core/otp_required.html:9
 msgid "Permission Denied"
 msgstr ""
@@ -1340,8 +1582,7 @@ msgstr ""
 #: templates/two_factor/core/otp_required.html:10
 msgid ""
 "The page you requested, enforces users to verify using\n"
-"          two-factor authentication for security reasons. You need to enable "
-"these\n"
+"          two-factor authentication for security reasons. You need to enable these\n"
 "          security features in order to access this page."
 msgstr ""
 
@@ -1352,10 +1593,6 @@ msgid ""
 "          security."
 msgstr ""
 
-#: templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr ""
-
 #: templates/two_factor/core/phone_register.html:5
 #: templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -1418,8 +1655,7 @@ msgstr ""
 #: templates/two_factor/core/setup.html:50
 msgid ""
 "\n"
-"            We are calling your phone right now, please enter the digits you "
-"hear.\n"
+"            We are calling your phone right now, please enter the digits you hear.\n"
 "          "
 msgstr ""
 
@@ -1433,12 +1669,9 @@ msgstr ""
 #: templates/two_factor/core/setup.html:63
 msgid ""
 "\n"
-"          We've encountered an issue with the selected authentication "
-"method. Please\n"
-"          go back and verify that you entered your information correctly, "
-"try\n"
-"          again, or use a different authentication method instead. If the "
-"issue\n"
+"          We've encountered an issue with the selected authentication method. Please\n"
+"          go back and verify that you entered your information correctly, try\n"
+"          again, or use a different authentication method instead. If the issue\n"
 "          persists, contact the site administrator.\n"
 "        "
 msgstr ""
@@ -1460,8 +1693,7 @@ msgstr ""
 #: templates/two_factor/core/setup_complete.html:14
 msgid ""
 "\n"
-"        Congratulations, you've successfully enabled two-factor "
-"authentication.\n"
+"        Congratulations, you've successfully enabled two-factor authentication.\n"
 "      "
 msgstr ""
 
@@ -1479,8 +1711,7 @@ msgstr ""
 msgid ""
 "\n"
 "          However, it might happen that you don't have access to\n"
-"          your primary token device. To enable account recovery, generate "
-"backup codes\n"
+"          your primary token device. To enable account recovery, generate backup codes\n"
 "          or add a phone number.\n"
 "        "
 msgstr ""
@@ -1498,9 +1729,7 @@ msgid "Disable Two-Factor Authentication"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:12
-msgid ""
-"You are about to disable two-factor authentication. This weakens your "
-"account security, are you sure?"
+msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:26
@@ -1587,34 +1816,61 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: views.py:212
+#: views.py:122
+msgid "The school term has been created."
+msgstr ""
+
+#: views.py:133
+msgid "The school term has been saved."
+msgstr ""
+
+#: views.py:273
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: views.py:240
+#: views.py:309
 msgid "The person has been saved."
 msgstr ""
 
-#: views.py:276
+#: views.py:346
 msgid "The group has been saved."
 msgstr ""
 
-#: views.py:348
+#: views.py:434
 msgid "The announcement has been saved."
 msgstr ""
 
-#: views.py:364
+#: views.py:450
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: views.py:435
+#: views.py:521
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#, fuzzy
-#~| msgid "Short name"
-#~ msgid "School name"
-#~ msgstr "Breve nomen"
+#: views.py:544
+msgid "The person has been deleted."
+msgstr ""
+
+#: views.py:557
+msgid "The group has been deleted."
+msgstr ""
+
+#: views.py:588
+msgid "The additional_field has been saved."
+msgstr ""
+
+#: views.py:622
+msgid "The additional field has been deleted."
+msgstr ""
+
+#: views.py:646
+msgid "The group type has been saved."
+msgstr ""
+
+#: views.py:676
+msgid "The group type has been deleted."
+msgstr ""
 
 #~ msgid "School logo"
 #~ msgstr "Imago scolae"
@@ -1625,9 +1881,6 @@ msgstr ""
 #~ msgid "Edit school information"
 #~ msgstr "Muta informationes scolae"
 
-#~ msgid "Edit school term"
-#~ msgstr "Muta anum scolae"
-
 #~ msgid "Official name"
 #~ msgstr "Officialis nomen"
 
@@ -1636,9 +1889,3 @@ msgstr ""
 
 #~ msgid "Schools"
 #~ msgstr "Scholae"
-
-#~ msgid "School term"
-#~ msgstr "Anus scolae"
-
-#~ msgid "School terms"
-#~ msgstr "ani scolae"
diff --git a/aleksis/core/locale/la/LC_MESSAGES/djangojs.po b/aleksis/core/locale/la/LC_MESSAGES/djangojs.po
index 21309c0096e0f1ec402dfa7c4e2f8604b96e2466..9dbef6e6f74f842b0e8f25e389edf1a852cd8d99 100644
--- a/aleksis/core/locale/la/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/la/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-28 13:31+0000\n"
+"POT-Creation-Date: 2020-08-02 16:29+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"
diff --git a/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po
index 3e169fa0130f90c88bfaba22972f8bf0a7163a7f..218fb6539f835db4c9c5ff7d5e845850ab9d8624 100644
--- a/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-04 15:39+0200\n"
+"POT-Creation-Date: 2020-08-02 16:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,20 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: filters.py:37 templates/core/base.html:77 templates/core/group/list.html:20
+#: templates/core/person/list.html:24 templates/search/search.html:7
+#: templates/search/search.html:22
+msgid "Search"
+msgstr ""
+
+#: filters.py:53
+msgid "Search by name"
+msgstr ""
+
+#: filters.py:65
+msgid "Search by contact details"
+msgstr ""
+
 #: forms.py:46
 msgid "You cannot set a new username when also selecting an existing user."
 msgstr ""
@@ -41,64 +55,71 @@ msgstr ""
 msgid "Advanced personal data"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 msgid "New user"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 msgid "Create a new account"
 msgstr ""
 
-#: forms.py:128
+#: forms.py:126 models.py:91
+msgid "School term"
+msgstr ""
+
+#: forms.py:127
 msgid "Common data"
 msgstr ""
 
-#: forms.py:129 forms.py:169 menus.py:141 models.py:54
-#: templates/core/persons.html:8 templates/core/persons.html:9
+#: forms.py:128 forms.py:170 menus.py:152 models.py:105
+#: templates/core/person/list.html:8 templates/core/person/list.html:9
 msgid "Persons"
 msgstr ""
 
-#: forms.py:162 forms.py:165 models.py:31
+#: forms.py:129
+msgid "Additional data"
+msgstr ""
+
+#: forms.py:163 forms.py:166 models.py:35
 msgid "Date"
 msgstr ""
 
-#: forms.py:163 forms.py:166 models.py:39
+#: forms.py:164 forms.py:167 models.py:43
 msgid "Time"
 msgstr ""
 
-#: forms.py:171 menus.py:149 models.py:253 templates/core/groups.html:8
-#: templates/core/groups.html:9 templates/core/person_full.html:106
+#: forms.py:172 menus.py:160 models.py:319 templates/core/group/list.html:8
+#: templates/core/group/list.html:9 templates/core/person/full.html:136
 msgid "Groups"
 msgstr ""
 
-#: forms.py:175
+#: forms.py:176
 msgid "From when until when should the announcement be displayed?"
 msgstr ""
 
-#: forms.py:178
+#: forms.py:179
 msgid "Who should see the announcement?"
 msgstr ""
 
-#: forms.py:179
+#: forms.py:180
 msgid "Write your announcement:"
 msgstr ""
 
-#: forms.py:216
-msgid ""
-"You are not allowed to create announcements which are only valid in the past."
+#: forms.py:219
+msgid "You are not allowed to create announcements which are only valid in the past."
 msgstr ""
 
-#: forms.py:220
+#: forms.py:223
 msgid "The from date and time must be earlier then the until date and time."
 msgstr ""
 
-#: forms.py:229
+#: forms.py:232
 msgid "You need at least one recipient."
 msgstr ""
 
 #: menus.py:7 templates/two_factor/core/login.html:6
 #: templates/two_factor/core/login.html:10
-#: templates/two_factor/core/login.html:73
+#: templates/two_factor/core/login.html:86
 msgid "Login"
 msgstr ""
 
@@ -134,502 +155,556 @@ msgstr ""
 msgid "Admin"
 msgstr ""
 
-#: menus.py:75 models.py:487 templates/core/announcement/list.html:7
+#: menus.py:75 models.py:564 templates/core/announcement/list.html:7
 #: templates/core/announcement/list.html:8
 msgid "Announcements"
 msgstr ""
 
-#: menus.py:86 templates/core/data_management.html:6
-#: templates/core/data_management.html:7
+#: menus.py:86 models.py:92 templates/core/school_term/list.html:8
+#: templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr ""
+
+#: menus.py:97 templates/core/management/data_management.html:6
+#: templates/core/management/data_management.html:7
 msgid "Data management"
 msgstr ""
 
-#: menus.py:94 templates/core/system_status.html:5
-#: templates/core/system_status.html:7
+#: menus.py:105 templates/core/pages/system_status.html:5
+#: templates/core/pages/system_status.html:7
 msgid "System status"
 msgstr ""
 
-#: menus.py:105
+#: menus.py:116
 msgid "Impersonation"
 msgstr ""
 
-#: menus.py:113
+#: menus.py:124
 msgid "Configuration"
 msgstr ""
 
-#: menus.py:124
+#: menus.py:135
 msgid "Backend Admin"
 msgstr ""
 
-#: menus.py:132
+#: menus.py:143
 msgid "People"
 msgstr ""
 
-#: menus.py:157
+#: menus.py:168 models.py:727 templates/core/group_type/list.html:8
+#: templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr ""
+
+#: menus.py:179
 msgid "Persons and accounts"
 msgstr ""
 
-#: menus.py:168
+#: menus.py:190
 msgid "Groups and child groups"
 msgstr ""
 
-#: menus.py:183 templates/core/groups_child_groups.html:7
-#: templates/core/groups_child_groups.html:9
+#: menus.py:201 models.py:363 templates/core/additional_field/list.html:8
+#: templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr ""
+
+#: menus.py:216 templates/core/group/child_groups.html:7
+#: templates/core/group/child_groups.html:9
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: models.py:29
+#: mixins.py:406
+msgid "Linked school term"
+msgstr ""
+
+#: models.py:33
 msgid "Boolean (Yes/No)"
 msgstr ""
 
-#: models.py:30
+#: models.py:34
 msgid "Text (one line)"
 msgstr ""
 
-#: models.py:32
+#: models.py:36
 msgid "Date and time"
 msgstr ""
 
-#: models.py:33
+#: models.py:37
 msgid "Decimal number"
 msgstr ""
 
-#: models.py:34 models.py:95
+#: models.py:38 models.py:146
 msgid "E-mail address"
 msgstr ""
 
-#: models.py:35
+#: models.py:39
 msgid "Integer"
 msgstr ""
 
-#: models.py:36
+#: models.py:40
 msgid "IP address"
 msgstr ""
 
-#: models.py:37
+#: models.py:41
 msgid "Boolean or empty (Yes/No/Neither)"
 msgstr ""
 
-#: models.py:38
+#: models.py:42
 msgid "Text (multi-line)"
 msgstr ""
 
-#: models.py:40
+#: models.py:44
 msgid "URL / Link"
 msgstr ""
 
-#: models.py:53 templates/core/persons_accounts.html:36
+#: models.py:56 models.py:700
+msgid "Name"
+msgstr ""
+
+#: models.py:58
+msgid "Start date"
+msgstr ""
+
+#: models.py:59
+msgid "End date"
+msgstr ""
+
+#: models.py:77
+msgid "The start date must be earlier than the end date."
+msgstr ""
+
+#: models.py:84
+msgid "There is already a school term for this time or a part of this time."
+msgstr ""
+
+#: models.py:104 templates/core/person/accounts.html:36
 msgid "Person"
 msgstr ""
 
-#: models.py:56
+#: models.py:107
 msgid "Can view address"
 msgstr ""
 
-#: models.py:57
+#: models.py:108
 msgid "Can view contact details"
 msgstr ""
 
-#: models.py:58
+#: models.py:109
 msgid "Can view photo"
 msgstr ""
 
-#: models.py:59
+#: models.py:110
 msgid "Can view persons groups"
 msgstr ""
 
-#: models.py:60
+#: models.py:111
 msgid "Can view personal details"
 msgstr ""
 
-#: models.py:65
+#: models.py:116
 msgid "female"
 msgstr ""
 
-#: models.py:65
+#: models.py:116
 msgid "male"
 msgstr ""
 
-#: models.py:73
+#: models.py:124
 msgid "Linked user"
 msgstr ""
 
-#: models.py:75
+#: models.py:126
 msgid "Is person active?"
 msgstr ""
 
-#: models.py:77
+#: models.py:128
 msgid "First name"
 msgstr ""
 
-#: models.py:78
+#: models.py:129
 msgid "Last name"
 msgstr ""
 
-#: models.py:80
+#: models.py:131
 msgid "Additional name(s)"
 msgstr ""
 
-#: models.py:84 models.py:260
+#: models.py:135 models.py:332
 msgid "Short name"
 msgstr ""
 
-#: models.py:87
+#: models.py:138
 msgid "Street"
 msgstr ""
 
-#: models.py:88
+#: models.py:139
 msgid "Street number"
 msgstr ""
 
-#: models.py:89
+#: models.py:140
 msgid "Postal code"
 msgstr ""
 
-#: models.py:90
+#: models.py:141
 msgid "Place"
 msgstr ""
 
-#: models.py:92
+#: models.py:143
 msgid "Home phone"
 msgstr ""
 
-#: models.py:93
+#: models.py:144
 msgid "Mobile phone"
 msgstr ""
 
-#: models.py:97
+#: models.py:148
 msgid "Date of birth"
 msgstr ""
 
-#: models.py:98
+#: models.py:149
 msgid "Sex"
 msgstr ""
 
-#: models.py:100
+#: models.py:151
 msgid "Photo"
 msgstr ""
 
-#: models.py:105
+#: models.py:155 templates/core/person/full.html:129
 msgid "Guardians / Parents"
 msgstr ""
 
-#: models.py:112
+#: models.py:162
 msgid "Primary group"
 msgstr ""
 
-#: models.py:115 models.py:346 models.py:370 models.py:455 models.py:643
+#: models.py:165 models.py:423 models.py:447 models.py:532 models.py:720
+#: templates/core/person/full.html:112
 msgid "Description"
 msgstr ""
 
-#: models.py:233
+#: models.py:296
 msgid "Title of field"
 msgstr ""
 
-#: models.py:235
+#: models.py:298
 msgid "Type of field"
 msgstr ""
 
-#: models.py:239
+#: models.py:305
 msgid "Addtitional field for groups"
 msgstr ""
 
-#: models.py:240
+#: models.py:306
 msgid "Addtitional fields for groups"
 msgstr ""
 
-#: models.py:252
+#: models.py:318
 msgid "Group"
 msgstr ""
 
-#: models.py:254
+#: models.py:320
 msgid "Can assign child groups to groups"
 msgstr ""
 
-#: models.py:258
+#: models.py:330
 msgid "Long name"
 msgstr ""
 
-#: models.py:268 templates/core/group_full.html:37
+#: models.py:340 templates/core/group/full.html:65
 msgid "Members"
 msgstr ""
 
-#: models.py:271 templates/core/group_full.html:34
+#: models.py:343 templates/core/group/full.html:62
 msgid "Owners"
 msgstr ""
 
-#: models.py:278
+#: models.py:350 templates/core/group/full.html:54
 msgid "Parent groups"
 msgstr ""
 
-#: models.py:286
+#: models.py:358
 msgid "Type of group"
 msgstr ""
 
-#: models.py:290
-msgid "Additional fields"
-msgstr ""
-
-#: models.py:342
+#: models.py:419
 msgid "User"
 msgstr ""
 
-#: models.py:345 models.py:369 models.py:454
+#: models.py:422 models.py:446 models.py:531
 #: templates/core/announcement/list.html:18
 msgid "Title"
 msgstr ""
 
-#: models.py:348
+#: models.py:425
 msgid "Application"
 msgstr ""
 
-#: models.py:354
+#: models.py:431
 msgid "Activity"
 msgstr ""
 
-#: models.py:355
+#: models.py:432
 msgid "Activities"
 msgstr ""
 
-#: models.py:361
+#: models.py:438
 msgid "Sender"
 msgstr ""
 
-#: models.py:366
+#: models.py:443
 msgid "Recipient"
 msgstr ""
 
-#: models.py:371 models.py:624
+#: models.py:448 models.py:701
 msgid "Link"
 msgstr ""
 
-#: models.py:373
+#: models.py:450
 msgid "Read"
 msgstr ""
 
-#: models.py:374
+#: models.py:451
 msgid "Sent"
 msgstr ""
 
-#: models.py:387
+#: models.py:464
 msgid "Notification"
 msgstr ""
 
-#: models.py:388
+#: models.py:465
 msgid "Notifications"
 msgstr ""
 
-#: models.py:456
+#: models.py:533
 msgid "Link to detailed view"
 msgstr ""
 
-#: models.py:459
+#: models.py:536
 msgid "Date and time from when to show"
 msgstr ""
 
-#: models.py:462
+#: models.py:539
 msgid "Date and time until when to show"
 msgstr ""
 
-#: models.py:486
+#: models.py:563
 msgid "Announcement"
 msgstr ""
 
-#: models.py:524
+#: models.py:601
 msgid "Announcement recipient"
 msgstr ""
 
-#: models.py:525
+#: models.py:602
 msgid "Announcement recipients"
 msgstr ""
 
-#: models.py:575
+#: models.py:652
 msgid "Widget Title"
 msgstr ""
 
-#: models.py:576
+#: models.py:653
 msgid "Activate Widget"
 msgstr ""
 
-#: models.py:594
+#: models.py:671
 msgid "Dashboard Widget"
 msgstr ""
 
-#: models.py:595
+#: models.py:672
 msgid "Dashboard Widgets"
 msgstr ""
 
-#: models.py:601
+#: models.py:678
 msgid "Menu ID"
 msgstr ""
 
-#: models.py:613
+#: models.py:690
 msgid "Custom menu"
 msgstr ""
 
-#: models.py:614
+#: models.py:691
 msgid "Custom menus"
 msgstr ""
 
-#: models.py:621
+#: models.py:698
 msgid "Menu"
 msgstr ""
 
-#: models.py:623
-msgid "Name"
-msgstr ""
-
-#: models.py:625
+#: models.py:702
 msgid "Icon"
 msgstr ""
 
-#: models.py:631
+#: models.py:708
 msgid "Custom menu item"
 msgstr ""
 
-#: models.py:632
+#: models.py:709
 msgid "Custom menu items"
 msgstr ""
 
-#: models.py:642
+#: models.py:719
 msgid "Title of type"
 msgstr ""
 
-#: models.py:646
+#: models.py:726 templates/core/group/full.html:46
 msgid "Group type"
 msgstr ""
 
-#: models.py:647
-msgid "Group types"
-msgstr ""
-
-#: models.py:656
+#: models.py:736
 msgid "Can view system status"
 msgstr ""
 
-#: models.py:657
+#: models.py:737
 msgid "Can link persons to accounts"
 msgstr ""
 
-#: models.py:658
+#: models.py:738
 msgid "Can manage data"
 msgstr ""
 
-#: models.py:659
+#: models.py:739
 msgid "Can impersonate"
 msgstr ""
 
-#: models.py:660
+#: models.py:740
 msgid "Can use search"
 msgstr ""
 
-#: models.py:661
+#: models.py:741
 msgid "Can change site preferences"
 msgstr ""
 
-#: models.py:662
+#: models.py:742
 msgid "Can change person preferences"
 msgstr ""
 
-#: models.py:663
+#: models.py:743
 msgid "Can change group preferences"
 msgstr ""
 
-#: preferences.py:27
+#: preferences.py:24
+msgid "Authentication"
+msgstr ""
+
+#: preferences.py:33
 msgid "Site title"
 msgstr ""
 
-#: preferences.py:36
+#: preferences.py:42
 msgid "Site description"
 msgstr ""
 
-#: preferences.py:45
+#: preferences.py:51
 msgid "Primary colour"
 msgstr ""
 
-#: preferences.py:54
+#: preferences.py:60
 msgid "Secondary colour"
 msgstr ""
 
-#: preferences.py:62
+#: preferences.py:68
 msgid "Logo"
 msgstr ""
 
-#: preferences.py:70
+#: preferences.py:76
 msgid "Favicon"
 msgstr ""
 
-#: preferences.py:78
+#: preferences.py:84
 msgid "PWA-Icon"
 msgstr ""
 
-#: preferences.py:87
+#: preferences.py:93
 msgid "Mail out name"
 msgstr ""
 
-#: preferences.py:96
+#: preferences.py:102
 msgid "Mail out address"
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:112
 msgid "Link to privacy policy"
 msgstr ""
 
-#: preferences.py:116
+#: preferences.py:122
 msgid "Link to imprint"
 msgstr ""
 
-#: preferences.py:126
+#: preferences.py:132
 msgid "Name format for addressing"
 msgstr ""
 
-#: preferences.py:140
+#: preferences.py:146
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:156
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: preferences.py:159
+#: preferences.py:165
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: preferences.py:171
+#: preferences.py:177
 msgid "Display name of the school"
 msgstr ""
 
-#: preferences.py:180
+#: preferences.py:186
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: settings.py:276
+#: preferences.py:194
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: settings.py:300
 msgid "English"
 msgstr ""
 
-#: settings.py:277
+#: settings.py:301
 msgid "German"
 msgstr ""
 
-#: settings.py:278
+#: settings.py:302
 msgid "French"
 msgstr ""
 
-#: templates/403.html:10 templates/404.html:10 templates/500.html:10
+#: settings.py:303
+msgid "Norsk (bokmål)"
+msgstr ""
+
+#: tables.py:19 templates/core/announcement/list.html:36
+#: templates/core/group/full.html:23 templates/core/person/full.html:22
+msgid "Edit"
+msgstr ""
+
+#: tables.py:21 templates/core/announcement/list.html:22
+msgid "Actions"
+msgstr ""
+
+#: tables.py:56 tables.py:57 tables.py:71
+#: templates/core/announcement/list.html:42 templates/core/group/full.html:30
+#: templates/core/pages/delete.html:22 templates/core/person/full.html:29
+msgid "Delete"
+msgstr ""
+
+#: templates/403.html:14 templates/404.html:10 templates/500.html:10
 msgid "Error"
 msgstr ""
 
-#: templates/403.html:10
+#: templates/403.html:14
 msgid ""
 "You are not allowed to access the requested page or\n"
 "          object."
 msgstr ""
 
-#: templates/403.html:13 templates/404.html:17
+#: templates/403.html:19 templates/404.html:17
 msgid ""
 "\n"
-"            If you think this is an error in AlekSIS, please contact your "
-"site\n"
+"            If you think this is an error in AlekSIS, please contact your site\n"
 "            administrators:\n"
 "          "
 msgstr ""
@@ -657,8 +732,7 @@ msgstr ""
 #: templates/500.html:13
 msgid ""
 "\n"
-"            Your site administrators will automatically be notified about "
-"this\n"
+"            Your site administrators will automatically be notified about this\n"
 "            error. You can also contact them directly:\n"
 "          "
 msgstr ""
@@ -672,75 +746,17 @@ msgstr ""
 #: templates/503.html:13
 msgid ""
 "\n"
-"            This page is currently unavailable. If this error persists, "
-"contact your site administrators:\n"
+"            This page is currently unavailable. If this error persists, contact your site administrators:\n"
 "          "
 msgstr ""
 
-#: templates/core/about.html:6 templates/core/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: templates/core/about.html:7
-msgid "AlekSIS – The Free School Information System"
-msgstr ""
-
-#: templates/core/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS, a web-based school "
-"information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of "
-"educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:25
-msgid "Website of AlekSIS"
+#: templates/core/additional_field/edit.html:6
+#: templates/core/additional_field/edit.html:7
+msgid "Edit additional field"
 msgstr ""
 
-#: templates/core/about.html:26
-msgid "Source code"
-msgstr ""
-
-#: templates/core/about.html:35
-msgid "Licence information"
-msgstr ""
-
-#: templates/core/about.html:37
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under "
-"the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the "
-"respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:45
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: templates/core/about.html:46
-msgid "Other Licence"
-msgstr ""
-
-#: templates/core/about.html:50
-msgid "Full licence text"
-msgstr ""
-
-#: templates/core/about.html:51
-msgid "More information about the EUPL"
-msgstr ""
-
-#: templates/core/about.html:90
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
+#: templates/core/additional_field/list.html:14
+msgid "Create additional field"
 msgstr ""
 
 #: templates/core/announcement/form.html:10
@@ -773,163 +789,134 @@ msgstr ""
 msgid "Recipients"
 msgstr ""
 
-#: templates/core/announcement/list.html:22
-msgid "Actions"
-msgstr ""
-
-#: templates/core/announcement/list.html:36 templates/core/group_full.html:22
-#: templates/core/person_full.html:21
-msgid "Edit"
-msgstr ""
-
-#: templates/core/announcement/list.html:42
-msgid "Delete"
-msgstr ""
-
 #: templates/core/announcement/list.html:50
 msgid "There are no announcements."
 msgstr ""
 
-#: templates/core/announcements.html:9 templates/core/announcements.html:36
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:13
-#, python-format
-msgid ""
-"\n"
-"              Valid from %(from)s until %(until)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:40
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s – %(until)s\n"
-"            "
-msgstr ""
-
 #: templates/core/base.html:54
 msgid "Logged in as"
 msgstr ""
 
-#: templates/core/base.html:76 templates/search/search.html:7
-#: templates/search/search.html:22
-msgid "Search"
-msgstr ""
-
-#: templates/core/base.html:148
+#: templates/core/base.html:147
 msgid "About AlekSIS — The Free School Information System"
 msgstr ""
 
-#: templates/core/base.html:156
+#: templates/core/base.html:155
 msgid "Impress"
 msgstr ""
 
-#: templates/core/base.html:164
+#: templates/core/base.html:163
 msgid "Privacy Policy"
 msgstr ""
 
-#: templates/core/base_print.html:62
+#: templates/core/base_print.html:64
 msgid "Powered by AlekSIS"
 msgstr ""
 
-#: templates/core/edit_group.html:6 templates/core/edit_group.html:7
-msgid "Edit group"
-msgstr ""
-
-#: templates/core/edit_person.html:8 templates/core/edit_person.html:9
-msgid "Edit person"
-msgstr ""
-
-#: templates/core/group_full.html:28 templates/core/person_full.html:28
-msgid "Change preferences"
-msgstr ""
-
-#: templates/core/groups.html:14
-msgid "Create group"
-msgstr ""
-
-#: templates/core/groups_child_groups.html:18
+#: templates/core/group/child_groups.html:18
 msgid ""
 "\n"
-"          You can use this to assign child groups to groups. Please use the "
-"filters below to select groups you want to\n"
+"          You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n"
 "          change and click \"Next\".\n"
 "        "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:31
+#: templates/core/group/child_groups.html:31
 msgid "Update selection"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:35
+#: templates/core/group/child_groups.html:35
 msgid "Clear all filters"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:39
+#: templates/core/group/child_groups.html:39
 msgid "Currently selected groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:52
+#: templates/core/group/child_groups.html:52
 msgid "Start assigning child groups for this groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:61
+#: templates/core/group/child_groups.html:61
 msgid ""
 "\n"
 "            Please select some groups in order to go on with assigning.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:72
+#: templates/core/group/child_groups.html:72
 msgid "Current group:"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:78
+#: templates/core/group/child_groups.html:78
 msgid "Please be careful!"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:79
+#: templates/core/group/child_groups.html:79
 msgid ""
 "\n"
-"            If you click \"Back\" or \"Next\" the current group assignments "
-"are not saved.\n"
-"            If you click \"Save\", you will overwrite all existing child "
-"group relations for this group with what you\n"
+"            If you click \"Back\" or \"Next\" the current group assignments are not saved.\n"
+"            If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n"
 "            selected on this page.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:93
-#: templates/core/groups_child_groups.html:128
+#: templates/core/group/child_groups.html:93
+#: templates/core/group/child_groups.html:128
 #: templates/two_factor/_wizard_actions.html:15
 #: templates/two_factor/_wizard_actions.html:20
 msgid "Back"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:99
-#: templates/core/groups_child_groups.html:134
+#: templates/core/group/child_groups.html:99
+#: templates/core/group/child_groups.html:134
 #: templates/two_factor/_wizard_actions.html:26
 msgid "Next"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:106
-#: templates/core/groups_child_groups.html:141
-#: templates/core/save_button.html:3
+#: templates/core/group/child_groups.html:106
+#: templates/core/group/child_groups.html:141
+#: templates/core/partials/save_button.html:3
 msgid "Save"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:112
-#: templates/core/groups_child_groups.html:147
+#: templates/core/group/child_groups.html:112
+#: templates/core/group/child_groups.html:147
 msgid "Save and next"
 msgstr ""
 
+#: templates/core/group/edit.html:6 templates/core/group/edit.html:7
+msgid "Edit group"
+msgstr ""
+
+#: templates/core/group/full.html:37 templates/core/person/full.html:36
+msgid "Change preferences"
+msgstr ""
+
+#: templates/core/group/list.html:14
+msgid "Create group"
+msgstr ""
+
+#: templates/core/group/list.html:17
+msgid "Filter groups"
+msgstr ""
+
+#: templates/core/group/list.html:24 templates/core/person/list.html:28
+msgid "Clear"
+msgstr ""
+
+#: templates/core/group/list.html:28
+msgid "Selected groups"
+msgstr ""
+
+#: templates/core/group_type/edit.html:6 templates/core/group_type/edit.html:7
+msgid "Edit group type"
+msgstr ""
+
+#: templates/core/group_type/list.html:14
+msgid "Create group type"
+msgstr ""
+
 #: templates/core/index.html:4
 msgid "Home"
 msgstr ""
@@ -954,105 +941,328 @@ msgstr ""
 msgid "No notifications available yet."
 msgstr ""
 
-#: templates/core/no_person.html:12
+#: templates/core/pages/about.html:6 templates/core/pages/about.html:15
+msgid "About AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:7
+msgid "AlekSIS – The Free School Information System"
+msgstr ""
+
+#: templates/core/pages/about.html:17
 msgid ""
 "\n"
-"            Your administrator account is not linked to any person. "
-"Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
+"              This platform is powered by AlekSIS, a web-based school information system (SIS) which can be used\n"
+"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
+"              can be used by anyone.\n"
+"            "
 msgstr ""
 
-#: templates/core/no_person.html:19
+#: templates/core/pages/about.html:25
+msgid "Website of AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:26
+msgid "Source code"
+msgstr ""
+
+#: templates/core/pages/about.html:35
+msgid "Licence information"
+msgstr ""
+
+#: templates/core/pages/about.html:37
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
+"              information from third-party apps, if installed, refer to the respective components below. The\n"
+"              licences are marked like this:\n"
+"            "
 msgstr ""
 
-#: templates/core/person_full.html:34
-msgid "Contact details"
+#: templates/core/pages/about.html:45
+msgid "Free/Open Source Licence"
 msgstr ""
 
-#: templates/core/persons_accounts.html:7
-#: templates/core/persons_accounts.html:9
-msgid "Link persons to accounts"
+#: templates/core/pages/about.html:46
+msgid "Other Licence"
+msgstr ""
+
+#: templates/core/pages/about.html:50
+msgid "Full licence text"
+msgstr ""
+
+#: templates/core/pages/about.html:51
+msgid "More information about the EUPL"
 msgstr ""
 
-#: templates/core/persons_accounts.html:16
+#: templates/core/pages/about.html:90
+#, python-format
 msgid ""
 "\n"
-"        You can use this form to assign user accounts to persons. Use the\n"
-"        dropdowns to select existing accounts; use the text fields to create "
-"new\n"
-"        accounts on-the-fly. The latter will create a new account with the\n"
-"        entered username and copy all other details from the person.\n"
-"      "
+"                    This app is licenced under %(licence)s.\n"
+"                  "
 msgstr ""
 
-#: templates/core/persons_accounts.html:31
-#: templates/core/persons_accounts.html:55
-msgid "Update"
+#: templates/core/pages/delete.html:6
+#, python-format
+msgid "Delete %(object_name)s"
 msgstr ""
 
-#: templates/core/persons_accounts.html:37
-msgid "Existing account"
+#: templates/core/pages/delete.html:13
+#, python-format
+msgid ""
+"\n"
+"      Do you really want to delete the %(object_name)s \"%(object)s\"?\n"
+"    "
 msgstr ""
 
-#: templates/core/persons_accounts.html:38
-msgid "New account"
+#: templates/core/pages/offline.html:6
+msgid ""
+"No internet\n"
+"    connection."
+msgstr ""
+
+#: templates/core/pages/offline.html:10
+msgid ""
+"\n"
+"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
+"      administrators:\n"
+"    "
+msgstr ""
+
+#: templates/core/pages/progress.html:27
+msgid ""
+"\n"
+"              Without activated JavaScript the progress status can't be updated.\n"
+"            "
+msgstr ""
+
+#: templates/core/pages/progress.html:47
+#: templates/two_factor/core/otp_required.html:19
+msgid "Go back"
 msgstr ""
 
-#: templates/core/system_status.html:12
+#: templates/core/pages/system_status.html:12
 msgid "System checks"
 msgstr ""
 
-#: templates/core/system_status.html:21
+#: templates/core/pages/system_status.html:21
 msgid "Maintenance mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:23
+#: templates/core/pages/system_status.html:23
 msgid ""
 "\n"
-"                Only admin and visitors from internal IPs can access "
-"thesite.\n"
+"                Only admin and visitors from internal IPs can access thesite.\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:34
+#: templates/core/pages/system_status.html:34
 msgid "Maintenance mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:35
+#: templates/core/pages/system_status.html:35
 msgid "Everyone can access the site."
 msgstr ""
 
-#: templates/core/system_status.html:45
+#: templates/core/pages/system_status.html:45
 msgid "Debug mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:47
+#: templates/core/pages/system_status.html:47
 msgid ""
 "\n"
-"                The web server throws back debug information on errors. Do "
-"not use in production!\n"
+"                The web server throws back debug information on errors. Do not use in production!\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:54
+#: templates/core/pages/system_status.html:54
 msgid "Debug mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:56
+#: templates/core/pages/system_status.html:56
 msgid ""
 "\n"
-"                Debug mode is disabled. Default error pages are displayed on "
-"errors.\n"
+"                Debug mode is disabled. Default error pages are displayed on errors.\n"
 "              "
 msgstr ""
 
+#: templates/core/pages/system_status.html:69
+msgid "System health checks"
+msgstr ""
+
+#: templates/core/pages/system_status.html:75
+msgid "Service"
+msgstr ""
+
+#: templates/core/pages/system_status.html:76
+#: templates/core/pages/system_status.html:115
+msgid "Status"
+msgstr ""
+
+#: templates/core/pages/system_status.html:77
+msgid "Time taken"
+msgstr ""
+
+#: templates/core/pages/system_status.html:96
+msgid "seconds"
+msgstr ""
+
+#: templates/core/pages/system_status.html:107
+msgid "Celery task results"
+msgstr ""
+
+#: templates/core/pages/system_status.html:112
+msgid "Task"
+msgstr ""
+
+#: templates/core/pages/system_status.html:113
+msgid "ID"
+msgstr ""
+
+#: templates/core/pages/system_status.html:114
+msgid "Date done"
+msgstr ""
+
+#: templates/core/partials/announcements.html:9
+#: templates/core/partials/announcements.html:36
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:13
+#, python-format
+msgid ""
+"\n"
+"              Valid from %(from)s until %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:40
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s – %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:10
+#, python-format
+msgid ""
+"\n"
+"              Created by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:14
+#: templates/core/partials/crud_events.html:22
+#: templates/core/partials/crud_events.html:26
+#, python-format
+msgid ""
+"\n"
+"              Updated by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:18
+#, python-format
+msgid ""
+"\n"
+"              Deleted by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/language_form.html:16
+msgid "Language"
+msgstr ""
+
+#: templates/core/partials/language_form.html:28
+msgid "Select language"
+msgstr ""
+
+#: templates/core/partials/no_person.html:12
+msgid ""
+"\n"
+"            Your administrator account is not linked to any person. Therefore,\n"
+"            a dummy person has been linked to your account.\n"
+"          "
+msgstr ""
+
+#: templates/core/partials/no_person.html:19
+msgid ""
+"\n"
+"            Your user account is not linked to a person. This means you\n"
+"            cannot access any school-related information. Please contact\n"
+"            the managers of AlekSIS at your school.\n"
+"          "
+msgstr ""
+
+#: templates/core/person/accounts.html:7 templates/core/person/accounts.html:9
+msgid "Link persons to accounts"
+msgstr ""
+
+#: templates/core/person/accounts.html:16
+msgid ""
+"\n"
+"        You can use this form to assign user accounts to persons. Use the\n"
+"        dropdowns to select existing accounts; use the text fields to create new\n"
+"        accounts on-the-fly. The latter will create a new account with the\n"
+"        entered username and copy all other details from the person.\n"
+"      "
+msgstr ""
+
+#: templates/core/person/accounts.html:31
+#: templates/core/person/accounts.html:55
+msgid "Update"
+msgstr ""
+
+#: templates/core/person/accounts.html:37
+msgid "Existing account"
+msgstr ""
+
+#: templates/core/person/accounts.html:38
+msgid "New account"
+msgstr ""
+
+#: templates/core/person/edit.html:11 templates/core/person/edit.html:12
+msgid "Edit person"
+msgstr ""
+
+#: templates/core/person/full.html:42
+msgid "Contact details"
+msgstr ""
+
+#: templates/core/person/full.html:122
+msgid "Children"
+msgstr ""
+
+#: templates/core/person/list.html:17
+msgid "Create person"
+msgstr ""
+
+#: templates/core/person/list.html:21
+msgid "Filter persons"
+msgstr ""
+
+#: templates/core/person/list.html:32
+msgid "Selected persons"
+msgstr ""
+
+#: templates/core/school_term/create.html:6
+#: templates/core/school_term/create.html:7
+#: templates/core/school_term/list.html:14
+msgid "Create school term"
+msgstr ""
+
+#: templates/core/school_term/edit.html:6
+#: templates/core/school_term/edit.html:7
+msgid "Edit school term"
+msgstr ""
+
 #: templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -1078,23 +1288,6 @@ msgstr ""
 msgid "Impersonate user"
 msgstr ""
 
-#: templates/offline.html:6
-msgid ""
-"No internet\n"
-"    connection."
-msgstr ""
-
-#: templates/offline.html:10
-msgid ""
-"\n"
-"      There was an error accessing this page. You probably don't have an "
-"internet connection. Check to see if your WiFi\n"
-"      or mobile data is turned on and try again. If you think you are "
-"connected, please contact the system\n"
-"      administrators:\n"
-"    "
-msgstr ""
-
 #: templates/search/search.html:8
 msgid "Global Search"
 msgstr ""
@@ -1119,28 +1312,43 @@ msgstr ""
 msgid "New notification for"
 msgstr ""
 
-#: templates/templated_email/notification.email:7
-msgid "Dear"
+#: templates/templated_email/notification.email:6
+#: templates/templated_email/notification.email:27
+#, python-format
+msgid "Dear %(notification_user)s,"
 msgstr ""
 
 #: templates/templated_email/notification.email:8
+#: templates/templated_email/notification.email:29
 msgid "we got a new notification for you:"
 msgstr ""
 
-#: templates/templated_email/notification.email:12
+#: templates/templated_email/notification.email:15
+#: templates/templated_email/notification.email:35
 msgid "More information"
 msgstr ""
 
-#: templates/templated_email/notification.email:16
+#: templates/templated_email/notification.email:18
 #, python-format
 msgid ""
 "\n"
-"    <p>By %(trans_sender)s at %(trans_created_at)s</p>\n"
-"\n"
-"    <i>Your AlekSIS team</i>\n"
+"        Sent by %(trans_sender)s at %(trans_created_at)s\n"
 "    "
 msgstr ""
 
+#: templates/templated_email/notification.email:22
+#: templates/templated_email/notification.email:46
+msgid "Your AlekSIS team"
+msgstr ""
+
+#: templates/templated_email/notification.email:40
+#, python-format
+msgid ""
+"\n"
+"            Sent by %(trans_sender)s at %(trans_created_at)s\n"
+"        "
+msgstr ""
+
 #: templates/two_factor/_base_focus.html:6
 #: templates/two_factor/core/otp_required.html:22
 #: templates/two_factor/core/setup.html:5
@@ -1163,10 +1371,8 @@ msgid ""
 "\n"
 "        Backup tokens can be used when your primary and backup\n"
 "        phone numbers aren't available. The backup tokens below can be used\n"
-"        for login verification. If you've used up all your backup tokens, "
-"you\n"
-"        can generate a new set of backup tokens. Only the backup tokens "
-"shown\n"
+"        for login verification. If you've used up all your backup tokens, you\n"
+"        can generate a new set of backup tokens. Only the backup tokens shown\n"
 "        below will be valid.\n"
 "      "
 msgstr ""
@@ -1191,52 +1397,58 @@ msgid "Generate Tokens"
 msgstr ""
 
 #: templates/two_factor/core/login.html:16
-msgid ""
-"You have no permission to view this page. Please login with an other account."
+msgid "You have no permission to view this page. Please login with an other account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:25
+#: templates/two_factor/core/login.html:24
 msgid "Please login to see this page."
 msgstr ""
 
-#: templates/two_factor/core/login.html:28
+#: templates/two_factor/core/login.html:30
+msgid "Login with username and password"
+msgstr ""
+
+#: templates/two_factor/core/login.html:40
 msgid ""
 "We are calling your phone right now, please enter the\n"
 "              digits you hear."
 msgstr ""
 
-#: templates/two_factor/core/login.html:31
+#: templates/two_factor/core/login.html:43
 msgid ""
 "We sent you a text message, please enter the tokens we\n"
 "              sent."
 msgstr ""
 
-#: templates/two_factor/core/login.html:34
+#: templates/two_factor/core/login.html:46
 msgid ""
 "Please enter the tokens generated by your token\n"
 "              generator."
 msgstr ""
 
-#: templates/two_factor/core/login.html:38
+#: templates/two_factor/core/login.html:50
 msgid ""
 "Use this form for entering backup tokens for logging in.\n"
-"            These tokens have been generated for you to print and keep safe. "
-"Please\n"
+"            These tokens have been generated for you to print and keep safe. Please\n"
 "            enter one of these backup tokens to login to your account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:56
+#: templates/two_factor/core/login.html:68
 msgid "Or, alternatively, use one of your backup phones:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:66
+#: templates/two_factor/core/login.html:78
 msgid "As a last resort, you can use a backup token:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:69
+#: templates/two_factor/core/login.html:81
 msgid "Use Backup Token"
 msgstr ""
 
+#: templates/two_factor/core/login.html:93
+msgid "Use alternative login options"
+msgstr ""
+
 #: templates/two_factor/core/otp_required.html:9
 msgid "Permission Denied"
 msgstr ""
@@ -1244,8 +1456,7 @@ msgstr ""
 #: templates/two_factor/core/otp_required.html:10
 msgid ""
 "The page you requested, enforces users to verify using\n"
-"          two-factor authentication for security reasons. You need to enable "
-"these\n"
+"          two-factor authentication for security reasons. You need to enable these\n"
 "          security features in order to access this page."
 msgstr ""
 
@@ -1256,10 +1467,6 @@ msgid ""
 "          security."
 msgstr ""
 
-#: templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr ""
-
 #: templates/two_factor/core/phone_register.html:5
 #: templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -1322,8 +1529,7 @@ msgstr ""
 #: templates/two_factor/core/setup.html:50
 msgid ""
 "\n"
-"            We are calling your phone right now, please enter the digits you "
-"hear.\n"
+"            We are calling your phone right now, please enter the digits you hear.\n"
 "          "
 msgstr ""
 
@@ -1337,12 +1543,9 @@ msgstr ""
 #: templates/two_factor/core/setup.html:63
 msgid ""
 "\n"
-"          We've encountered an issue with the selected authentication "
-"method. Please\n"
-"          go back and verify that you entered your information correctly, "
-"try\n"
-"          again, or use a different authentication method instead. If the "
-"issue\n"
+"          We've encountered an issue with the selected authentication method. Please\n"
+"          go back and verify that you entered your information correctly, try\n"
+"          again, or use a different authentication method instead. If the issue\n"
 "          persists, contact the site administrator.\n"
 "        "
 msgstr ""
@@ -1364,8 +1567,7 @@ msgstr ""
 #: templates/two_factor/core/setup_complete.html:14
 msgid ""
 "\n"
-"        Congratulations, you've successfully enabled two-factor "
-"authentication.\n"
+"        Congratulations, you've successfully enabled two-factor authentication.\n"
 "      "
 msgstr ""
 
@@ -1383,8 +1585,7 @@ msgstr ""
 msgid ""
 "\n"
 "          However, it might happen that you don't have access to\n"
-"          your primary token device. To enable account recovery, generate "
-"backup codes\n"
+"          your primary token device. To enable account recovery, generate backup codes\n"
 "          or add a phone number.\n"
 "        "
 msgstr ""
@@ -1402,9 +1603,7 @@ msgid "Disable Two-Factor Authentication"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:12
-msgid ""
-"You are about to disable two-factor authentication. This weakens your "
-"account security, are you sure?"
+msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:26
@@ -1491,26 +1690,58 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: views.py:212
+#: views.py:122
+msgid "The school term has been created."
+msgstr ""
+
+#: views.py:133
+msgid "The school term has been saved."
+msgstr ""
+
+#: views.py:273
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: views.py:240
+#: views.py:309
 msgid "The person has been saved."
 msgstr ""
 
-#: views.py:276
+#: views.py:346
 msgid "The group has been saved."
 msgstr ""
 
-#: views.py:348
+#: views.py:434
 msgid "The announcement has been saved."
 msgstr ""
 
-#: views.py:364
+#: views.py:450
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: views.py:435
+#: views.py:521
 msgid "The preferences have been saved successfully."
 msgstr ""
+
+#: views.py:544
+msgid "The person has been deleted."
+msgstr ""
+
+#: views.py:557
+msgid "The group has been deleted."
+msgstr ""
+
+#: views.py:588
+msgid "The additional_field has been saved."
+msgstr ""
+
+#: views.py:622
+msgid "The additional field has been deleted."
+msgstr ""
+
+#: views.py:646
+msgid "The group type has been saved."
+msgstr ""
+
+#: views.py:676
+msgid "The group type has been deleted."
+msgstr ""
diff --git a/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po b/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po
index 21309c0096e0f1ec402dfa7c4e2f8604b96e2466..9dbef6e6f74f842b0e8f25e389edf1a852cd8d99 100644
--- a/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-28 13:31+0000\n"
+"POT-Creation-Date: 2020-08-02 16:29+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"
diff --git a/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po
index 3e169fa0130f90c88bfaba22972f8bf0a7163a7f..218fb6539f835db4c9c5ff7d5e845850ab9d8624 100644
--- a/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-04 15:39+0200\n"
+"POT-Creation-Date: 2020-08-02 16:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,20 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: filters.py:37 templates/core/base.html:77 templates/core/group/list.html:20
+#: templates/core/person/list.html:24 templates/search/search.html:7
+#: templates/search/search.html:22
+msgid "Search"
+msgstr ""
+
+#: filters.py:53
+msgid "Search by name"
+msgstr ""
+
+#: filters.py:65
+msgid "Search by contact details"
+msgstr ""
+
 #: forms.py:46
 msgid "You cannot set a new username when also selecting an existing user."
 msgstr ""
@@ -41,64 +55,71 @@ msgstr ""
 msgid "Advanced personal data"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 msgid "New user"
 msgstr ""
 
-#: forms.py:116
+#: forms.py:114
 msgid "Create a new account"
 msgstr ""
 
-#: forms.py:128
+#: forms.py:126 models.py:91
+msgid "School term"
+msgstr ""
+
+#: forms.py:127
 msgid "Common data"
 msgstr ""
 
-#: forms.py:129 forms.py:169 menus.py:141 models.py:54
-#: templates/core/persons.html:8 templates/core/persons.html:9
+#: forms.py:128 forms.py:170 menus.py:152 models.py:105
+#: templates/core/person/list.html:8 templates/core/person/list.html:9
 msgid "Persons"
 msgstr ""
 
-#: forms.py:162 forms.py:165 models.py:31
+#: forms.py:129
+msgid "Additional data"
+msgstr ""
+
+#: forms.py:163 forms.py:166 models.py:35
 msgid "Date"
 msgstr ""
 
-#: forms.py:163 forms.py:166 models.py:39
+#: forms.py:164 forms.py:167 models.py:43
 msgid "Time"
 msgstr ""
 
-#: forms.py:171 menus.py:149 models.py:253 templates/core/groups.html:8
-#: templates/core/groups.html:9 templates/core/person_full.html:106
+#: forms.py:172 menus.py:160 models.py:319 templates/core/group/list.html:8
+#: templates/core/group/list.html:9 templates/core/person/full.html:136
 msgid "Groups"
 msgstr ""
 
-#: forms.py:175
+#: forms.py:176
 msgid "From when until when should the announcement be displayed?"
 msgstr ""
 
-#: forms.py:178
+#: forms.py:179
 msgid "Who should see the announcement?"
 msgstr ""
 
-#: forms.py:179
+#: forms.py:180
 msgid "Write your announcement:"
 msgstr ""
 
-#: forms.py:216
-msgid ""
-"You are not allowed to create announcements which are only valid in the past."
+#: forms.py:219
+msgid "You are not allowed to create announcements which are only valid in the past."
 msgstr ""
 
-#: forms.py:220
+#: forms.py:223
 msgid "The from date and time must be earlier then the until date and time."
 msgstr ""
 
-#: forms.py:229
+#: forms.py:232
 msgid "You need at least one recipient."
 msgstr ""
 
 #: menus.py:7 templates/two_factor/core/login.html:6
 #: templates/two_factor/core/login.html:10
-#: templates/two_factor/core/login.html:73
+#: templates/two_factor/core/login.html:86
 msgid "Login"
 msgstr ""
 
@@ -134,502 +155,556 @@ msgstr ""
 msgid "Admin"
 msgstr ""
 
-#: menus.py:75 models.py:487 templates/core/announcement/list.html:7
+#: menus.py:75 models.py:564 templates/core/announcement/list.html:7
 #: templates/core/announcement/list.html:8
 msgid "Announcements"
 msgstr ""
 
-#: menus.py:86 templates/core/data_management.html:6
-#: templates/core/data_management.html:7
+#: menus.py:86 models.py:92 templates/core/school_term/list.html:8
+#: templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr ""
+
+#: menus.py:97 templates/core/management/data_management.html:6
+#: templates/core/management/data_management.html:7
 msgid "Data management"
 msgstr ""
 
-#: menus.py:94 templates/core/system_status.html:5
-#: templates/core/system_status.html:7
+#: menus.py:105 templates/core/pages/system_status.html:5
+#: templates/core/pages/system_status.html:7
 msgid "System status"
 msgstr ""
 
-#: menus.py:105
+#: menus.py:116
 msgid "Impersonation"
 msgstr ""
 
-#: menus.py:113
+#: menus.py:124
 msgid "Configuration"
 msgstr ""
 
-#: menus.py:124
+#: menus.py:135
 msgid "Backend Admin"
 msgstr ""
 
-#: menus.py:132
+#: menus.py:143
 msgid "People"
 msgstr ""
 
-#: menus.py:157
+#: menus.py:168 models.py:727 templates/core/group_type/list.html:8
+#: templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr ""
+
+#: menus.py:179
 msgid "Persons and accounts"
 msgstr ""
 
-#: menus.py:168
+#: menus.py:190
 msgid "Groups and child groups"
 msgstr ""
 
-#: menus.py:183 templates/core/groups_child_groups.html:7
-#: templates/core/groups_child_groups.html:9
+#: menus.py:201 models.py:363 templates/core/additional_field/list.html:8
+#: templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr ""
+
+#: menus.py:216 templates/core/group/child_groups.html:7
+#: templates/core/group/child_groups.html:9
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: models.py:29
+#: mixins.py:406
+msgid "Linked school term"
+msgstr ""
+
+#: models.py:33
 msgid "Boolean (Yes/No)"
 msgstr ""
 
-#: models.py:30
+#: models.py:34
 msgid "Text (one line)"
 msgstr ""
 
-#: models.py:32
+#: models.py:36
 msgid "Date and time"
 msgstr ""
 
-#: models.py:33
+#: models.py:37
 msgid "Decimal number"
 msgstr ""
 
-#: models.py:34 models.py:95
+#: models.py:38 models.py:146
 msgid "E-mail address"
 msgstr ""
 
-#: models.py:35
+#: models.py:39
 msgid "Integer"
 msgstr ""
 
-#: models.py:36
+#: models.py:40
 msgid "IP address"
 msgstr ""
 
-#: models.py:37
+#: models.py:41
 msgid "Boolean or empty (Yes/No/Neither)"
 msgstr ""
 
-#: models.py:38
+#: models.py:42
 msgid "Text (multi-line)"
 msgstr ""
 
-#: models.py:40
+#: models.py:44
 msgid "URL / Link"
 msgstr ""
 
-#: models.py:53 templates/core/persons_accounts.html:36
+#: models.py:56 models.py:700
+msgid "Name"
+msgstr ""
+
+#: models.py:58
+msgid "Start date"
+msgstr ""
+
+#: models.py:59
+msgid "End date"
+msgstr ""
+
+#: models.py:77
+msgid "The start date must be earlier than the end date."
+msgstr ""
+
+#: models.py:84
+msgid "There is already a school term for this time or a part of this time."
+msgstr ""
+
+#: models.py:104 templates/core/person/accounts.html:36
 msgid "Person"
 msgstr ""
 
-#: models.py:56
+#: models.py:107
 msgid "Can view address"
 msgstr ""
 
-#: models.py:57
+#: models.py:108
 msgid "Can view contact details"
 msgstr ""
 
-#: models.py:58
+#: models.py:109
 msgid "Can view photo"
 msgstr ""
 
-#: models.py:59
+#: models.py:110
 msgid "Can view persons groups"
 msgstr ""
 
-#: models.py:60
+#: models.py:111
 msgid "Can view personal details"
 msgstr ""
 
-#: models.py:65
+#: models.py:116
 msgid "female"
 msgstr ""
 
-#: models.py:65
+#: models.py:116
 msgid "male"
 msgstr ""
 
-#: models.py:73
+#: models.py:124
 msgid "Linked user"
 msgstr ""
 
-#: models.py:75
+#: models.py:126
 msgid "Is person active?"
 msgstr ""
 
-#: models.py:77
+#: models.py:128
 msgid "First name"
 msgstr ""
 
-#: models.py:78
+#: models.py:129
 msgid "Last name"
 msgstr ""
 
-#: models.py:80
+#: models.py:131
 msgid "Additional name(s)"
 msgstr ""
 
-#: models.py:84 models.py:260
+#: models.py:135 models.py:332
 msgid "Short name"
 msgstr ""
 
-#: models.py:87
+#: models.py:138
 msgid "Street"
 msgstr ""
 
-#: models.py:88
+#: models.py:139
 msgid "Street number"
 msgstr ""
 
-#: models.py:89
+#: models.py:140
 msgid "Postal code"
 msgstr ""
 
-#: models.py:90
+#: models.py:141
 msgid "Place"
 msgstr ""
 
-#: models.py:92
+#: models.py:143
 msgid "Home phone"
 msgstr ""
 
-#: models.py:93
+#: models.py:144
 msgid "Mobile phone"
 msgstr ""
 
-#: models.py:97
+#: models.py:148
 msgid "Date of birth"
 msgstr ""
 
-#: models.py:98
+#: models.py:149
 msgid "Sex"
 msgstr ""
 
-#: models.py:100
+#: models.py:151
 msgid "Photo"
 msgstr ""
 
-#: models.py:105
+#: models.py:155 templates/core/person/full.html:129
 msgid "Guardians / Parents"
 msgstr ""
 
-#: models.py:112
+#: models.py:162
 msgid "Primary group"
 msgstr ""
 
-#: models.py:115 models.py:346 models.py:370 models.py:455 models.py:643
+#: models.py:165 models.py:423 models.py:447 models.py:532 models.py:720
+#: templates/core/person/full.html:112
 msgid "Description"
 msgstr ""
 
-#: models.py:233
+#: models.py:296
 msgid "Title of field"
 msgstr ""
 
-#: models.py:235
+#: models.py:298
 msgid "Type of field"
 msgstr ""
 
-#: models.py:239
+#: models.py:305
 msgid "Addtitional field for groups"
 msgstr ""
 
-#: models.py:240
+#: models.py:306
 msgid "Addtitional fields for groups"
 msgstr ""
 
-#: models.py:252
+#: models.py:318
 msgid "Group"
 msgstr ""
 
-#: models.py:254
+#: models.py:320
 msgid "Can assign child groups to groups"
 msgstr ""
 
-#: models.py:258
+#: models.py:330
 msgid "Long name"
 msgstr ""
 
-#: models.py:268 templates/core/group_full.html:37
+#: models.py:340 templates/core/group/full.html:65
 msgid "Members"
 msgstr ""
 
-#: models.py:271 templates/core/group_full.html:34
+#: models.py:343 templates/core/group/full.html:62
 msgid "Owners"
 msgstr ""
 
-#: models.py:278
+#: models.py:350 templates/core/group/full.html:54
 msgid "Parent groups"
 msgstr ""
 
-#: models.py:286
+#: models.py:358
 msgid "Type of group"
 msgstr ""
 
-#: models.py:290
-msgid "Additional fields"
-msgstr ""
-
-#: models.py:342
+#: models.py:419
 msgid "User"
 msgstr ""
 
-#: models.py:345 models.py:369 models.py:454
+#: models.py:422 models.py:446 models.py:531
 #: templates/core/announcement/list.html:18
 msgid "Title"
 msgstr ""
 
-#: models.py:348
+#: models.py:425
 msgid "Application"
 msgstr ""
 
-#: models.py:354
+#: models.py:431
 msgid "Activity"
 msgstr ""
 
-#: models.py:355
+#: models.py:432
 msgid "Activities"
 msgstr ""
 
-#: models.py:361
+#: models.py:438
 msgid "Sender"
 msgstr ""
 
-#: models.py:366
+#: models.py:443
 msgid "Recipient"
 msgstr ""
 
-#: models.py:371 models.py:624
+#: models.py:448 models.py:701
 msgid "Link"
 msgstr ""
 
-#: models.py:373
+#: models.py:450
 msgid "Read"
 msgstr ""
 
-#: models.py:374
+#: models.py:451
 msgid "Sent"
 msgstr ""
 
-#: models.py:387
+#: models.py:464
 msgid "Notification"
 msgstr ""
 
-#: models.py:388
+#: models.py:465
 msgid "Notifications"
 msgstr ""
 
-#: models.py:456
+#: models.py:533
 msgid "Link to detailed view"
 msgstr ""
 
-#: models.py:459
+#: models.py:536
 msgid "Date and time from when to show"
 msgstr ""
 
-#: models.py:462
+#: models.py:539
 msgid "Date and time until when to show"
 msgstr ""
 
-#: models.py:486
+#: models.py:563
 msgid "Announcement"
 msgstr ""
 
-#: models.py:524
+#: models.py:601
 msgid "Announcement recipient"
 msgstr ""
 
-#: models.py:525
+#: models.py:602
 msgid "Announcement recipients"
 msgstr ""
 
-#: models.py:575
+#: models.py:652
 msgid "Widget Title"
 msgstr ""
 
-#: models.py:576
+#: models.py:653
 msgid "Activate Widget"
 msgstr ""
 
-#: models.py:594
+#: models.py:671
 msgid "Dashboard Widget"
 msgstr ""
 
-#: models.py:595
+#: models.py:672
 msgid "Dashboard Widgets"
 msgstr ""
 
-#: models.py:601
+#: models.py:678
 msgid "Menu ID"
 msgstr ""
 
-#: models.py:613
+#: models.py:690
 msgid "Custom menu"
 msgstr ""
 
-#: models.py:614
+#: models.py:691
 msgid "Custom menus"
 msgstr ""
 
-#: models.py:621
+#: models.py:698
 msgid "Menu"
 msgstr ""
 
-#: models.py:623
-msgid "Name"
-msgstr ""
-
-#: models.py:625
+#: models.py:702
 msgid "Icon"
 msgstr ""
 
-#: models.py:631
+#: models.py:708
 msgid "Custom menu item"
 msgstr ""
 
-#: models.py:632
+#: models.py:709
 msgid "Custom menu items"
 msgstr ""
 
-#: models.py:642
+#: models.py:719
 msgid "Title of type"
 msgstr ""
 
-#: models.py:646
+#: models.py:726 templates/core/group/full.html:46
 msgid "Group type"
 msgstr ""
 
-#: models.py:647
-msgid "Group types"
-msgstr ""
-
-#: models.py:656
+#: models.py:736
 msgid "Can view system status"
 msgstr ""
 
-#: models.py:657
+#: models.py:737
 msgid "Can link persons to accounts"
 msgstr ""
 
-#: models.py:658
+#: models.py:738
 msgid "Can manage data"
 msgstr ""
 
-#: models.py:659
+#: models.py:739
 msgid "Can impersonate"
 msgstr ""
 
-#: models.py:660
+#: models.py:740
 msgid "Can use search"
 msgstr ""
 
-#: models.py:661
+#: models.py:741
 msgid "Can change site preferences"
 msgstr ""
 
-#: models.py:662
+#: models.py:742
 msgid "Can change person preferences"
 msgstr ""
 
-#: models.py:663
+#: models.py:743
 msgid "Can change group preferences"
 msgstr ""
 
-#: preferences.py:27
+#: preferences.py:24
+msgid "Authentication"
+msgstr ""
+
+#: preferences.py:33
 msgid "Site title"
 msgstr ""
 
-#: preferences.py:36
+#: preferences.py:42
 msgid "Site description"
 msgstr ""
 
-#: preferences.py:45
+#: preferences.py:51
 msgid "Primary colour"
 msgstr ""
 
-#: preferences.py:54
+#: preferences.py:60
 msgid "Secondary colour"
 msgstr ""
 
-#: preferences.py:62
+#: preferences.py:68
 msgid "Logo"
 msgstr ""
 
-#: preferences.py:70
+#: preferences.py:76
 msgid "Favicon"
 msgstr ""
 
-#: preferences.py:78
+#: preferences.py:84
 msgid "PWA-Icon"
 msgstr ""
 
-#: preferences.py:87
+#: preferences.py:93
 msgid "Mail out name"
 msgstr ""
 
-#: preferences.py:96
+#: preferences.py:102
 msgid "Mail out address"
 msgstr ""
 
-#: preferences.py:106
+#: preferences.py:112
 msgid "Link to privacy policy"
 msgstr ""
 
-#: preferences.py:116
+#: preferences.py:122
 msgid "Link to imprint"
 msgstr ""
 
-#: preferences.py:126
+#: preferences.py:132
 msgid "Name format for addressing"
 msgstr ""
 
-#: preferences.py:140
+#: preferences.py:146
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: preferences.py:150
+#: preferences.py:156
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: preferences.py:159
+#: preferences.py:165
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: preferences.py:171
+#: preferences.py:177
 msgid "Display name of the school"
 msgstr ""
 
-#: preferences.py:180
+#: preferences.py:186
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: settings.py:276
+#: preferences.py:194
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: settings.py:300
 msgid "English"
 msgstr ""
 
-#: settings.py:277
+#: settings.py:301
 msgid "German"
 msgstr ""
 
-#: settings.py:278
+#: settings.py:302
 msgid "French"
 msgstr ""
 
-#: templates/403.html:10 templates/404.html:10 templates/500.html:10
+#: settings.py:303
+msgid "Norsk (bokmål)"
+msgstr ""
+
+#: tables.py:19 templates/core/announcement/list.html:36
+#: templates/core/group/full.html:23 templates/core/person/full.html:22
+msgid "Edit"
+msgstr ""
+
+#: tables.py:21 templates/core/announcement/list.html:22
+msgid "Actions"
+msgstr ""
+
+#: tables.py:56 tables.py:57 tables.py:71
+#: templates/core/announcement/list.html:42 templates/core/group/full.html:30
+#: templates/core/pages/delete.html:22 templates/core/person/full.html:29
+msgid "Delete"
+msgstr ""
+
+#: templates/403.html:14 templates/404.html:10 templates/500.html:10
 msgid "Error"
 msgstr ""
 
-#: templates/403.html:10
+#: templates/403.html:14
 msgid ""
 "You are not allowed to access the requested page or\n"
 "          object."
 msgstr ""
 
-#: templates/403.html:13 templates/404.html:17
+#: templates/403.html:19 templates/404.html:17
 msgid ""
 "\n"
-"            If you think this is an error in AlekSIS, please contact your "
-"site\n"
+"            If you think this is an error in AlekSIS, please contact your site\n"
 "            administrators:\n"
 "          "
 msgstr ""
@@ -657,8 +732,7 @@ msgstr ""
 #: templates/500.html:13
 msgid ""
 "\n"
-"            Your site administrators will automatically be notified about "
-"this\n"
+"            Your site administrators will automatically be notified about this\n"
 "            error. You can also contact them directly:\n"
 "          "
 msgstr ""
@@ -672,75 +746,17 @@ msgstr ""
 #: templates/503.html:13
 msgid ""
 "\n"
-"            This page is currently unavailable. If this error persists, "
-"contact your site administrators:\n"
+"            This page is currently unavailable. If this error persists, contact your site administrators:\n"
 "          "
 msgstr ""
 
-#: templates/core/about.html:6 templates/core/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: templates/core/about.html:7
-msgid "AlekSIS – The Free School Information System"
-msgstr ""
-
-#: templates/core/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS, a web-based school "
-"information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of "
-"educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:25
-msgid "Website of AlekSIS"
+#: templates/core/additional_field/edit.html:6
+#: templates/core/additional_field/edit.html:7
+msgid "Edit additional field"
 msgstr ""
 
-#: templates/core/about.html:26
-msgid "Source code"
-msgstr ""
-
-#: templates/core/about.html:35
-msgid "Licence information"
-msgstr ""
-
-#: templates/core/about.html:37
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under "
-"the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the "
-"respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: templates/core/about.html:45
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: templates/core/about.html:46
-msgid "Other Licence"
-msgstr ""
-
-#: templates/core/about.html:50
-msgid "Full licence text"
-msgstr ""
-
-#: templates/core/about.html:51
-msgid "More information about the EUPL"
-msgstr ""
-
-#: templates/core/about.html:90
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
+#: templates/core/additional_field/list.html:14
+msgid "Create additional field"
 msgstr ""
 
 #: templates/core/announcement/form.html:10
@@ -773,163 +789,134 @@ msgstr ""
 msgid "Recipients"
 msgstr ""
 
-#: templates/core/announcement/list.html:22
-msgid "Actions"
-msgstr ""
-
-#: templates/core/announcement/list.html:36 templates/core/group_full.html:22
-#: templates/core/person_full.html:21
-msgid "Edit"
-msgstr ""
-
-#: templates/core/announcement/list.html:42
-msgid "Delete"
-msgstr ""
-
 #: templates/core/announcement/list.html:50
 msgid "There are no announcements."
 msgstr ""
 
-#: templates/core/announcements.html:9 templates/core/announcements.html:36
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:13
-#, python-format
-msgid ""
-"\n"
-"              Valid from %(from)s until %(until)s\n"
-"            "
-msgstr ""
-
-#: templates/core/announcements.html:40
-#, python-format
-msgid ""
-"\n"
-"              Valid for %(from)s – %(until)s\n"
-"            "
-msgstr ""
-
 #: templates/core/base.html:54
 msgid "Logged in as"
 msgstr ""
 
-#: templates/core/base.html:76 templates/search/search.html:7
-#: templates/search/search.html:22
-msgid "Search"
-msgstr ""
-
-#: templates/core/base.html:148
+#: templates/core/base.html:147
 msgid "About AlekSIS — The Free School Information System"
 msgstr ""
 
-#: templates/core/base.html:156
+#: templates/core/base.html:155
 msgid "Impress"
 msgstr ""
 
-#: templates/core/base.html:164
+#: templates/core/base.html:163
 msgid "Privacy Policy"
 msgstr ""
 
-#: templates/core/base_print.html:62
+#: templates/core/base_print.html:64
 msgid "Powered by AlekSIS"
 msgstr ""
 
-#: templates/core/edit_group.html:6 templates/core/edit_group.html:7
-msgid "Edit group"
-msgstr ""
-
-#: templates/core/edit_person.html:8 templates/core/edit_person.html:9
-msgid "Edit person"
-msgstr ""
-
-#: templates/core/group_full.html:28 templates/core/person_full.html:28
-msgid "Change preferences"
-msgstr ""
-
-#: templates/core/groups.html:14
-msgid "Create group"
-msgstr ""
-
-#: templates/core/groups_child_groups.html:18
+#: templates/core/group/child_groups.html:18
 msgid ""
 "\n"
-"          You can use this to assign child groups to groups. Please use the "
-"filters below to select groups you want to\n"
+"          You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n"
 "          change and click \"Next\".\n"
 "        "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:31
+#: templates/core/group/child_groups.html:31
 msgid "Update selection"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:35
+#: templates/core/group/child_groups.html:35
 msgid "Clear all filters"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:39
+#: templates/core/group/child_groups.html:39
 msgid "Currently selected groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:52
+#: templates/core/group/child_groups.html:52
 msgid "Start assigning child groups for this groups"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:61
+#: templates/core/group/child_groups.html:61
 msgid ""
 "\n"
 "            Please select some groups in order to go on with assigning.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:72
+#: templates/core/group/child_groups.html:72
 msgid "Current group:"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:78
+#: templates/core/group/child_groups.html:78
 msgid "Please be careful!"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:79
+#: templates/core/group/child_groups.html:79
 msgid ""
 "\n"
-"            If you click \"Back\" or \"Next\" the current group assignments "
-"are not saved.\n"
-"            If you click \"Save\", you will overwrite all existing child "
-"group relations for this group with what you\n"
+"            If you click \"Back\" or \"Next\" the current group assignments are not saved.\n"
+"            If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n"
 "            selected on this page.\n"
 "          "
 msgstr ""
 
-#: templates/core/groups_child_groups.html:93
-#: templates/core/groups_child_groups.html:128
+#: templates/core/group/child_groups.html:93
+#: templates/core/group/child_groups.html:128
 #: templates/two_factor/_wizard_actions.html:15
 #: templates/two_factor/_wizard_actions.html:20
 msgid "Back"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:99
-#: templates/core/groups_child_groups.html:134
+#: templates/core/group/child_groups.html:99
+#: templates/core/group/child_groups.html:134
 #: templates/two_factor/_wizard_actions.html:26
 msgid "Next"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:106
-#: templates/core/groups_child_groups.html:141
-#: templates/core/save_button.html:3
+#: templates/core/group/child_groups.html:106
+#: templates/core/group/child_groups.html:141
+#: templates/core/partials/save_button.html:3
 msgid "Save"
 msgstr ""
 
-#: templates/core/groups_child_groups.html:112
-#: templates/core/groups_child_groups.html:147
+#: templates/core/group/child_groups.html:112
+#: templates/core/group/child_groups.html:147
 msgid "Save and next"
 msgstr ""
 
+#: templates/core/group/edit.html:6 templates/core/group/edit.html:7
+msgid "Edit group"
+msgstr ""
+
+#: templates/core/group/full.html:37 templates/core/person/full.html:36
+msgid "Change preferences"
+msgstr ""
+
+#: templates/core/group/list.html:14
+msgid "Create group"
+msgstr ""
+
+#: templates/core/group/list.html:17
+msgid "Filter groups"
+msgstr ""
+
+#: templates/core/group/list.html:24 templates/core/person/list.html:28
+msgid "Clear"
+msgstr ""
+
+#: templates/core/group/list.html:28
+msgid "Selected groups"
+msgstr ""
+
+#: templates/core/group_type/edit.html:6 templates/core/group_type/edit.html:7
+msgid "Edit group type"
+msgstr ""
+
+#: templates/core/group_type/list.html:14
+msgid "Create group type"
+msgstr ""
+
 #: templates/core/index.html:4
 msgid "Home"
 msgstr ""
@@ -954,105 +941,328 @@ msgstr ""
 msgid "No notifications available yet."
 msgstr ""
 
-#: templates/core/no_person.html:12
+#: templates/core/pages/about.html:6 templates/core/pages/about.html:15
+msgid "About AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:7
+msgid "AlekSIS – The Free School Information System"
+msgstr ""
+
+#: templates/core/pages/about.html:17
 msgid ""
 "\n"
-"            Your administrator account is not linked to any person. "
-"Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
+"              This platform is powered by AlekSIS, a web-based school information system (SIS) which can be used\n"
+"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
+"              can be used by anyone.\n"
+"            "
 msgstr ""
 
-#: templates/core/no_person.html:19
+#: templates/core/pages/about.html:25
+msgid "Website of AlekSIS"
+msgstr ""
+
+#: templates/core/pages/about.html:26
+msgid "Source code"
+msgstr ""
+
+#: templates/core/pages/about.html:35
+msgid "Licence information"
+msgstr ""
+
+#: templates/core/pages/about.html:37
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
+"              information from third-party apps, if installed, refer to the respective components below. The\n"
+"              licences are marked like this:\n"
+"            "
 msgstr ""
 
-#: templates/core/person_full.html:34
-msgid "Contact details"
+#: templates/core/pages/about.html:45
+msgid "Free/Open Source Licence"
 msgstr ""
 
-#: templates/core/persons_accounts.html:7
-#: templates/core/persons_accounts.html:9
-msgid "Link persons to accounts"
+#: templates/core/pages/about.html:46
+msgid "Other Licence"
+msgstr ""
+
+#: templates/core/pages/about.html:50
+msgid "Full licence text"
+msgstr ""
+
+#: templates/core/pages/about.html:51
+msgid "More information about the EUPL"
 msgstr ""
 
-#: templates/core/persons_accounts.html:16
+#: templates/core/pages/about.html:90
+#, python-format
 msgid ""
 "\n"
-"        You can use this form to assign user accounts to persons. Use the\n"
-"        dropdowns to select existing accounts; use the text fields to create "
-"new\n"
-"        accounts on-the-fly. The latter will create a new account with the\n"
-"        entered username and copy all other details from the person.\n"
-"      "
+"                    This app is licenced under %(licence)s.\n"
+"                  "
 msgstr ""
 
-#: templates/core/persons_accounts.html:31
-#: templates/core/persons_accounts.html:55
-msgid "Update"
+#: templates/core/pages/delete.html:6
+#, python-format
+msgid "Delete %(object_name)s"
 msgstr ""
 
-#: templates/core/persons_accounts.html:37
-msgid "Existing account"
+#: templates/core/pages/delete.html:13
+#, python-format
+msgid ""
+"\n"
+"      Do you really want to delete the %(object_name)s \"%(object)s\"?\n"
+"    "
 msgstr ""
 
-#: templates/core/persons_accounts.html:38
-msgid "New account"
+#: templates/core/pages/offline.html:6
+msgid ""
+"No internet\n"
+"    connection."
+msgstr ""
+
+#: templates/core/pages/offline.html:10
+msgid ""
+"\n"
+"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
+"      administrators:\n"
+"    "
+msgstr ""
+
+#: templates/core/pages/progress.html:27
+msgid ""
+"\n"
+"              Without activated JavaScript the progress status can't be updated.\n"
+"            "
+msgstr ""
+
+#: templates/core/pages/progress.html:47
+#: templates/two_factor/core/otp_required.html:19
+msgid "Go back"
 msgstr ""
 
-#: templates/core/system_status.html:12
+#: templates/core/pages/system_status.html:12
 msgid "System checks"
 msgstr ""
 
-#: templates/core/system_status.html:21
+#: templates/core/pages/system_status.html:21
 msgid "Maintenance mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:23
+#: templates/core/pages/system_status.html:23
 msgid ""
 "\n"
-"                Only admin and visitors from internal IPs can access "
-"thesite.\n"
+"                Only admin and visitors from internal IPs can access thesite.\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:34
+#: templates/core/pages/system_status.html:34
 msgid "Maintenance mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:35
+#: templates/core/pages/system_status.html:35
 msgid "Everyone can access the site."
 msgstr ""
 
-#: templates/core/system_status.html:45
+#: templates/core/pages/system_status.html:45
 msgid "Debug mode enabled"
 msgstr ""
 
-#: templates/core/system_status.html:47
+#: templates/core/pages/system_status.html:47
 msgid ""
 "\n"
-"                The web server throws back debug information on errors. Do "
-"not use in production!\n"
+"                The web server throws back debug information on errors. Do not use in production!\n"
 "              "
 msgstr ""
 
-#: templates/core/system_status.html:54
+#: templates/core/pages/system_status.html:54
 msgid "Debug mode disabled"
 msgstr ""
 
-#: templates/core/system_status.html:56
+#: templates/core/pages/system_status.html:56
 msgid ""
 "\n"
-"                Debug mode is disabled. Default error pages are displayed on "
-"errors.\n"
+"                Debug mode is disabled. Default error pages are displayed on errors.\n"
 "              "
 msgstr ""
 
+#: templates/core/pages/system_status.html:69
+msgid "System health checks"
+msgstr ""
+
+#: templates/core/pages/system_status.html:75
+msgid "Service"
+msgstr ""
+
+#: templates/core/pages/system_status.html:76
+#: templates/core/pages/system_status.html:115
+msgid "Status"
+msgstr ""
+
+#: templates/core/pages/system_status.html:77
+msgid "Time taken"
+msgstr ""
+
+#: templates/core/pages/system_status.html:96
+msgid "seconds"
+msgstr ""
+
+#: templates/core/pages/system_status.html:107
+msgid "Celery task results"
+msgstr ""
+
+#: templates/core/pages/system_status.html:112
+msgid "Task"
+msgstr ""
+
+#: templates/core/pages/system_status.html:113
+msgid "ID"
+msgstr ""
+
+#: templates/core/pages/system_status.html:114
+msgid "Date done"
+msgstr ""
+
+#: templates/core/partials/announcements.html:9
+#: templates/core/partials/announcements.html:36
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:13
+#, python-format
+msgid ""
+"\n"
+"              Valid from %(from)s until %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/announcements.html:40
+#, python-format
+msgid ""
+"\n"
+"              Valid for %(from)s – %(until)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:10
+#, python-format
+msgid ""
+"\n"
+"              Created by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:14
+#: templates/core/partials/crud_events.html:22
+#: templates/core/partials/crud_events.html:26
+#, python-format
+msgid ""
+"\n"
+"              Updated by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/crud_events.html:18
+#, python-format
+msgid ""
+"\n"
+"              Deleted by %(person)s\n"
+"            "
+msgstr ""
+
+#: templates/core/partials/language_form.html:16
+msgid "Language"
+msgstr ""
+
+#: templates/core/partials/language_form.html:28
+msgid "Select language"
+msgstr ""
+
+#: templates/core/partials/no_person.html:12
+msgid ""
+"\n"
+"            Your administrator account is not linked to any person. Therefore,\n"
+"            a dummy person has been linked to your account.\n"
+"          "
+msgstr ""
+
+#: templates/core/partials/no_person.html:19
+msgid ""
+"\n"
+"            Your user account is not linked to a person. This means you\n"
+"            cannot access any school-related information. Please contact\n"
+"            the managers of AlekSIS at your school.\n"
+"          "
+msgstr ""
+
+#: templates/core/person/accounts.html:7 templates/core/person/accounts.html:9
+msgid "Link persons to accounts"
+msgstr ""
+
+#: templates/core/person/accounts.html:16
+msgid ""
+"\n"
+"        You can use this form to assign user accounts to persons. Use the\n"
+"        dropdowns to select existing accounts; use the text fields to create new\n"
+"        accounts on-the-fly. The latter will create a new account with the\n"
+"        entered username and copy all other details from the person.\n"
+"      "
+msgstr ""
+
+#: templates/core/person/accounts.html:31
+#: templates/core/person/accounts.html:55
+msgid "Update"
+msgstr ""
+
+#: templates/core/person/accounts.html:37
+msgid "Existing account"
+msgstr ""
+
+#: templates/core/person/accounts.html:38
+msgid "New account"
+msgstr ""
+
+#: templates/core/person/edit.html:11 templates/core/person/edit.html:12
+msgid "Edit person"
+msgstr ""
+
+#: templates/core/person/full.html:42
+msgid "Contact details"
+msgstr ""
+
+#: templates/core/person/full.html:122
+msgid "Children"
+msgstr ""
+
+#: templates/core/person/list.html:17
+msgid "Create person"
+msgstr ""
+
+#: templates/core/person/list.html:21
+msgid "Filter persons"
+msgstr ""
+
+#: templates/core/person/list.html:32
+msgid "Selected persons"
+msgstr ""
+
+#: templates/core/school_term/create.html:6
+#: templates/core/school_term/create.html:7
+#: templates/core/school_term/list.html:14
+msgid "Create school term"
+msgstr ""
+
+#: templates/core/school_term/edit.html:6
+#: templates/core/school_term/edit.html:7
+msgid "Edit school term"
+msgstr ""
+
 #: templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -1078,23 +1288,6 @@ msgstr ""
 msgid "Impersonate user"
 msgstr ""
 
-#: templates/offline.html:6
-msgid ""
-"No internet\n"
-"    connection."
-msgstr ""
-
-#: templates/offline.html:10
-msgid ""
-"\n"
-"      There was an error accessing this page. You probably don't have an "
-"internet connection. Check to see if your WiFi\n"
-"      or mobile data is turned on and try again. If you think you are "
-"connected, please contact the system\n"
-"      administrators:\n"
-"    "
-msgstr ""
-
 #: templates/search/search.html:8
 msgid "Global Search"
 msgstr ""
@@ -1119,28 +1312,43 @@ msgstr ""
 msgid "New notification for"
 msgstr ""
 
-#: templates/templated_email/notification.email:7
-msgid "Dear"
+#: templates/templated_email/notification.email:6
+#: templates/templated_email/notification.email:27
+#, python-format
+msgid "Dear %(notification_user)s,"
 msgstr ""
 
 #: templates/templated_email/notification.email:8
+#: templates/templated_email/notification.email:29
 msgid "we got a new notification for you:"
 msgstr ""
 
-#: templates/templated_email/notification.email:12
+#: templates/templated_email/notification.email:15
+#: templates/templated_email/notification.email:35
 msgid "More information"
 msgstr ""
 
-#: templates/templated_email/notification.email:16
+#: templates/templated_email/notification.email:18
 #, python-format
 msgid ""
 "\n"
-"    <p>By %(trans_sender)s at %(trans_created_at)s</p>\n"
-"\n"
-"    <i>Your AlekSIS team</i>\n"
+"        Sent by %(trans_sender)s at %(trans_created_at)s\n"
 "    "
 msgstr ""
 
+#: templates/templated_email/notification.email:22
+#: templates/templated_email/notification.email:46
+msgid "Your AlekSIS team"
+msgstr ""
+
+#: templates/templated_email/notification.email:40
+#, python-format
+msgid ""
+"\n"
+"            Sent by %(trans_sender)s at %(trans_created_at)s\n"
+"        "
+msgstr ""
+
 #: templates/two_factor/_base_focus.html:6
 #: templates/two_factor/core/otp_required.html:22
 #: templates/two_factor/core/setup.html:5
@@ -1163,10 +1371,8 @@ msgid ""
 "\n"
 "        Backup tokens can be used when your primary and backup\n"
 "        phone numbers aren't available. The backup tokens below can be used\n"
-"        for login verification. If you've used up all your backup tokens, "
-"you\n"
-"        can generate a new set of backup tokens. Only the backup tokens "
-"shown\n"
+"        for login verification. If you've used up all your backup tokens, you\n"
+"        can generate a new set of backup tokens. Only the backup tokens shown\n"
 "        below will be valid.\n"
 "      "
 msgstr ""
@@ -1191,52 +1397,58 @@ msgid "Generate Tokens"
 msgstr ""
 
 #: templates/two_factor/core/login.html:16
-msgid ""
-"You have no permission to view this page. Please login with an other account."
+msgid "You have no permission to view this page. Please login with an other account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:25
+#: templates/two_factor/core/login.html:24
 msgid "Please login to see this page."
 msgstr ""
 
-#: templates/two_factor/core/login.html:28
+#: templates/two_factor/core/login.html:30
+msgid "Login with username and password"
+msgstr ""
+
+#: templates/two_factor/core/login.html:40
 msgid ""
 "We are calling your phone right now, please enter the\n"
 "              digits you hear."
 msgstr ""
 
-#: templates/two_factor/core/login.html:31
+#: templates/two_factor/core/login.html:43
 msgid ""
 "We sent you a text message, please enter the tokens we\n"
 "              sent."
 msgstr ""
 
-#: templates/two_factor/core/login.html:34
+#: templates/two_factor/core/login.html:46
 msgid ""
 "Please enter the tokens generated by your token\n"
 "              generator."
 msgstr ""
 
-#: templates/two_factor/core/login.html:38
+#: templates/two_factor/core/login.html:50
 msgid ""
 "Use this form for entering backup tokens for logging in.\n"
-"            These tokens have been generated for you to print and keep safe. "
-"Please\n"
+"            These tokens have been generated for you to print and keep safe. Please\n"
 "            enter one of these backup tokens to login to your account."
 msgstr ""
 
-#: templates/two_factor/core/login.html:56
+#: templates/two_factor/core/login.html:68
 msgid "Or, alternatively, use one of your backup phones:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:66
+#: templates/two_factor/core/login.html:78
 msgid "As a last resort, you can use a backup token:"
 msgstr ""
 
-#: templates/two_factor/core/login.html:69
+#: templates/two_factor/core/login.html:81
 msgid "Use Backup Token"
 msgstr ""
 
+#: templates/two_factor/core/login.html:93
+msgid "Use alternative login options"
+msgstr ""
+
 #: templates/two_factor/core/otp_required.html:9
 msgid "Permission Denied"
 msgstr ""
@@ -1244,8 +1456,7 @@ msgstr ""
 #: templates/two_factor/core/otp_required.html:10
 msgid ""
 "The page you requested, enforces users to verify using\n"
-"          two-factor authentication for security reasons. You need to enable "
-"these\n"
+"          two-factor authentication for security reasons. You need to enable these\n"
 "          security features in order to access this page."
 msgstr ""
 
@@ -1256,10 +1467,6 @@ msgid ""
 "          security."
 msgstr ""
 
-#: templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr ""
-
 #: templates/two_factor/core/phone_register.html:5
 #: templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -1322,8 +1529,7 @@ msgstr ""
 #: templates/two_factor/core/setup.html:50
 msgid ""
 "\n"
-"            We are calling your phone right now, please enter the digits you "
-"hear.\n"
+"            We are calling your phone right now, please enter the digits you hear.\n"
 "          "
 msgstr ""
 
@@ -1337,12 +1543,9 @@ msgstr ""
 #: templates/two_factor/core/setup.html:63
 msgid ""
 "\n"
-"          We've encountered an issue with the selected authentication "
-"method. Please\n"
-"          go back and verify that you entered your information correctly, "
-"try\n"
-"          again, or use a different authentication method instead. If the "
-"issue\n"
+"          We've encountered an issue with the selected authentication method. Please\n"
+"          go back and verify that you entered your information correctly, try\n"
+"          again, or use a different authentication method instead. If the issue\n"
 "          persists, contact the site administrator.\n"
 "        "
 msgstr ""
@@ -1364,8 +1567,7 @@ msgstr ""
 #: templates/two_factor/core/setup_complete.html:14
 msgid ""
 "\n"
-"        Congratulations, you've successfully enabled two-factor "
-"authentication.\n"
+"        Congratulations, you've successfully enabled two-factor authentication.\n"
 "      "
 msgstr ""
 
@@ -1383,8 +1585,7 @@ msgstr ""
 msgid ""
 "\n"
 "          However, it might happen that you don't have access to\n"
-"          your primary token device. To enable account recovery, generate "
-"backup codes\n"
+"          your primary token device. To enable account recovery, generate backup codes\n"
 "          or add a phone number.\n"
 "        "
 msgstr ""
@@ -1402,9 +1603,7 @@ msgid "Disable Two-Factor Authentication"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:12
-msgid ""
-"You are about to disable two-factor authentication. This weakens your "
-"account security, are you sure?"
+msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?"
 msgstr ""
 
 #: templates/two_factor/profile/disable.html:26
@@ -1491,26 +1690,58 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: views.py:212
+#: views.py:122
+msgid "The school term has been created."
+msgstr ""
+
+#: views.py:133
+msgid "The school term has been saved."
+msgstr ""
+
+#: views.py:273
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: views.py:240
+#: views.py:309
 msgid "The person has been saved."
 msgstr ""
 
-#: views.py:276
+#: views.py:346
 msgid "The group has been saved."
 msgstr ""
 
-#: views.py:348
+#: views.py:434
 msgid "The announcement has been saved."
 msgstr ""
 
-#: views.py:364
+#: views.py:450
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: views.py:435
+#: views.py:521
 msgid "The preferences have been saved successfully."
 msgstr ""
+
+#: views.py:544
+msgid "The person has been deleted."
+msgstr ""
+
+#: views.py:557
+msgid "The group has been deleted."
+msgstr ""
+
+#: views.py:588
+msgid "The additional_field has been saved."
+msgstr ""
+
+#: views.py:622
+msgid "The additional field has been deleted."
+msgstr ""
+
+#: views.py:646
+msgid "The group type has been saved."
+msgstr ""
+
+#: views.py:676
+msgid "The group type has been deleted."
+msgstr ""
diff --git a/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po b/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po
index 21309c0096e0f1ec402dfa7c4e2f8604b96e2466..9dbef6e6f74f842b0e8f25e389edf1a852cd8d99 100644
--- a/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-28 13:31+0000\n"
+"POT-Creation-Date: 2020-08-02 16:29+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"