diff --git a/aleksis/apps/paweljong/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/ar/LC_MESSAGES/django.po
index 5afe6fee7e28a896208f23ce0df30956d8d1b373..aba0b6fc0dc2c2db6bade86c4e53d10db79ec0c5 100644
--- a/aleksis/apps/paweljong/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 19:43+0000\n"
+"POT-Creation-Date: 2022-06-24 14:54+0000\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"
@@ -30,12 +30,12 @@ msgstr ""
 msgid "Event members are out of sync with registrations!"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:30
-msgid "Search by event"
+#: aleksis/apps/paweljong/filters.py:17 aleksis/apps/paweljong/filters.py:45
+msgid "Search by name"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:38
-msgid "Search by name"
+#: aleksis/apps/paweljong/filters.py:37
+msgid "Search by event"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:18
@@ -83,7 +83,7 @@ msgid "Event details"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:52 aleksis/apps/paweljong/menus.py:37
-#: aleksis/apps/paweljong/models.py:128
+#: aleksis/apps/paweljong/models.py:129
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:5
 #: aleksis/apps/paweljong/templates/paweljong/term/list.html:6
@@ -92,7 +92,7 @@ msgid "Terms"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:53 aleksis/apps/paweljong/menus.py:59
-#: aleksis/apps/paweljong/models.py:131
+#: aleksis/apps/paweljong/models.py:132
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:7
 msgid "Info mailings"
@@ -110,7 +110,7 @@ msgstr ""
 msgid "Voucher discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:112
+#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:113
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:8
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:36
 msgid "Group"
@@ -181,7 +181,7 @@ msgid "Address data"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:198
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:67
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:71
 msgid "Contact details"
 msgstr ""
 
@@ -288,7 +288,7 @@ msgstr ""
 msgid "Enter the place (city) where your school is located."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:260
+#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:261
 msgid "School class"
 msgstr ""
 
@@ -296,7 +296,7 @@ msgstr ""
 msgid "Please enter the class you are in (e.g. 8a)."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:265
+#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:266
 msgid "Medical information / intolerances"
 msgstr ""
 
@@ -348,8 +348,8 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:227
-#: aleksis/apps/paweljong/models.py:256 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
+#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
@@ -370,8 +370,8 @@ msgstr ""
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:213
-#: aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/models.py:215
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:7
 msgid "Vouchers"
@@ -389,11 +389,11 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:737
+#: aleksis/apps/paweljong/views.py:746
 msgid "Upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:27
+#: aleksis/apps/paweljong/models.py:28
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:25
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:63
@@ -401,104 +401,103 @@ msgstr ""
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:28
+#: aleksis/apps/paweljong/models.py:29
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:35
+#: aleksis/apps/paweljong/models.py:36
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:36
+#: aleksis/apps/paweljong/models.py:37
 msgid "Term"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:37
+#: aleksis/apps/paweljong/models.py:38
 msgid "Confirmation text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:44
+#: aleksis/apps/paweljong/models.py:45
 msgid "subject"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:45
+#: aleksis/apps/paweljong/models.py:46
 msgid "Text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:46
+#: aleksis/apps/paweljong/models.py:47
 msgid "Request replies to"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:48
+#: aleksis/apps/paweljong/models.py:49
 msgid "Mailing is active"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:50
+#: aleksis/apps/paweljong/models.py:51
 msgid "Sender"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:51
+#: aleksis/apps/paweljong/models.py:52
 msgid "Send to registered person"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:52
+#: aleksis/apps/paweljong/models.py:53
 msgid "Send to guardians"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:110
+#: aleksis/apps/paweljong/models.py:111
 msgid "Display name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:114
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:69
+#: aleksis/apps/paweljong/models.py:115
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:9
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:37
 msgid "Description"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:115
+#: aleksis/apps/paweljong/models.py:116
 msgid "Publish"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:117
+#: aleksis/apps/paweljong/models.py:118
 msgid "Slug"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:120
+#: aleksis/apps/paweljong/models.py:121
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:40
 msgid "Date of event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:121
+#: aleksis/apps/paweljong/models.py:122
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:13
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:41
 msgid "Registration deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:122
+#: aleksis/apps/paweljong/models.py:123
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:42
 msgid "Retraction deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:125
+#: aleksis/apps/paweljong/models.py:126
 msgid "Cost in €"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:126
+#: aleksis/apps/paweljong/models.py:127
 msgid "Maximum participants"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:127
+#: aleksis/apps/paweljong/models.py:128
 msgid "Information about the event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:204
+#: aleksis/apps/paweljong/models.py:205
 msgid "Sent to persons"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:220 aleksis/apps/paweljong/models.py:254
+#: aleksis/apps/paweljong/models.py:221 aleksis/apps/paweljong/models.py:255
 #: aleksis/apps/paweljong/tables.py:12 aleksis/apps/paweljong/tables.py:43
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:4
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:8
@@ -508,69 +507,81 @@ msgstr ""
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:236
+#: aleksis/apps/paweljong/models.py:237
 msgid "Used by"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/models.py:258
 msgid "Registration date"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:259
+#: aleksis/apps/paweljong/models.py:260
 msgid "Name of school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:261
+#: aleksis/apps/paweljong/models.py:262
 msgid "Place of the school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:263
+#: aleksis/apps/paweljong/models.py:264
 msgid "Comment / remarks"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:270
+#: aleksis/apps/paweljong/models.py:271
 msgid "Voucher"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:274
+#: aleksis/apps/paweljong/models.py:275
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:31
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:80
 msgid "Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:277
+#: aleksis/apps/paweljong/models.py:278
 msgid "Accepted terms"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:282
+#: aleksis/apps/paweljong/models.py:283
 msgid "States"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:285
+#: aleksis/apps/paweljong/models.py:286
 msgid "Retracted"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:286
+#: aleksis/apps/paweljong/models.py:287
 msgid "Retracted at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:322
+#: aleksis/apps/paweljong/models.py:289
+msgid "Checked in"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:290
+msgid "Checked in at"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+msgid "Person is already checked in!"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:334
 msgid "Participation of {} in event {}"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:351
+#: aleksis/apps/paweljong/models.py:363
 msgid "Social Sponsoring / Extra Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:362
+#: aleksis/apps/paweljong/models.py:374
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:390 aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
 msgid "Event registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:391
+#: aleksis/apps/paweljong/models.py:403
 msgid "Event registrations"
 msgstr ""
 
@@ -597,11 +608,11 @@ msgid "Registration until"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:20 aleksis/apps/paweljong/tables.py:21
-#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:79
-#: aleksis/apps/paweljong/tables.py:80 aleksis/apps/paweljong/tables.py:97
-#: aleksis/apps/paweljong/tables.py:98 aleksis/apps/paweljong/tables.py:111
-#: aleksis/apps/paweljong/tables.py:112 aleksis/apps/paweljong/tables.py:131
-#: aleksis/apps/paweljong/tables.py:132
+#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:84
+#: aleksis/apps/paweljong/tables.py:85 aleksis/apps/paweljong/tables.py:102
+#: aleksis/apps/paweljong/tables.py:103 aleksis/apps/paweljong/tables.py:116
+#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:136
+#: aleksis/apps/paweljong/tables.py:137
 #: aleksis/apps/paweljong/templates/paweljong/event/detail.html:24
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:25
 msgid "Edit"
@@ -612,7 +623,7 @@ msgid "Public page"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:34 aleksis/apps/paweljong/tables.py:35
-#: aleksis/apps/paweljong/tables.py:74
+#: aleksis/apps/paweljong/tables.py:73
 msgid "View"
 msgstr ""
 
@@ -625,8 +636,8 @@ msgid "Code"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:50 aleksis/apps/paweljong/tables.py:51
-#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:118
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:38
+#: aleksis/apps/paweljong/tables.py:122 aleksis/apps/paweljong/tables.py:123
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:42
 msgid "Delete"
 msgstr ""
 
@@ -635,11 +646,16 @@ msgstr ""
 msgid "Print"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:73
+#: aleksis/apps/paweljong/tables.py:72
 msgid "View registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:152 aleksis/apps/paweljong/tables.py:153
+#: aleksis/apps/paweljong/tables.py:78 aleksis/apps/paweljong/tables.py:79
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:29
+msgid "Check in"
+msgstr ""
+
+#: aleksis/apps/paweljong/tables.py:157 aleksis/apps/paweljong/tables.py:158
 msgid "Add persons"
 msgstr ""
 
@@ -699,18 +715,30 @@ msgstr ""
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:82
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:86
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:91
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
 msgid "Registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
+msgid "Search"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
+msgid "Clear"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:5
 msgid "Edit event"
@@ -743,16 +771,6 @@ msgstr ""
 msgid "Filter events"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
-msgid "Search"
-msgstr ""
-
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
-msgid "Clear"
-msgstr ""
-
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:23
 msgid "Selected events"
 msgstr ""
@@ -882,43 +900,60 @@ msgstr ""
 msgid "Edit registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:31
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:35
 msgid "Retract"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:45
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:49
 msgid "Notification"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:52
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:56
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:16
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:200
 msgid "Invoice"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:59
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:63
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:138
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:142
 msgid "Retraction information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:145
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:149
 msgid "True"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:160
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:164
 msgid "Registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:193
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:197
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:45
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:96
 msgid "Accepted"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:223
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:231
+msgid "No checked in yet."
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:240
+msgid "Invoice details"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:246
+msgid "Billing information"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
+#: aleksis/apps/paweljong/views.py:419
+msgid "Payment"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:316
 msgid "Guardians / Parents "
 msgstr ""
 
@@ -1153,140 +1188,140 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:65 aleksis/apps/paweljong/views.py:77
+#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:149
+#: aleksis/apps/paweljong/views.py:150
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:161
+#: aleksis/apps/paweljong/views.py:162
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:182
+#: aleksis/apps/paweljong/views.py:183
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:219
+#: aleksis/apps/paweljong/views.py:228
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:231
+#: aleksis/apps/paweljong/views.py:240
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:243
+#: aleksis/apps/paweljong/views.py:252
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:253
+#: aleksis/apps/paweljong/views.py:262
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:372
+#: aleksis/apps/paweljong/views.py:381
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:374
+#: aleksis/apps/paweljong/views.py:383
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:392
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:387
+#: aleksis/apps/paweljong/views.py:396
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:389
+#: aleksis/apps/paweljong/views.py:398
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:405
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:407
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:404
+#: aleksis/apps/paweljong/views.py:413
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:406
+#: aleksis/apps/paweljong/views.py:415
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:410
-msgid "Payment"
-msgstr ""
-
-#: aleksis/apps/paweljong/views.py:412
+#: aleksis/apps/paweljong/views.py:421
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:417
+#: aleksis/apps/paweljong/views.py:426
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:428
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:517 aleksis/apps/paweljong/views.py:627
+#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:653
+#: aleksis/apps/paweljong/views.py:662
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:660
+#: aleksis/apps/paweljong/views.py:669
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:661
+#: aleksis/apps/paweljong/views.py:670
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:718 aleksis/apps/paweljong/views.py:869
+#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:730 aleksis/apps/paweljong/views.py:881
+#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:755
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:787
+#: aleksis/apps/paweljong/views.py:796
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:799
+#: aleksis/apps/paweljong/views.py:808
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:809
+#: aleksis/apps/paweljong/views.py:818
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:892
+#: aleksis/apps/paweljong/views.py:901
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:947
+#: aleksis/apps/paweljong/views.py:959
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:949
+#: aleksis/apps/paweljong/views.py:961
 msgid "Person does not exist!"
 msgstr ""
+
+#: aleksis/apps/paweljong/views.py:987
+msgid "Successfully checked in."
+msgstr ""
diff --git a/aleksis/apps/paweljong/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/de_DE/LC_MESSAGES/django.po
index 577b8c1cb8bd23030da2162c5fdb9b7839859191..b1d79ac0fcfb1096e0ac5308095e36f879f1c8c2 100644
--- a/aleksis/apps/paweljong/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/de_DE/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 19:43+0000\n"
+"POT-Creation-Date: 2022-06-24 14:54+0000\n"
 "PO-Revision-Date: 2022-03-22 15:51+0000\n"
 "Last-Translator: Tom Teichler <tom.teichler@teckids.org>\n"
 "Language-Team: German <https://translate.edugit.org/projects/hacknfun/aleksis-app-paweljong/de/>\n"
@@ -30,14 +30,14 @@ msgstr ""
 msgid "Event members are out of sync with registrations!"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:30
-msgid "Search by event"
-msgstr "Suche Veranstaltung"
-
-#: aleksis/apps/paweljong/filters.py:38
+#: aleksis/apps/paweljong/filters.py:17 aleksis/apps/paweljong/filters.py:45
 msgid "Search by name"
 msgstr "Suche Name"
 
+#: aleksis/apps/paweljong/filters.py:37
+msgid "Search by event"
+msgstr "Suche Veranstaltung"
+
 #: aleksis/apps/paweljong/forms.py:18
 msgid "Only first name"
 msgstr "Nur Vorname"
@@ -83,7 +83,7 @@ msgid "Event details"
 msgstr "Veranstaltungsdetails"
 
 #: aleksis/apps/paweljong/forms.py:52 aleksis/apps/paweljong/menus.py:37
-#: aleksis/apps/paweljong/models.py:128
+#: aleksis/apps/paweljong/models.py:129
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:5
 #: aleksis/apps/paweljong/templates/paweljong/term/list.html:6
@@ -92,7 +92,7 @@ msgid "Terms"
 msgstr "Bedingungen"
 
 #: aleksis/apps/paweljong/forms.py:53 aleksis/apps/paweljong/menus.py:59
-#: aleksis/apps/paweljong/models.py:131
+#: aleksis/apps/paweljong/models.py:132
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:7
 msgid "Info mailings"
@@ -110,7 +110,7 @@ msgstr "Person, für die der Gutschein gültig ist"
 msgid "Voucher discount"
 msgstr "Rabatt"
 
-#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:112
+#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:113
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:8
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:36
 msgid "Group"
@@ -181,7 +181,7 @@ msgid "Address data"
 msgstr "Addressdaten"
 
 #: aleksis/apps/paweljong/forms.py:198
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:67
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:71
 msgid "Contact details"
 msgstr "Kontaktdaten"
 
@@ -288,7 +288,7 @@ msgstr "Ort der Schule"
 msgid "Enter the place (city) where your school is located."
 msgstr "Bitte trage die Stadt ein, wo sich deine Schule befindet."
 
-#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:260
+#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:261
 msgid "School class"
 msgstr "Schulklasse"
 
@@ -296,7 +296,7 @@ msgstr "Schulklasse"
 msgid "Please enter the class you are in (e.g. 8a)."
 msgstr "Bitte trage die Klasse ein, in die du gehst (z.B. 8a)."
 
-#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:265
+#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:266
 msgid "Medical information / intolerances"
 msgstr "Medizinische Informationen / Intoleranzen"
 
@@ -348,8 +348,8 @@ msgstr "Kontodaten"
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr "Der Benutzername darf nur Kleinbuchstaben und Zahlen beinhalten, und muss mit einem Buchstaben beginnen."
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:227
-#: aleksis/apps/paweljong/models.py:256 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
+#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
@@ -372,8 +372,8 @@ msgstr "Registrieren"
 msgid "Events"
 msgstr "Veranstaltungen"
 
-#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:213
-#: aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/models.py:215
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:7
 msgid "Vouchers"
@@ -391,11 +391,11 @@ msgstr "Teilnehmerlisten generieren"
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:737
+#: aleksis/apps/paweljong/views.py:746
 msgid "Upcoming events"
 msgstr "Anstehende Veranstaltungen"
 
-#: aleksis/apps/paweljong/models.py:27
+#: aleksis/apps/paweljong/models.py:28
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:25
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:63
@@ -403,104 +403,103 @@ msgstr "Anstehende Veranstaltungen"
 msgid "Name"
 msgstr "Name"
 
-#: aleksis/apps/paweljong/models.py:28
+#: aleksis/apps/paweljong/models.py:29
 msgid "Colour"
 msgstr "Farbe"
 
-#: aleksis/apps/paweljong/models.py:35
+#: aleksis/apps/paweljong/models.py:36
 msgid "Title"
 msgstr "Titel"
 
-#: aleksis/apps/paweljong/models.py:36
+#: aleksis/apps/paweljong/models.py:37
 msgid "Term"
 msgstr "Bedingung"
 
-#: aleksis/apps/paweljong/models.py:37
+#: aleksis/apps/paweljong/models.py:38
 msgid "Confirmation text"
 msgstr "Bestätigungstext"
 
-#: aleksis/apps/paweljong/models.py:44
+#: aleksis/apps/paweljong/models.py:45
 msgid "subject"
 msgstr "Betreff"
 
-#: aleksis/apps/paweljong/models.py:45
+#: aleksis/apps/paweljong/models.py:46
 msgid "Text"
 msgstr "Text"
 
-#: aleksis/apps/paweljong/models.py:46
+#: aleksis/apps/paweljong/models.py:47
 msgid "Request replies to"
 msgstr "Antworten an"
 
-#: aleksis/apps/paweljong/models.py:48
+#: aleksis/apps/paweljong/models.py:49
 msgid "Mailing is active"
 msgstr "Mailing ist aktiv"
 
-#: aleksis/apps/paweljong/models.py:50
+#: aleksis/apps/paweljong/models.py:51
 msgid "Sender"
 msgstr "Absender"
 
-#: aleksis/apps/paweljong/models.py:51
+#: aleksis/apps/paweljong/models.py:52
 msgid "Send to registered person"
 msgstr "An angemeldete Personen senden"
 
-#: aleksis/apps/paweljong/models.py:52
+#: aleksis/apps/paweljong/models.py:53
 msgid "Send to guardians"
 msgstr "An Erziehungsberechtigte senden"
 
-#: aleksis/apps/paweljong/models.py:110
+#: aleksis/apps/paweljong/models.py:111
 msgid "Display name"
 msgstr "Anzeigename"
 
-#: aleksis/apps/paweljong/models.py:114
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:69
+#: aleksis/apps/paweljong/models.py:115
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:9
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:37
 msgid "Description"
 msgstr "Beschreibung"
 
-#: aleksis/apps/paweljong/models.py:115
+#: aleksis/apps/paweljong/models.py:116
 msgid "Publish"
 msgstr "Veröffentlichen"
 
-#: aleksis/apps/paweljong/models.py:117
+#: aleksis/apps/paweljong/models.py:118
 msgid "Slug"
 msgstr "Slug"
 
-#: aleksis/apps/paweljong/models.py:120
+#: aleksis/apps/paweljong/models.py:121
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:40
 msgid "Date of event"
 msgstr "Datum der Veranstaltung"
 
-#: aleksis/apps/paweljong/models.py:121
+#: aleksis/apps/paweljong/models.py:122
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:13
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:41
 msgid "Registration deadline"
 msgstr "Anmeldungsschluss"
 
-#: aleksis/apps/paweljong/models.py:122
+#: aleksis/apps/paweljong/models.py:123
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:42
 msgid "Retraction deadline"
 msgstr "Kündigungsfrist"
 
-#: aleksis/apps/paweljong/models.py:125
+#: aleksis/apps/paweljong/models.py:126
 msgid "Cost in €"
 msgstr "Kosten in €"
 
-#: aleksis/apps/paweljong/models.py:126
+#: aleksis/apps/paweljong/models.py:127
 msgid "Maximum participants"
 msgstr "Maximale Teilnehmerzahl"
 
-#: aleksis/apps/paweljong/models.py:127
+#: aleksis/apps/paweljong/models.py:128
 msgid "Information about the event"
 msgstr "Informationen über die Veranstaltung"
 
-#: aleksis/apps/paweljong/models.py:204
+#: aleksis/apps/paweljong/models.py:205
 msgid "Sent to persons"
 msgstr "An Personen gesendet"
 
-#: aleksis/apps/paweljong/models.py:220 aleksis/apps/paweljong/models.py:254
+#: aleksis/apps/paweljong/models.py:221 aleksis/apps/paweljong/models.py:255
 #: aleksis/apps/paweljong/tables.py:12 aleksis/apps/paweljong/tables.py:43
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:4
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:8
@@ -510,71 +509,83 @@ msgstr "An Personen gesendet"
 msgid "Event"
 msgstr "Veranstaltung"
 
-#: aleksis/apps/paweljong/models.py:236
+#: aleksis/apps/paweljong/models.py:237
 msgid "Used by"
 msgstr "Benutzt von"
 
-#: aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/models.py:258
 msgid "Registration date"
 msgstr "Anmeldedatum"
 
-#: aleksis/apps/paweljong/models.py:259
+#: aleksis/apps/paweljong/models.py:260
 msgid "Name of school"
 msgstr "Name der Schule"
 
-#: aleksis/apps/paweljong/models.py:261
+#: aleksis/apps/paweljong/models.py:262
 msgid "Place of the school"
 msgstr "Ort der Schule"
 
-#: aleksis/apps/paweljong/models.py:263
+#: aleksis/apps/paweljong/models.py:264
 msgid "Comment / remarks"
 msgstr "Kommentar / Anmerkungen"
 
-#: aleksis/apps/paweljong/models.py:270
+#: aleksis/apps/paweljong/models.py:271
 msgid "Voucher"
 msgstr "Gutschein"
 
-#: aleksis/apps/paweljong/models.py:274
+#: aleksis/apps/paweljong/models.py:275
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:31
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:80
 msgid "Donation"
 msgstr "Spende"
 
-#: aleksis/apps/paweljong/models.py:277
+#: aleksis/apps/paweljong/models.py:278
 msgid "Accepted terms"
 msgstr "Akzeptierte Bedingungen"
 
-#: aleksis/apps/paweljong/models.py:282
+#: aleksis/apps/paweljong/models.py:283
 msgid "States"
 msgstr "Status"
 
-#: aleksis/apps/paweljong/models.py:285
+#: aleksis/apps/paweljong/models.py:286
 #, fuzzy
 #| msgid "Retraction deadline"
 msgid "Retracted"
 msgstr "Kündigungsfrist"
 
-#: aleksis/apps/paweljong/models.py:286
+#: aleksis/apps/paweljong/models.py:287
 msgid "Retracted at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:322
+#: aleksis/apps/paweljong/models.py:289
+msgid "Checked in"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:290
+msgid "Checked in at"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+msgid "Person is already checked in!"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:334
 msgid "Participation of {} in event {}"
 msgstr "Teilnahme von {} bei Veranstaltung {}"
 
-#: aleksis/apps/paweljong/models.py:351
+#: aleksis/apps/paweljong/models.py:363
 msgid "Social Sponsoring / Extra Donation"
 msgstr "Social-Sponsoring / Spende"
 
-#: aleksis/apps/paweljong/models.py:362
+#: aleksis/apps/paweljong/models.py:374
 msgid "Voucher / Granted discount"
 msgstr "Rabatt"
 
-#: aleksis/apps/paweljong/models.py:390 aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
 msgid "Event registration"
 msgstr "Veranstaltungsanmeldung"
 
-#: aleksis/apps/paweljong/models.py:391
+#: aleksis/apps/paweljong/models.py:403
 msgid "Event registrations"
 msgstr "Veranstaltungsanmeldungen"
 
@@ -601,11 +612,11 @@ msgid "Registration until"
 msgstr "Anmeldung möglich bis"
 
 #: aleksis/apps/paweljong/tables.py:20 aleksis/apps/paweljong/tables.py:21
-#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:79
-#: aleksis/apps/paweljong/tables.py:80 aleksis/apps/paweljong/tables.py:97
-#: aleksis/apps/paweljong/tables.py:98 aleksis/apps/paweljong/tables.py:111
-#: aleksis/apps/paweljong/tables.py:112 aleksis/apps/paweljong/tables.py:131
-#: aleksis/apps/paweljong/tables.py:132
+#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:84
+#: aleksis/apps/paweljong/tables.py:85 aleksis/apps/paweljong/tables.py:102
+#: aleksis/apps/paweljong/tables.py:103 aleksis/apps/paweljong/tables.py:116
+#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:136
+#: aleksis/apps/paweljong/tables.py:137
 #: aleksis/apps/paweljong/templates/paweljong/event/detail.html:24
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:25
 msgid "Edit"
@@ -618,7 +629,7 @@ msgid "Public page"
 msgstr "Veröffentlicht"
 
 #: aleksis/apps/paweljong/tables.py:34 aleksis/apps/paweljong/tables.py:35
-#: aleksis/apps/paweljong/tables.py:74
+#: aleksis/apps/paweljong/tables.py:73
 msgid "View"
 msgstr "Ansehen"
 
@@ -631,8 +642,8 @@ msgid "Code"
 msgstr "Code"
 
 #: aleksis/apps/paweljong/tables.py:50 aleksis/apps/paweljong/tables.py:51
-#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:118
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:38
+#: aleksis/apps/paweljong/tables.py:122 aleksis/apps/paweljong/tables.py:123
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:42
 msgid "Delete"
 msgstr "Löschen"
 
@@ -641,11 +652,16 @@ msgstr "Löschen"
 msgid "Print"
 msgstr "Drucken"
 
-#: aleksis/apps/paweljong/tables.py:73
+#: aleksis/apps/paweljong/tables.py:72
 msgid "View registration"
 msgstr "Anmeldung ansehen"
 
-#: aleksis/apps/paweljong/tables.py:152 aleksis/apps/paweljong/tables.py:153
+#: aleksis/apps/paweljong/tables.py:78 aleksis/apps/paweljong/tables.py:79
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:29
+msgid "Check in"
+msgstr ""
+
+#: aleksis/apps/paweljong/tables.py:157 aleksis/apps/paweljong/tables.py:158
 #, fuzzy
 #| msgid "Edit term"
 msgid "Add persons"
@@ -707,20 +723,32 @@ msgstr "von"
 msgid "Owners"
 msgstr "Besitzer"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:82
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
 #, fuzzy
 #| msgid "Additional"
 msgid "Additional fields"
 msgstr "Zusätzliches"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:86
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:91
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
 msgid "Registrations"
 msgstr "Anmeldungen"
 
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
+msgid "Search"
+msgstr "Suche"
+
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
+msgid "Clear"
+msgstr "Leeren"
+
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:5
 msgid "Edit event"
@@ -753,16 +781,6 @@ msgstr "Veranstaltungen verwalten"
 msgid "Filter events"
 msgstr "Veranstaltungen filtern"
 
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
-msgid "Search"
-msgstr "Suche"
-
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
-msgid "Clear"
-msgstr "Leeren"
-
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:23
 msgid "Selected events"
 msgstr "Ausgewähle Veranstaltungen"
@@ -935,47 +953,68 @@ msgstr "Erfolgreich angemeldet"
 msgid "Edit registration"
 msgstr "Anmeldung bearbeiten"
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:31
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:35
 msgid "Retract"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:45
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:49
 msgid "Notification"
 msgstr "Benachrichtigung"
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:52
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:56
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:16
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:200
 msgid "Invoice"
 msgstr "Rechnung"
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:59
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:63
 #, fuzzy
 #| msgid "Edit term"
 msgid "Edit person"
 msgstr "Bedingung bearbeiten"
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:138
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:142
 #, fuzzy
 #| msgid "Registration information"
 msgid "Retraction information"
 msgstr "Anmeldungsinformationen"
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:145
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:149
 msgid "True"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:160
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:164
 msgid "Registration information"
 msgstr "Anmeldungsinformationen"
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:193
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:197
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:45
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:96
 msgid "Accepted"
 msgstr "Akzeptiert"
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:223
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:231
+msgid "No checked in yet."
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:240
+#, fuzzy
+#| msgid "Event details"
+msgid "Invoice details"
+msgstr "Veranstaltungsdetails"
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:246
+#, fuzzy
+#| msgid "Registration information"
+msgid "Billing information"
+msgstr "Anmeldungsinformationen"
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
+#: aleksis/apps/paweljong/views.py:419
+msgid "Payment"
+msgstr "Bezahlung"
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:316
 msgid "Guardians / Parents "
 msgstr "Erziehungsberechtigte / Eltern "
 
@@ -1228,147 +1267,147 @@ msgstr "Zusätzliches"
 msgid "New registration: %(registration)s"
 msgstr "Neue Anmeldung: %(registration)s"
 
-#: aleksis/apps/paweljong/views.py:65 aleksis/apps/paweljong/views.py:77
+#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
 msgid "The event has been saved."
 msgstr "Die Veranstaltung wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:149
+#: aleksis/apps/paweljong/views.py:150
 msgid "The event registration has been created."
 msgstr "Die Veranstaltungsanmeldung wurde erstellt."
 
-#: aleksis/apps/paweljong/views.py:161
+#: aleksis/apps/paweljong/views.py:162
 msgid "The event registration has been saved."
 msgstr "Die Veranstaltungsanmeldung wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:182
+#: aleksis/apps/paweljong/views.py:183
 msgid "The registration has been saved."
 msgstr "Die Anmeldung wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:219
+#: aleksis/apps/paweljong/views.py:228
 msgid "The registration has been deleted."
 msgstr "Die Veranstaltung wurde gelöscht."
 
-#: aleksis/apps/paweljong/views.py:231
+#: aleksis/apps/paweljong/views.py:240
 msgid "The voucher has been created."
 msgstr "Der Gutschein wurde erstellt."
 
-#: aleksis/apps/paweljong/views.py:243
+#: aleksis/apps/paweljong/views.py:252
 msgid "The voucher has been saved."
 msgstr "Der Gutschein wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:253
+#: aleksis/apps/paweljong/views.py:262
 msgid "The voucher has been deleted."
 msgstr "Der Gutschein wurde gelöscht."
 
-#: aleksis/apps/paweljong/views.py:372
+#: aleksis/apps/paweljong/views.py:381
 msgid "Create e-mail address"
 msgstr "E-Mail-Adresse erstellen"
 
-#: aleksis/apps/paweljong/views.py:374
+#: aleksis/apps/paweljong/views.py:383
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr "Alle Teilnehmenden brauchen eine persönliche Adresse, die sie selbst abrufen und lesen. Wir bieten die Möglichkeit an, E-Mail-Adressen auf unseren sicheren Servern zu registrieren. Informationen, wie Du deine Mails abrufen kannst, findest Du unter <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:392
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr "Zuerst, gib bitte einige Informationen über dich an und prüfe, dass alle Informationen korrekt sind."
 
-#: aleksis/apps/paweljong/views.py:387
+#: aleksis/apps/paweljong/views.py:396
 msgid "Contact information"
 msgstr "Kontaktinformationen"
 
-#: aleksis/apps/paweljong/views.py:389
+#: aleksis/apps/paweljong/views.py:398
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr "Teile uns mit, wie wir dich erreichen können. Du wirst Informationen zu der Veranstaltung per E-Mail erhalten. Bitte nutze deine persönliche E-Mail-Adresse, die selbst liest, nicht die E-Mail-Adresse deiner Eltern. Wir senden wichtige Informationen immer zusätzlich an deine Eltern. Ihre E-Mail-Adresse wirst du im nächsten Schritt eingeben."
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:405
 msgid "Legal guardians / parents"
 msgstr "Erziehungsberechtigte / Eltern"
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:407
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr "Teile uns mit, wie wir deine Eltern oder Erziehungsberechtigten während der Veranstaltung erreichen können. Das sollte eine Person sein, die während der Anmeldung (also jetzt gerade), bei Dir ist. Wenn du einen weiteren Erziehungsberechtigten angeben möchtest, kannst du uns das später als Kommentar mitteilen."
 
-#: aleksis/apps/paweljong/views.py:404
+#: aleksis/apps/paweljong/views.py:413
 msgid "Additional registration information"
 msgstr "Zusätzliche Anmeldungsinformationen"
 
-#: aleksis/apps/paweljong/views.py:406
+#: aleksis/apps/paweljong/views.py:415
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr "Bitte beantworte die folgenden Fragen so genau wie möglich, sodass wir sicher gehen können, dass deine Teilnahme bei der Veranstaltung so gut wie möglich organisiert ist."
 
-#: aleksis/apps/paweljong/views.py:410
-msgid "Payment"
-msgstr "Bezahlung"
-
-#: aleksis/apps/paweljong/views.py:412
+#: aleksis/apps/paweljong/views.py:421
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr "Bitte wählen mit Deinen Eltern, wie Du bezahlen möchtest. In diesem Schritt wird nur die Zahlungsmethode ausgewählt. Die eigentliche Zahlung wird in einem separaten Schritt nach der Anmeldung durchgeführt."
 
-#: aleksis/apps/paweljong/views.py:417
+#: aleksis/apps/paweljong/views.py:426
 msgid "Consent"
 msgstr "Einverständnis"
 
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:428
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr "Zuletzt lies bitte alle Bedingungen sorgfältig zusammen mit deinen Eltern durch. Danach musst du bestätigen, dass du und deine Eltern alles gelesen habt und akzeptiert."
 
-#: aleksis/apps/paweljong/views.py:517 aleksis/apps/paweljong/views.py:627
+#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
 msgid "You entered an invalid voucher code!"
 msgstr "Du hast einen ungütigen Gutscheincode eingegeben!"
 
-#: aleksis/apps/paweljong/views.py:653
+#: aleksis/apps/paweljong/views.py:662
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr "Du hast dich erfolgreich zu der Veranstaltung angemeldet. Bitte gib uns ein paar Tage, um deine Anmeldung zu bearbeiten. Du wirst dann eine E-Mail von uns bekommen."
 
-#: aleksis/apps/paweljong/views.py:660
+#: aleksis/apps/paweljong/views.py:669
 msgid "You registered for an event"
 msgstr "Du hast dich zu einer Veranstaltung angemeldet"
 
-#: aleksis/apps/paweljong/views.py:661
+#: aleksis/apps/paweljong/views.py:670
 #, python-format
 msgid "You registered for the event %s"
 msgstr "Du hast dich zur Veranstaltung %s angemeldet"
 
-#: aleksis/apps/paweljong/views.py:718 aleksis/apps/paweljong/views.py:869
+#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
 msgid "The term has been created."
 msgstr "Die Bedingung wurde erfolgreich erstellt."
 
-#: aleksis/apps/paweljong/views.py:730 aleksis/apps/paweljong/views.py:881
+#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
 msgid "The term has been saved."
 msgstr "Die Bedingung wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:755
 msgid "Announcement feed of all upcoming events"
 msgstr "Ankündigungs-Feed aller bevorstehenden Veranstaltungen"
 
-#: aleksis/apps/paweljong/views.py:787
+#: aleksis/apps/paweljong/views.py:796
 msgid "The info mailing has been created."
 msgstr "Das Info-Mailing wurde erstellt."
 
-#: aleksis/apps/paweljong/views.py:799
+#: aleksis/apps/paweljong/views.py:808
 msgid "The info mailing has been saved."
 msgstr "Das Info-Mailing wurde gespeichert."
 
-#: aleksis/apps/paweljong/views.py:809
+#: aleksis/apps/paweljong/views.py:818
 msgid "The info mailing has been deleted."
 msgstr "Das Info-Mailing wurde gelöscht."
 
-#: aleksis/apps/paweljong/views.py:892
+#: aleksis/apps/paweljong/views.py:901
 #, fuzzy
 #| msgid "Registered successfully"
 msgid "Registration successfully retracted."
 msgstr "Erfolgreich angemeldet"
 
-#: aleksis/apps/paweljong/views.py:947
+#: aleksis/apps/paweljong/views.py:959
 #, fuzzy, python-brace-format
 #| msgid "Registered successfully"
 msgid "Person {person} added successfully!"
 msgstr "Erfolgreich angemeldet"
 
-#: aleksis/apps/paweljong/views.py:949
+#: aleksis/apps/paweljong/views.py:961
 msgid "Person does not exist!"
 msgstr ""
 
+#: aleksis/apps/paweljong/views.py:987
+msgid "Successfully checked in."
+msgstr ""
+
 #~ msgid "Filter registrations"
 #~ msgstr "Anmeldungen filtern"
 
diff --git a/aleksis/apps/paweljong/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/fr/LC_MESSAGES/django.po
index 86587affc5f4c14ca8f43ae7cd42f79917cd6ec9..c1b24f14efa2da08da543ff6e3955b687c39b62c 100644
--- a/aleksis/apps/paweljong/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/fr/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 19:43+0000\n"
+"POT-Creation-Date: 2022-06-24 14:54+0000\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"
@@ -30,12 +30,12 @@ msgstr ""
 msgid "Event members are out of sync with registrations!"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:30
-msgid "Search by event"
+#: aleksis/apps/paweljong/filters.py:17 aleksis/apps/paweljong/filters.py:45
+msgid "Search by name"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:38
-msgid "Search by name"
+#: aleksis/apps/paweljong/filters.py:37
+msgid "Search by event"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:18
@@ -83,7 +83,7 @@ msgid "Event details"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:52 aleksis/apps/paweljong/menus.py:37
-#: aleksis/apps/paweljong/models.py:128
+#: aleksis/apps/paweljong/models.py:129
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:5
 #: aleksis/apps/paweljong/templates/paweljong/term/list.html:6
@@ -92,7 +92,7 @@ msgid "Terms"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:53 aleksis/apps/paweljong/menus.py:59
-#: aleksis/apps/paweljong/models.py:131
+#: aleksis/apps/paweljong/models.py:132
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:7
 msgid "Info mailings"
@@ -110,7 +110,7 @@ msgstr ""
 msgid "Voucher discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:112
+#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:113
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:8
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:36
 msgid "Group"
@@ -181,7 +181,7 @@ msgid "Address data"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:198
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:67
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:71
 msgid "Contact details"
 msgstr ""
 
@@ -288,7 +288,7 @@ msgstr ""
 msgid "Enter the place (city) where your school is located."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:260
+#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:261
 msgid "School class"
 msgstr ""
 
@@ -296,7 +296,7 @@ msgstr ""
 msgid "Please enter the class you are in (e.g. 8a)."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:265
+#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:266
 msgid "Medical information / intolerances"
 msgstr ""
 
@@ -348,8 +348,8 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:227
-#: aleksis/apps/paweljong/models.py:256 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
+#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
@@ -370,8 +370,8 @@ msgstr ""
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:213
-#: aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/models.py:215
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:7
 msgid "Vouchers"
@@ -389,11 +389,11 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:737
+#: aleksis/apps/paweljong/views.py:746
 msgid "Upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:27
+#: aleksis/apps/paweljong/models.py:28
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:25
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:63
@@ -401,104 +401,103 @@ msgstr ""
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:28
+#: aleksis/apps/paweljong/models.py:29
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:35
+#: aleksis/apps/paweljong/models.py:36
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:36
+#: aleksis/apps/paweljong/models.py:37
 msgid "Term"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:37
+#: aleksis/apps/paweljong/models.py:38
 msgid "Confirmation text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:44
+#: aleksis/apps/paweljong/models.py:45
 msgid "subject"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:45
+#: aleksis/apps/paweljong/models.py:46
 msgid "Text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:46
+#: aleksis/apps/paweljong/models.py:47
 msgid "Request replies to"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:48
+#: aleksis/apps/paweljong/models.py:49
 msgid "Mailing is active"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:50
+#: aleksis/apps/paweljong/models.py:51
 msgid "Sender"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:51
+#: aleksis/apps/paweljong/models.py:52
 msgid "Send to registered person"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:52
+#: aleksis/apps/paweljong/models.py:53
 msgid "Send to guardians"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:110
+#: aleksis/apps/paweljong/models.py:111
 msgid "Display name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:114
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:69
+#: aleksis/apps/paweljong/models.py:115
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:9
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:37
 msgid "Description"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:115
+#: aleksis/apps/paweljong/models.py:116
 msgid "Publish"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:117
+#: aleksis/apps/paweljong/models.py:118
 msgid "Slug"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:120
+#: aleksis/apps/paweljong/models.py:121
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:40
 msgid "Date of event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:121
+#: aleksis/apps/paweljong/models.py:122
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:13
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:41
 msgid "Registration deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:122
+#: aleksis/apps/paweljong/models.py:123
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:42
 msgid "Retraction deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:125
+#: aleksis/apps/paweljong/models.py:126
 msgid "Cost in €"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:126
+#: aleksis/apps/paweljong/models.py:127
 msgid "Maximum participants"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:127
+#: aleksis/apps/paweljong/models.py:128
 msgid "Information about the event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:204
+#: aleksis/apps/paweljong/models.py:205
 msgid "Sent to persons"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:220 aleksis/apps/paweljong/models.py:254
+#: aleksis/apps/paweljong/models.py:221 aleksis/apps/paweljong/models.py:255
 #: aleksis/apps/paweljong/tables.py:12 aleksis/apps/paweljong/tables.py:43
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:4
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:8
@@ -508,69 +507,81 @@ msgstr ""
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:236
+#: aleksis/apps/paweljong/models.py:237
 msgid "Used by"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/models.py:258
 msgid "Registration date"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:259
+#: aleksis/apps/paweljong/models.py:260
 msgid "Name of school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:261
+#: aleksis/apps/paweljong/models.py:262
 msgid "Place of the school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:263
+#: aleksis/apps/paweljong/models.py:264
 msgid "Comment / remarks"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:270
+#: aleksis/apps/paweljong/models.py:271
 msgid "Voucher"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:274
+#: aleksis/apps/paweljong/models.py:275
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:31
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:80
 msgid "Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:277
+#: aleksis/apps/paweljong/models.py:278
 msgid "Accepted terms"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:282
+#: aleksis/apps/paweljong/models.py:283
 msgid "States"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:285
+#: aleksis/apps/paweljong/models.py:286
 msgid "Retracted"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:286
+#: aleksis/apps/paweljong/models.py:287
 msgid "Retracted at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:322
+#: aleksis/apps/paweljong/models.py:289
+msgid "Checked in"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:290
+msgid "Checked in at"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+msgid "Person is already checked in!"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:334
 msgid "Participation of {} in event {}"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:351
+#: aleksis/apps/paweljong/models.py:363
 msgid "Social Sponsoring / Extra Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:362
+#: aleksis/apps/paweljong/models.py:374
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:390 aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
 msgid "Event registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:391
+#: aleksis/apps/paweljong/models.py:403
 msgid "Event registrations"
 msgstr ""
 
@@ -597,11 +608,11 @@ msgid "Registration until"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:20 aleksis/apps/paweljong/tables.py:21
-#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:79
-#: aleksis/apps/paweljong/tables.py:80 aleksis/apps/paweljong/tables.py:97
-#: aleksis/apps/paweljong/tables.py:98 aleksis/apps/paweljong/tables.py:111
-#: aleksis/apps/paweljong/tables.py:112 aleksis/apps/paweljong/tables.py:131
-#: aleksis/apps/paweljong/tables.py:132
+#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:84
+#: aleksis/apps/paweljong/tables.py:85 aleksis/apps/paweljong/tables.py:102
+#: aleksis/apps/paweljong/tables.py:103 aleksis/apps/paweljong/tables.py:116
+#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:136
+#: aleksis/apps/paweljong/tables.py:137
 #: aleksis/apps/paweljong/templates/paweljong/event/detail.html:24
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:25
 msgid "Edit"
@@ -612,7 +623,7 @@ msgid "Public page"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:34 aleksis/apps/paweljong/tables.py:35
-#: aleksis/apps/paweljong/tables.py:74
+#: aleksis/apps/paweljong/tables.py:73
 msgid "View"
 msgstr ""
 
@@ -625,8 +636,8 @@ msgid "Code"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:50 aleksis/apps/paweljong/tables.py:51
-#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:118
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:38
+#: aleksis/apps/paweljong/tables.py:122 aleksis/apps/paweljong/tables.py:123
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:42
 msgid "Delete"
 msgstr ""
 
@@ -635,11 +646,16 @@ msgstr ""
 msgid "Print"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:73
+#: aleksis/apps/paweljong/tables.py:72
 msgid "View registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:152 aleksis/apps/paweljong/tables.py:153
+#: aleksis/apps/paweljong/tables.py:78 aleksis/apps/paweljong/tables.py:79
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:29
+msgid "Check in"
+msgstr ""
+
+#: aleksis/apps/paweljong/tables.py:157 aleksis/apps/paweljong/tables.py:158
 msgid "Add persons"
 msgstr ""
 
@@ -699,18 +715,30 @@ msgstr ""
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:82
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:86
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:91
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
 msgid "Registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
+msgid "Search"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
+msgid "Clear"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:5
 msgid "Edit event"
@@ -743,16 +771,6 @@ msgstr ""
 msgid "Filter events"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
-msgid "Search"
-msgstr ""
-
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
-msgid "Clear"
-msgstr ""
-
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:23
 msgid "Selected events"
 msgstr ""
@@ -882,43 +900,60 @@ msgstr ""
 msgid "Edit registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:31
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:35
 msgid "Retract"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:45
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:49
 msgid "Notification"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:52
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:56
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:16
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:200
 msgid "Invoice"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:59
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:63
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:138
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:142
 msgid "Retraction information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:145
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:149
 msgid "True"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:160
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:164
 msgid "Registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:193
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:197
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:45
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:96
 msgid "Accepted"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:223
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:231
+msgid "No checked in yet."
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:240
+msgid "Invoice details"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:246
+msgid "Billing information"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
+#: aleksis/apps/paweljong/views.py:419
+msgid "Payment"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:316
 msgid "Guardians / Parents "
 msgstr ""
 
@@ -1153,140 +1188,140 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:65 aleksis/apps/paweljong/views.py:77
+#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:149
+#: aleksis/apps/paweljong/views.py:150
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:161
+#: aleksis/apps/paweljong/views.py:162
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:182
+#: aleksis/apps/paweljong/views.py:183
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:219
+#: aleksis/apps/paweljong/views.py:228
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:231
+#: aleksis/apps/paweljong/views.py:240
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:243
+#: aleksis/apps/paweljong/views.py:252
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:253
+#: aleksis/apps/paweljong/views.py:262
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:372
+#: aleksis/apps/paweljong/views.py:381
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:374
+#: aleksis/apps/paweljong/views.py:383
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:392
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:387
+#: aleksis/apps/paweljong/views.py:396
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:389
+#: aleksis/apps/paweljong/views.py:398
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:405
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:407
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:404
+#: aleksis/apps/paweljong/views.py:413
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:406
+#: aleksis/apps/paweljong/views.py:415
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:410
-msgid "Payment"
-msgstr ""
-
-#: aleksis/apps/paweljong/views.py:412
+#: aleksis/apps/paweljong/views.py:421
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:417
+#: aleksis/apps/paweljong/views.py:426
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:428
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:517 aleksis/apps/paweljong/views.py:627
+#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:653
+#: aleksis/apps/paweljong/views.py:662
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:660
+#: aleksis/apps/paweljong/views.py:669
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:661
+#: aleksis/apps/paweljong/views.py:670
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:718 aleksis/apps/paweljong/views.py:869
+#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:730 aleksis/apps/paweljong/views.py:881
+#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:755
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:787
+#: aleksis/apps/paweljong/views.py:796
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:799
+#: aleksis/apps/paweljong/views.py:808
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:809
+#: aleksis/apps/paweljong/views.py:818
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:892
+#: aleksis/apps/paweljong/views.py:901
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:947
+#: aleksis/apps/paweljong/views.py:959
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:949
+#: aleksis/apps/paweljong/views.py:961
 msgid "Person does not exist!"
 msgstr ""
+
+#: aleksis/apps/paweljong/views.py:987
+msgid "Successfully checked in."
+msgstr ""
diff --git a/aleksis/apps/paweljong/locale/la/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/la/LC_MESSAGES/django.po
index d3a4ab3130c8ff4f64438c6c923fe6676fd04d7b..2261c449f53078db28080b0e0e49ea7caba8a436 100644
--- a/aleksis/apps/paweljong/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/la/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 19:43+0000\n"
+"POT-Creation-Date: 2022-06-24 14:54+0000\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"
@@ -29,12 +29,12 @@ msgstr ""
 msgid "Event members are out of sync with registrations!"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:30
-msgid "Search by event"
+#: aleksis/apps/paweljong/filters.py:17 aleksis/apps/paweljong/filters.py:45
+msgid "Search by name"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:38
-msgid "Search by name"
+#: aleksis/apps/paweljong/filters.py:37
+msgid "Search by event"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:18
@@ -82,7 +82,7 @@ msgid "Event details"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:52 aleksis/apps/paweljong/menus.py:37
-#: aleksis/apps/paweljong/models.py:128
+#: aleksis/apps/paweljong/models.py:129
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:5
 #: aleksis/apps/paweljong/templates/paweljong/term/list.html:6
@@ -91,7 +91,7 @@ msgid "Terms"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:53 aleksis/apps/paweljong/menus.py:59
-#: aleksis/apps/paweljong/models.py:131
+#: aleksis/apps/paweljong/models.py:132
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:7
 msgid "Info mailings"
@@ -109,7 +109,7 @@ msgstr ""
 msgid "Voucher discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:112
+#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:113
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:8
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:36
 msgid "Group"
@@ -180,7 +180,7 @@ msgid "Address data"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:198
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:67
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:71
 msgid "Contact details"
 msgstr ""
 
@@ -287,7 +287,7 @@ msgstr ""
 msgid "Enter the place (city) where your school is located."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:260
+#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:261
 msgid "School class"
 msgstr ""
 
@@ -295,7 +295,7 @@ msgstr ""
 msgid "Please enter the class you are in (e.g. 8a)."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:265
+#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:266
 msgid "Medical information / intolerances"
 msgstr ""
 
@@ -347,8 +347,8 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:227
-#: aleksis/apps/paweljong/models.py:256 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
+#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
@@ -369,8 +369,8 @@ msgstr ""
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:213
-#: aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/models.py:215
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:7
 msgid "Vouchers"
@@ -388,11 +388,11 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:737
+#: aleksis/apps/paweljong/views.py:746
 msgid "Upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:27
+#: aleksis/apps/paweljong/models.py:28
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:25
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:63
@@ -400,104 +400,103 @@ msgstr ""
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:28
+#: aleksis/apps/paweljong/models.py:29
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:35
+#: aleksis/apps/paweljong/models.py:36
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:36
+#: aleksis/apps/paweljong/models.py:37
 msgid "Term"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:37
+#: aleksis/apps/paweljong/models.py:38
 msgid "Confirmation text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:44
+#: aleksis/apps/paweljong/models.py:45
 msgid "subject"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:45
+#: aleksis/apps/paweljong/models.py:46
 msgid "Text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:46
+#: aleksis/apps/paweljong/models.py:47
 msgid "Request replies to"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:48
+#: aleksis/apps/paweljong/models.py:49
 msgid "Mailing is active"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:50
+#: aleksis/apps/paweljong/models.py:51
 msgid "Sender"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:51
+#: aleksis/apps/paweljong/models.py:52
 msgid "Send to registered person"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:52
+#: aleksis/apps/paweljong/models.py:53
 msgid "Send to guardians"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:110
+#: aleksis/apps/paweljong/models.py:111
 msgid "Display name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:114
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:69
+#: aleksis/apps/paweljong/models.py:115
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:9
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:37
 msgid "Description"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:115
+#: aleksis/apps/paweljong/models.py:116
 msgid "Publish"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:117
+#: aleksis/apps/paweljong/models.py:118
 msgid "Slug"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:120
+#: aleksis/apps/paweljong/models.py:121
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:40
 msgid "Date of event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:121
+#: aleksis/apps/paweljong/models.py:122
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:13
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:41
 msgid "Registration deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:122
+#: aleksis/apps/paweljong/models.py:123
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:42
 msgid "Retraction deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:125
+#: aleksis/apps/paweljong/models.py:126
 msgid "Cost in €"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:126
+#: aleksis/apps/paweljong/models.py:127
 msgid "Maximum participants"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:127
+#: aleksis/apps/paweljong/models.py:128
 msgid "Information about the event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:204
+#: aleksis/apps/paweljong/models.py:205
 msgid "Sent to persons"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:220 aleksis/apps/paweljong/models.py:254
+#: aleksis/apps/paweljong/models.py:221 aleksis/apps/paweljong/models.py:255
 #: aleksis/apps/paweljong/tables.py:12 aleksis/apps/paweljong/tables.py:43
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:4
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:8
@@ -507,69 +506,81 @@ msgstr ""
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:236
+#: aleksis/apps/paweljong/models.py:237
 msgid "Used by"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/models.py:258
 msgid "Registration date"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:259
+#: aleksis/apps/paweljong/models.py:260
 msgid "Name of school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:261
+#: aleksis/apps/paweljong/models.py:262
 msgid "Place of the school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:263
+#: aleksis/apps/paweljong/models.py:264
 msgid "Comment / remarks"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:270
+#: aleksis/apps/paweljong/models.py:271
 msgid "Voucher"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:274
+#: aleksis/apps/paweljong/models.py:275
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:31
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:80
 msgid "Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:277
+#: aleksis/apps/paweljong/models.py:278
 msgid "Accepted terms"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:282
+#: aleksis/apps/paweljong/models.py:283
 msgid "States"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:285
+#: aleksis/apps/paweljong/models.py:286
 msgid "Retracted"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:286
+#: aleksis/apps/paweljong/models.py:287
 msgid "Retracted at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:322
+#: aleksis/apps/paweljong/models.py:289
+msgid "Checked in"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:290
+msgid "Checked in at"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+msgid "Person is already checked in!"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:334
 msgid "Participation of {} in event {}"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:351
+#: aleksis/apps/paweljong/models.py:363
 msgid "Social Sponsoring / Extra Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:362
+#: aleksis/apps/paweljong/models.py:374
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:390 aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
 msgid "Event registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:391
+#: aleksis/apps/paweljong/models.py:403
 msgid "Event registrations"
 msgstr ""
 
@@ -596,11 +607,11 @@ msgid "Registration until"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:20 aleksis/apps/paweljong/tables.py:21
-#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:79
-#: aleksis/apps/paweljong/tables.py:80 aleksis/apps/paweljong/tables.py:97
-#: aleksis/apps/paweljong/tables.py:98 aleksis/apps/paweljong/tables.py:111
-#: aleksis/apps/paweljong/tables.py:112 aleksis/apps/paweljong/tables.py:131
-#: aleksis/apps/paweljong/tables.py:132
+#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:84
+#: aleksis/apps/paweljong/tables.py:85 aleksis/apps/paweljong/tables.py:102
+#: aleksis/apps/paweljong/tables.py:103 aleksis/apps/paweljong/tables.py:116
+#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:136
+#: aleksis/apps/paweljong/tables.py:137
 #: aleksis/apps/paweljong/templates/paweljong/event/detail.html:24
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:25
 msgid "Edit"
@@ -611,7 +622,7 @@ msgid "Public page"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:34 aleksis/apps/paweljong/tables.py:35
-#: aleksis/apps/paweljong/tables.py:74
+#: aleksis/apps/paweljong/tables.py:73
 msgid "View"
 msgstr ""
 
@@ -624,8 +635,8 @@ msgid "Code"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:50 aleksis/apps/paweljong/tables.py:51
-#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:118
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:38
+#: aleksis/apps/paweljong/tables.py:122 aleksis/apps/paweljong/tables.py:123
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:42
 msgid "Delete"
 msgstr ""
 
@@ -634,11 +645,16 @@ msgstr ""
 msgid "Print"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:73
+#: aleksis/apps/paweljong/tables.py:72
 msgid "View registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:152 aleksis/apps/paweljong/tables.py:153
+#: aleksis/apps/paweljong/tables.py:78 aleksis/apps/paweljong/tables.py:79
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:29
+msgid "Check in"
+msgstr ""
+
+#: aleksis/apps/paweljong/tables.py:157 aleksis/apps/paweljong/tables.py:158
 msgid "Add persons"
 msgstr ""
 
@@ -698,18 +714,30 @@ msgstr ""
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:82
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:86
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:91
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
 msgid "Registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
+msgid "Search"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
+msgid "Clear"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:5
 msgid "Edit event"
@@ -742,16 +770,6 @@ msgstr ""
 msgid "Filter events"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
-msgid "Search"
-msgstr ""
-
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
-msgid "Clear"
-msgstr ""
-
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:23
 msgid "Selected events"
 msgstr ""
@@ -881,43 +899,60 @@ msgstr ""
 msgid "Edit registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:31
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:35
 msgid "Retract"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:45
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:49
 msgid "Notification"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:52
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:56
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:16
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:200
 msgid "Invoice"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:59
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:63
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:138
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:142
 msgid "Retraction information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:145
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:149
 msgid "True"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:160
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:164
 msgid "Registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:193
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:197
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:45
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:96
 msgid "Accepted"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:223
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:231
+msgid "No checked in yet."
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:240
+msgid "Invoice details"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:246
+msgid "Billing information"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
+#: aleksis/apps/paweljong/views.py:419
+msgid "Payment"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:316
 msgid "Guardians / Parents "
 msgstr ""
 
@@ -1152,140 +1187,140 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:65 aleksis/apps/paweljong/views.py:77
+#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:149
+#: aleksis/apps/paweljong/views.py:150
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:161
+#: aleksis/apps/paweljong/views.py:162
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:182
+#: aleksis/apps/paweljong/views.py:183
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:219
+#: aleksis/apps/paweljong/views.py:228
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:231
+#: aleksis/apps/paweljong/views.py:240
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:243
+#: aleksis/apps/paweljong/views.py:252
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:253
+#: aleksis/apps/paweljong/views.py:262
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:372
+#: aleksis/apps/paweljong/views.py:381
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:374
+#: aleksis/apps/paweljong/views.py:383
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:392
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:387
+#: aleksis/apps/paweljong/views.py:396
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:389
+#: aleksis/apps/paweljong/views.py:398
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:405
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:407
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:404
+#: aleksis/apps/paweljong/views.py:413
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:406
+#: aleksis/apps/paweljong/views.py:415
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:410
-msgid "Payment"
-msgstr ""
-
-#: aleksis/apps/paweljong/views.py:412
+#: aleksis/apps/paweljong/views.py:421
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:417
+#: aleksis/apps/paweljong/views.py:426
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:428
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:517 aleksis/apps/paweljong/views.py:627
+#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:653
+#: aleksis/apps/paweljong/views.py:662
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:660
+#: aleksis/apps/paweljong/views.py:669
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:661
+#: aleksis/apps/paweljong/views.py:670
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:718 aleksis/apps/paweljong/views.py:869
+#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:730 aleksis/apps/paweljong/views.py:881
+#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:755
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:787
+#: aleksis/apps/paweljong/views.py:796
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:799
+#: aleksis/apps/paweljong/views.py:808
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:809
+#: aleksis/apps/paweljong/views.py:818
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:892
+#: aleksis/apps/paweljong/views.py:901
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:947
+#: aleksis/apps/paweljong/views.py:959
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:949
+#: aleksis/apps/paweljong/views.py:961
 msgid "Person does not exist!"
 msgstr ""
+
+#: aleksis/apps/paweljong/views.py:987
+msgid "Successfully checked in."
+msgstr ""
diff --git a/aleksis/apps/paweljong/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/nb_NO/LC_MESSAGES/django.po
index d3a4ab3130c8ff4f64438c6c923fe6676fd04d7b..2261c449f53078db28080b0e0e49ea7caba8a436 100644
--- a/aleksis/apps/paweljong/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 19:43+0000\n"
+"POT-Creation-Date: 2022-06-24 14:54+0000\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"
@@ -29,12 +29,12 @@ msgstr ""
 msgid "Event members are out of sync with registrations!"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:30
-msgid "Search by event"
+#: aleksis/apps/paweljong/filters.py:17 aleksis/apps/paweljong/filters.py:45
+msgid "Search by name"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:38
-msgid "Search by name"
+#: aleksis/apps/paweljong/filters.py:37
+msgid "Search by event"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:18
@@ -82,7 +82,7 @@ msgid "Event details"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:52 aleksis/apps/paweljong/menus.py:37
-#: aleksis/apps/paweljong/models.py:128
+#: aleksis/apps/paweljong/models.py:129
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:5
 #: aleksis/apps/paweljong/templates/paweljong/term/list.html:6
@@ -91,7 +91,7 @@ msgid "Terms"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:53 aleksis/apps/paweljong/menus.py:59
-#: aleksis/apps/paweljong/models.py:131
+#: aleksis/apps/paweljong/models.py:132
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:7
 msgid "Info mailings"
@@ -109,7 +109,7 @@ msgstr ""
 msgid "Voucher discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:112
+#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:113
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:8
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:36
 msgid "Group"
@@ -180,7 +180,7 @@ msgid "Address data"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:198
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:67
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:71
 msgid "Contact details"
 msgstr ""
 
@@ -287,7 +287,7 @@ msgstr ""
 msgid "Enter the place (city) where your school is located."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:260
+#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:261
 msgid "School class"
 msgstr ""
 
@@ -295,7 +295,7 @@ msgstr ""
 msgid "Please enter the class you are in (e.g. 8a)."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:265
+#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:266
 msgid "Medical information / intolerances"
 msgstr ""
 
@@ -347,8 +347,8 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:227
-#: aleksis/apps/paweljong/models.py:256 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
+#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
@@ -369,8 +369,8 @@ msgstr ""
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:213
-#: aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/models.py:215
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:7
 msgid "Vouchers"
@@ -388,11 +388,11 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:737
+#: aleksis/apps/paweljong/views.py:746
 msgid "Upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:27
+#: aleksis/apps/paweljong/models.py:28
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:25
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:63
@@ -400,104 +400,103 @@ msgstr ""
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:28
+#: aleksis/apps/paweljong/models.py:29
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:35
+#: aleksis/apps/paweljong/models.py:36
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:36
+#: aleksis/apps/paweljong/models.py:37
 msgid "Term"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:37
+#: aleksis/apps/paweljong/models.py:38
 msgid "Confirmation text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:44
+#: aleksis/apps/paweljong/models.py:45
 msgid "subject"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:45
+#: aleksis/apps/paweljong/models.py:46
 msgid "Text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:46
+#: aleksis/apps/paweljong/models.py:47
 msgid "Request replies to"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:48
+#: aleksis/apps/paweljong/models.py:49
 msgid "Mailing is active"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:50
+#: aleksis/apps/paweljong/models.py:51
 msgid "Sender"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:51
+#: aleksis/apps/paweljong/models.py:52
 msgid "Send to registered person"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:52
+#: aleksis/apps/paweljong/models.py:53
 msgid "Send to guardians"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:110
+#: aleksis/apps/paweljong/models.py:111
 msgid "Display name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:114
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:69
+#: aleksis/apps/paweljong/models.py:115
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:9
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:37
 msgid "Description"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:115
+#: aleksis/apps/paweljong/models.py:116
 msgid "Publish"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:117
+#: aleksis/apps/paweljong/models.py:118
 msgid "Slug"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:120
+#: aleksis/apps/paweljong/models.py:121
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:40
 msgid "Date of event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:121
+#: aleksis/apps/paweljong/models.py:122
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:13
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:41
 msgid "Registration deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:122
+#: aleksis/apps/paweljong/models.py:123
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:42
 msgid "Retraction deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:125
+#: aleksis/apps/paweljong/models.py:126
 msgid "Cost in €"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:126
+#: aleksis/apps/paweljong/models.py:127
 msgid "Maximum participants"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:127
+#: aleksis/apps/paweljong/models.py:128
 msgid "Information about the event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:204
+#: aleksis/apps/paweljong/models.py:205
 msgid "Sent to persons"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:220 aleksis/apps/paweljong/models.py:254
+#: aleksis/apps/paweljong/models.py:221 aleksis/apps/paweljong/models.py:255
 #: aleksis/apps/paweljong/tables.py:12 aleksis/apps/paweljong/tables.py:43
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:4
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:8
@@ -507,69 +506,81 @@ msgstr ""
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:236
+#: aleksis/apps/paweljong/models.py:237
 msgid "Used by"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/models.py:258
 msgid "Registration date"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:259
+#: aleksis/apps/paweljong/models.py:260
 msgid "Name of school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:261
+#: aleksis/apps/paweljong/models.py:262
 msgid "Place of the school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:263
+#: aleksis/apps/paweljong/models.py:264
 msgid "Comment / remarks"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:270
+#: aleksis/apps/paweljong/models.py:271
 msgid "Voucher"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:274
+#: aleksis/apps/paweljong/models.py:275
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:31
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:80
 msgid "Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:277
+#: aleksis/apps/paweljong/models.py:278
 msgid "Accepted terms"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:282
+#: aleksis/apps/paweljong/models.py:283
 msgid "States"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:285
+#: aleksis/apps/paweljong/models.py:286
 msgid "Retracted"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:286
+#: aleksis/apps/paweljong/models.py:287
 msgid "Retracted at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:322
+#: aleksis/apps/paweljong/models.py:289
+msgid "Checked in"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:290
+msgid "Checked in at"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+msgid "Person is already checked in!"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:334
 msgid "Participation of {} in event {}"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:351
+#: aleksis/apps/paweljong/models.py:363
 msgid "Social Sponsoring / Extra Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:362
+#: aleksis/apps/paweljong/models.py:374
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:390 aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
 msgid "Event registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:391
+#: aleksis/apps/paweljong/models.py:403
 msgid "Event registrations"
 msgstr ""
 
@@ -596,11 +607,11 @@ msgid "Registration until"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:20 aleksis/apps/paweljong/tables.py:21
-#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:79
-#: aleksis/apps/paweljong/tables.py:80 aleksis/apps/paweljong/tables.py:97
-#: aleksis/apps/paweljong/tables.py:98 aleksis/apps/paweljong/tables.py:111
-#: aleksis/apps/paweljong/tables.py:112 aleksis/apps/paweljong/tables.py:131
-#: aleksis/apps/paweljong/tables.py:132
+#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:84
+#: aleksis/apps/paweljong/tables.py:85 aleksis/apps/paweljong/tables.py:102
+#: aleksis/apps/paweljong/tables.py:103 aleksis/apps/paweljong/tables.py:116
+#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:136
+#: aleksis/apps/paweljong/tables.py:137
 #: aleksis/apps/paweljong/templates/paweljong/event/detail.html:24
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:25
 msgid "Edit"
@@ -611,7 +622,7 @@ msgid "Public page"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:34 aleksis/apps/paweljong/tables.py:35
-#: aleksis/apps/paweljong/tables.py:74
+#: aleksis/apps/paweljong/tables.py:73
 msgid "View"
 msgstr ""
 
@@ -624,8 +635,8 @@ msgid "Code"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:50 aleksis/apps/paweljong/tables.py:51
-#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:118
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:38
+#: aleksis/apps/paweljong/tables.py:122 aleksis/apps/paweljong/tables.py:123
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:42
 msgid "Delete"
 msgstr ""
 
@@ -634,11 +645,16 @@ msgstr ""
 msgid "Print"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:73
+#: aleksis/apps/paweljong/tables.py:72
 msgid "View registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:152 aleksis/apps/paweljong/tables.py:153
+#: aleksis/apps/paweljong/tables.py:78 aleksis/apps/paweljong/tables.py:79
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:29
+msgid "Check in"
+msgstr ""
+
+#: aleksis/apps/paweljong/tables.py:157 aleksis/apps/paweljong/tables.py:158
 msgid "Add persons"
 msgstr ""
 
@@ -698,18 +714,30 @@ msgstr ""
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:82
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:86
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:91
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
 msgid "Registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
+msgid "Search"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
+msgid "Clear"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:5
 msgid "Edit event"
@@ -742,16 +770,6 @@ msgstr ""
 msgid "Filter events"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
-msgid "Search"
-msgstr ""
-
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
-msgid "Clear"
-msgstr ""
-
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:23
 msgid "Selected events"
 msgstr ""
@@ -881,43 +899,60 @@ msgstr ""
 msgid "Edit registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:31
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:35
 msgid "Retract"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:45
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:49
 msgid "Notification"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:52
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:56
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:16
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:200
 msgid "Invoice"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:59
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:63
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:138
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:142
 msgid "Retraction information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:145
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:149
 msgid "True"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:160
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:164
 msgid "Registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:193
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:197
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:45
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:96
 msgid "Accepted"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:223
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:231
+msgid "No checked in yet."
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:240
+msgid "Invoice details"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:246
+msgid "Billing information"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
+#: aleksis/apps/paweljong/views.py:419
+msgid "Payment"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:316
 msgid "Guardians / Parents "
 msgstr ""
 
@@ -1152,140 +1187,140 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:65 aleksis/apps/paweljong/views.py:77
+#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:149
+#: aleksis/apps/paweljong/views.py:150
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:161
+#: aleksis/apps/paweljong/views.py:162
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:182
+#: aleksis/apps/paweljong/views.py:183
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:219
+#: aleksis/apps/paweljong/views.py:228
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:231
+#: aleksis/apps/paweljong/views.py:240
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:243
+#: aleksis/apps/paweljong/views.py:252
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:253
+#: aleksis/apps/paweljong/views.py:262
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:372
+#: aleksis/apps/paweljong/views.py:381
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:374
+#: aleksis/apps/paweljong/views.py:383
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:392
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:387
+#: aleksis/apps/paweljong/views.py:396
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:389
+#: aleksis/apps/paweljong/views.py:398
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:405
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:407
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:404
+#: aleksis/apps/paweljong/views.py:413
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:406
+#: aleksis/apps/paweljong/views.py:415
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:410
-msgid "Payment"
-msgstr ""
-
-#: aleksis/apps/paweljong/views.py:412
+#: aleksis/apps/paweljong/views.py:421
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:417
+#: aleksis/apps/paweljong/views.py:426
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:428
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:517 aleksis/apps/paweljong/views.py:627
+#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:653
+#: aleksis/apps/paweljong/views.py:662
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:660
+#: aleksis/apps/paweljong/views.py:669
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:661
+#: aleksis/apps/paweljong/views.py:670
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:718 aleksis/apps/paweljong/views.py:869
+#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:730 aleksis/apps/paweljong/views.py:881
+#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:755
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:787
+#: aleksis/apps/paweljong/views.py:796
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:799
+#: aleksis/apps/paweljong/views.py:808
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:809
+#: aleksis/apps/paweljong/views.py:818
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:892
+#: aleksis/apps/paweljong/views.py:901
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:947
+#: aleksis/apps/paweljong/views.py:959
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:949
+#: aleksis/apps/paweljong/views.py:961
 msgid "Person does not exist!"
 msgstr ""
+
+#: aleksis/apps/paweljong/views.py:987
+msgid "Successfully checked in."
+msgstr ""
diff --git a/aleksis/apps/paweljong/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/paweljong/locale/tr_TR/LC_MESSAGES/django.po
index d3a4ab3130c8ff4f64438c6c923fe6676fd04d7b..2261c449f53078db28080b0e0e49ea7caba8a436 100644
--- a/aleksis/apps/paweljong/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/apps/paweljong/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-21 19:43+0000\n"
+"POT-Creation-Date: 2022-06-24 14:54+0000\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"
@@ -29,12 +29,12 @@ msgstr ""
 msgid "Event members are out of sync with registrations!"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:30
-msgid "Search by event"
+#: aleksis/apps/paweljong/filters.py:17 aleksis/apps/paweljong/filters.py:45
+msgid "Search by name"
 msgstr ""
 
-#: aleksis/apps/paweljong/filters.py:38
-msgid "Search by name"
+#: aleksis/apps/paweljong/filters.py:37
+msgid "Search by event"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:18
@@ -82,7 +82,7 @@ msgid "Event details"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:52 aleksis/apps/paweljong/menus.py:37
-#: aleksis/apps/paweljong/models.py:128
+#: aleksis/apps/paweljong/models.py:129
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/terms.html:5
 #: aleksis/apps/paweljong/templates/paweljong/term/list.html:6
@@ -91,7 +91,7 @@ msgid "Terms"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:53 aleksis/apps/paweljong/menus.py:59
-#: aleksis/apps/paweljong/models.py:131
+#: aleksis/apps/paweljong/models.py:132
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/info_mailing/list.html:7
 msgid "Info mailings"
@@ -109,7 +109,7 @@ msgstr ""
 msgid "Voucher discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:112
+#: aleksis/apps/paweljong/forms.py:118 aleksis/apps/paweljong/models.py:113
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:8
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:36
 msgid "Group"
@@ -180,7 +180,7 @@ msgid "Address data"
 msgstr ""
 
 #: aleksis/apps/paweljong/forms.py:198
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:67
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:71
 msgid "Contact details"
 msgstr ""
 
@@ -287,7 +287,7 @@ msgstr ""
 msgid "Enter the place (city) where your school is located."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:260
+#: aleksis/apps/paweljong/forms.py:277 aleksis/apps/paweljong/models.py:261
 msgid "School class"
 msgstr ""
 
@@ -295,7 +295,7 @@ msgstr ""
 msgid "Please enter the class you are in (e.g. 8a)."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:265
+#: aleksis/apps/paweljong/forms.py:286 aleksis/apps/paweljong/models.py:266
 msgid "Medical information / intolerances"
 msgstr ""
 
@@ -347,8 +347,8 @@ msgstr ""
 msgid "The username must only contain lower case letters and numbers, and must begin with a letter."
 msgstr ""
 
-#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:227
-#: aleksis/apps/paweljong/models.py:256 aleksis/apps/paweljong/tables.py:46
+#: aleksis/apps/paweljong/forms.py:500 aleksis/apps/paweljong/models.py:228
+#: aleksis/apps/paweljong/models.py:257 aleksis/apps/paweljong/tables.py:46
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:61
 msgid "Person"
@@ -369,8 +369,8 @@ msgstr ""
 msgid "Events"
 msgstr ""
 
-#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:213
-#: aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/menus.py:26 aleksis/apps/paweljong/models.py:214
+#: aleksis/apps/paweljong/models.py:215
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:6
 #: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:7
 msgid "Vouchers"
@@ -388,11 +388,11 @@ msgstr ""
 
 #: aleksis/apps/paweljong/menus.py:81
 #: aleksis/apps/paweljong/templates/paweljong/event/list.html:10
-#: aleksis/apps/paweljong/views.py:737
+#: aleksis/apps/paweljong/views.py:746
 msgid "Upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:27
+#: aleksis/apps/paweljong/models.py:28
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:25
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:63
@@ -400,104 +400,103 @@ msgstr ""
 msgid "Name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:28
+#: aleksis/apps/paweljong/models.py:29
 msgid "Colour"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:35
+#: aleksis/apps/paweljong/models.py:36
 msgid "Title"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:36
+#: aleksis/apps/paweljong/models.py:37
 msgid "Term"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:37
+#: aleksis/apps/paweljong/models.py:38
 msgid "Confirmation text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:44
+#: aleksis/apps/paweljong/models.py:45
 msgid "subject"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:45
+#: aleksis/apps/paweljong/models.py:46
 msgid "Text"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:46
+#: aleksis/apps/paweljong/models.py:47
 msgid "Request replies to"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:48
+#: aleksis/apps/paweljong/models.py:49
 msgid "Mailing is active"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:50
+#: aleksis/apps/paweljong/models.py:51
 msgid "Sender"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:51
+#: aleksis/apps/paweljong/models.py:52
 msgid "Send to registered person"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:52
+#: aleksis/apps/paweljong/models.py:53
 msgid "Send to guardians"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:110
+#: aleksis/apps/paweljong/models.py:111
 msgid "Display name"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:114
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:69
+#: aleksis/apps/paweljong/models.py:115
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:9
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:37
 msgid "Description"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:115
+#: aleksis/apps/paweljong/models.py:116
 msgid "Publish"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:117
+#: aleksis/apps/paweljong/models.py:118
 msgid "Slug"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:120
+#: aleksis/apps/paweljong/models.py:121
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:12
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:40
 msgid "Date of event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:121
+#: aleksis/apps/paweljong/models.py:122
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:13
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:41
 msgid "Registration deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:122
+#: aleksis/apps/paweljong/models.py:123
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:14
 #: aleksis/apps/paweljong/templates/templated_email/event_created.email:42
 msgid "Retraction deadline"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:125
+#: aleksis/apps/paweljong/models.py:126
 msgid "Cost in €"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:126
+#: aleksis/apps/paweljong/models.py:127
 msgid "Maximum participants"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:127
+#: aleksis/apps/paweljong/models.py:128
 msgid "Information about the event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:204
+#: aleksis/apps/paweljong/models.py:205
 msgid "Sent to persons"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:220 aleksis/apps/paweljong/models.py:254
+#: aleksis/apps/paweljong/models.py:221 aleksis/apps/paweljong/models.py:255
 #: aleksis/apps/paweljong/tables.py:12 aleksis/apps/paweljong/tables.py:43
 #: aleksis/apps/paweljong/templates/paweljong/event/full.html:4
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:8
@@ -507,69 +506,81 @@ msgstr ""
 msgid "Event"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:236
+#: aleksis/apps/paweljong/models.py:237
 msgid "Used by"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:257
+#: aleksis/apps/paweljong/models.py:258
 msgid "Registration date"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:259
+#: aleksis/apps/paweljong/models.py:260
 msgid "Name of school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:261
+#: aleksis/apps/paweljong/models.py:262
 msgid "Place of the school"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:263
+#: aleksis/apps/paweljong/models.py:264
 msgid "Comment / remarks"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:270
+#: aleksis/apps/paweljong/models.py:271
 msgid "Voucher"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:274
+#: aleksis/apps/paweljong/models.py:275
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:31
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:80
 msgid "Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:277
+#: aleksis/apps/paweljong/models.py:278
 msgid "Accepted terms"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:282
+#: aleksis/apps/paweljong/models.py:283
 msgid "States"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:285
+#: aleksis/apps/paweljong/models.py:286
 msgid "Retracted"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:286
+#: aleksis/apps/paweljong/models.py:287
 msgid "Retracted at"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:322
+#: aleksis/apps/paweljong/models.py:289
+msgid "Checked in"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:290
+msgid "Checked in at"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:298 aleksis/apps/paweljong/views.py:989
+msgid "Person is already checked in!"
+msgstr ""
+
+#: aleksis/apps/paweljong/models.py:334
 msgid "Participation of {} in event {}"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:351
+#: aleksis/apps/paweljong/models.py:363
 msgid "Social Sponsoring / Extra Donation"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:362
+#: aleksis/apps/paweljong/models.py:374
 msgid "Voucher / Granted discount"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:390 aleksis/apps/paweljong/views.py:381
+#: aleksis/apps/paweljong/models.py:402 aleksis/apps/paweljong/views.py:390
 msgid "Event registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/models.py:391
+#: aleksis/apps/paweljong/models.py:403
 msgid "Event registrations"
 msgstr ""
 
@@ -596,11 +607,11 @@ msgid "Registration until"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:20 aleksis/apps/paweljong/tables.py:21
-#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:79
-#: aleksis/apps/paweljong/tables.py:80 aleksis/apps/paweljong/tables.py:97
-#: aleksis/apps/paweljong/tables.py:98 aleksis/apps/paweljong/tables.py:111
-#: aleksis/apps/paweljong/tables.py:112 aleksis/apps/paweljong/tables.py:131
-#: aleksis/apps/paweljong/tables.py:132
+#: aleksis/apps/paweljong/tables.py:54 aleksis/apps/paweljong/tables.py:84
+#: aleksis/apps/paweljong/tables.py:85 aleksis/apps/paweljong/tables.py:102
+#: aleksis/apps/paweljong/tables.py:103 aleksis/apps/paweljong/tables.py:116
+#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:136
+#: aleksis/apps/paweljong/tables.py:137
 #: aleksis/apps/paweljong/templates/paweljong/event/detail.html:24
 #: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:25
 msgid "Edit"
@@ -611,7 +622,7 @@ msgid "Public page"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:34 aleksis/apps/paweljong/tables.py:35
-#: aleksis/apps/paweljong/tables.py:74
+#: aleksis/apps/paweljong/tables.py:73
 msgid "View"
 msgstr ""
 
@@ -624,8 +635,8 @@ msgid "Code"
 msgstr ""
 
 #: aleksis/apps/paweljong/tables.py:50 aleksis/apps/paweljong/tables.py:51
-#: aleksis/apps/paweljong/tables.py:117 aleksis/apps/paweljong/tables.py:118
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:38
+#: aleksis/apps/paweljong/tables.py:122 aleksis/apps/paweljong/tables.py:123
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:42
 msgid "Delete"
 msgstr ""
 
@@ -634,11 +645,16 @@ msgstr ""
 msgid "Print"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:73
+#: aleksis/apps/paweljong/tables.py:72
 msgid "View registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/tables.py:152 aleksis/apps/paweljong/tables.py:153
+#: aleksis/apps/paweljong/tables.py:78 aleksis/apps/paweljong/tables.py:79
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:29
+msgid "Check in"
+msgstr ""
+
+#: aleksis/apps/paweljong/tables.py:157 aleksis/apps/paweljong/tables.py:158
 msgid "Add persons"
 msgstr ""
 
@@ -698,18 +714,30 @@ msgstr ""
 msgid "Owners"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:82
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:76
 msgid "Additional fields"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:86
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:80
 msgid "Child groups"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:91
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:85
 msgid "Registrations"
 msgstr ""
 
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:88
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
+msgid "Search"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event/detail.html:92
+#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
+#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
+msgid "Clear"
+msgstr ""
+
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:4
 #: aleksis/apps/paweljong/templates/paweljong/event/edit.html:5
 msgid "Edit event"
@@ -742,16 +770,6 @@ msgstr ""
 msgid "Filter events"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:14
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:14
-msgid "Search"
-msgstr ""
-
-#: aleksis/apps/paweljong/templates/paweljong/event/manage.html:18
-#: aleksis/apps/paweljong/templates/paweljong/voucher/list.html:18
-msgid "Clear"
-msgstr ""
-
 #: aleksis/apps/paweljong/templates/paweljong/event/manage.html:23
 msgid "Selected events"
 msgstr ""
@@ -881,43 +899,60 @@ msgstr ""
 msgid "Edit registration"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:31
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:35
 msgid "Retract"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:45
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:49
 msgid "Notification"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:52
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:56
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:16
 #: aleksis/apps/paweljong/templates/paweljong/invoice_pdf.html:200
 msgid "Invoice"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:59
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:63
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:138
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:142
 msgid "Retraction information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:145
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:149
 msgid "True"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:160
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:164
 msgid "Registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:193
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:197
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:45
 #: aleksis/apps/paweljong/templates/templated_email/event_registered.email:96
 msgid "Accepted"
 msgstr ""
 
-#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:223
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:231
+msgid "No checked in yet."
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:240
+msgid "Invoice details"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:246
+msgid "Billing information"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:278
+#: aleksis/apps/paweljong/views.py:419
+msgid "Payment"
+msgstr ""
+
+#: aleksis/apps/paweljong/templates/paweljong/event_registration/full.html:316
 msgid "Guardians / Parents "
 msgstr ""
 
@@ -1152,140 +1187,140 @@ msgstr ""
 msgid "New registration: %(registration)s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:65 aleksis/apps/paweljong/views.py:77
+#: aleksis/apps/paweljong/views.py:66 aleksis/apps/paweljong/views.py:78
 msgid "The event has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:149
+#: aleksis/apps/paweljong/views.py:150
 msgid "The event registration has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:161
+#: aleksis/apps/paweljong/views.py:162
 msgid "The event registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:182
+#: aleksis/apps/paweljong/views.py:183
 msgid "The registration has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:219
+#: aleksis/apps/paweljong/views.py:228
 msgid "The registration has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:231
+#: aleksis/apps/paweljong/views.py:240
 msgid "The voucher has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:243
+#: aleksis/apps/paweljong/views.py:252
 msgid "The voucher has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:253
+#: aleksis/apps/paweljong/views.py:262
 msgid "The voucher has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:372
+#: aleksis/apps/paweljong/views.py:381
 msgid "Create e-mail address"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:374
+#: aleksis/apps/paweljong/views.py:383
 msgid "All participants need a personal e-mail address, which they check and read temselves. We offer the possibility to register an e-mail address on our secure servers, made for young users. For information about receiving mails, see: <a href='https://leopard.institute/pages/services.html'>https://leopard.institute/pages/services.html</a>."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:383
+#: aleksis/apps/paweljong/views.py:392
 msgid "First, please enter some basic information about yourself, and check whether all information is correct."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:387
+#: aleksis/apps/paweljong/views.py:396
 msgid "Contact information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:389
+#: aleksis/apps/paweljong/views.py:398
 msgid "Tell us how we can contact you. You will receive information about the event by e-mail. Please use your personal e-mail address where you will read mails yourself, not an address of your parents. We will always send all important information to your parents as well, and you will enter their e-mail address on the next page."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:396
+#: aleksis/apps/paweljong/views.py:405
 msgid "Legal guardians / parents"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:398
+#: aleksis/apps/paweljong/views.py:407
 msgid "Tell us how we can reach your parents or other legal guardians. This should be the person who was present when you registered for the event (which is now). If you want to add another parent, please tell us later as a comment."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:404
+#: aleksis/apps/paweljong/views.py:413
 msgid "Additional registration information"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:406
+#: aleksis/apps/paweljong/views.py:415
 msgid "Please answer the following questions as precisely as you can, so we can make sure your event attendance will be organised as wel las possible."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:410
-msgid "Payment"
-msgstr ""
-
-#: aleksis/apps/paweljong/views.py:412
+#: aleksis/apps/paweljong/views.py:421
 msgid "Please decide with your parents how you want to pay. In this step, you only select a payment method. The real payment will be done in a separate step, after the registration is complete."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:417
+#: aleksis/apps/paweljong/views.py:426
 msgid "Consent"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:419
+#: aleksis/apps/paweljong/views.py:428
 msgid "Lastly, please read the terms and conditions carefully, together with your parents. After that, you will need to confirm that you agree with everything yourself, and that your parents also agree."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:517 aleksis/apps/paweljong/views.py:627
+#: aleksis/apps/paweljong/views.py:526 aleksis/apps/paweljong/views.py:636
 msgid "You entered an invalid voucher code!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:653
+#: aleksis/apps/paweljong/views.py:662
 msgid "You have successfully registered for the event. Please give us up to two days to process your registration. You will then receive an email from us."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:660
+#: aleksis/apps/paweljong/views.py:669
 msgid "You registered for an event"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:661
+#: aleksis/apps/paweljong/views.py:670
 #, python-format
 msgid "You registered for the event %s"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:718 aleksis/apps/paweljong/views.py:869
+#: aleksis/apps/paweljong/views.py:727 aleksis/apps/paweljong/views.py:878
 msgid "The term has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:730 aleksis/apps/paweljong/views.py:881
+#: aleksis/apps/paweljong/views.py:739 aleksis/apps/paweljong/views.py:890
 msgid "The term has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:746
+#: aleksis/apps/paweljong/views.py:755
 msgid "Announcement feed of all upcoming events"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:787
+#: aleksis/apps/paweljong/views.py:796
 msgid "The info mailing has been created."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:799
+#: aleksis/apps/paweljong/views.py:808
 msgid "The info mailing has been saved."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:809
+#: aleksis/apps/paweljong/views.py:818
 msgid "The info mailing has been deleted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:892
+#: aleksis/apps/paweljong/views.py:901
 msgid "Registration successfully retracted."
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:947
+#: aleksis/apps/paweljong/views.py:959
 #, python-brace-format
 msgid "Person {person} added successfully!"
 msgstr ""
 
-#: aleksis/apps/paweljong/views.py:949
+#: aleksis/apps/paweljong/views.py:961
 msgid "Person does not exist!"
 msgstr ""
+
+#: aleksis/apps/paweljong/views.py:987
+msgid "Successfully checked in."
+msgstr ""