Skip to content

Commit 11a6e29

Browse files
committed
Implement checkin field-scanning
The idea behind this is to add secondary "stations" at a conference checkin which can off-load the main check-in. Typical example can be a desk for handing out t-shirts separate from the registration. Each checkin-field is tied to one of the dynamic reporting fields implemented earlier, and once the "store" button is clicke on the checkin dialog, the date of it being done is stored in the field. Unlike regular check-in, this the check-in field scanning is done off the *badge* not the ticket. This makes it more like the sponsor badge scanning, and therefor we have to add a new landing page that can handle the case when the same person is both a sponsor scanner and a check-in scanner. It will then just prompt the user for which one. This merges the two separate but extremely similar web scanner apps used for checkin and badge scaninng into one, that is driven by parameters. There's enough complexity there that we don't want two independent ones... In passing, support for old-style tokens (prior to 074e324, almost a year ago) is removed to simplify the code. That means that tickets or badges issued before 074e324 was deployed can no longer be scanned, but given how long ago it is this should not happen. Per original idea from Vik Fearing with input from several more people over time.
1 parent 3375179 commit 11a6e29

File tree

17 files changed

+568
-728
lines changed

17 files changed

+568
-728
lines changed

docs/confreg/configuring.md

+7
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,13 @@ Dynamic properties
205205
to each registration. These fields are used for custom reporting
206206
and similar functions, and are not visible to the end user.
207207

208+
Scanning properties
209+
: List of dynamic properties that can be used as part of the scanning
210+
system. For [check-in processors](tickets#scanningfields) this allows
211+
them to perform secondary scanning of badges to mark other items.
212+
The list here must be a subset of the *Dynamic properties* above, or
213+
empty.
214+
208215
Registration open
209216
: If regular registration is open.
210217

docs/confreg/tickets.md

+18-2
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,30 @@ check-in can be performed. Once the check-in is performed, it's stored
9090
when and by who, so it the same attendee tries to check in again (or a
9191
different one with the same ticket...), it will be clearly shown.
9292

93+
### Scanning fields
94+
95+
Scanning fields allows the check-in process to be split into multiple
96+
steps, where different things are scanned at different times. A
97+
typical use for this is to have conference t-shirts handed out
98+
separately from the main check-in. The permissions are integrated with
99+
the check-in system, so the same people will have permissions on
100+
it. However, instead of scanning the ticket, they will be scanning
101+
attendee badges, to bring up approximately the same information.
102+
103+
The scanning fields are configured as a subset of the
104+
[dynamic properties](reports#dynamic) used in reporting, and for each
105+
scanning field the timestamp when it was stored will be registered in
106+
the dynamic property (and an entry will be written to the registration
107+
log).
108+
93109
### Check-in processors
94110

95111
The people processing the check-ins will get a link on their
96112
registration page that goes to the check-in information page.
97113

98114
This page will contain a link (both directly and as a QR code) to the
99-
check-in app, and the ability to have the link sent to them by email
100-
(because it's a convenient way to get the link onto a device).
115+
check-in app. If multiple scanning fields are used, indepdendent links
116+
will be provided for each of them.
101117

102118
The check-in app itself does *not* require the user to be logged in,
103119
so this link can easily be copy/pasted.

media/css/badgescan.css

-90
This file was deleted.

media/css/checkin.css media/css/scanner.css

+9-4
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,33 @@ body {
33
padding-bottom: 60px;
44
}
55

6-
dl.checkin_list dt {
6+
dl.found_list dt {
77
background-color: lightgray;
88
padding: 3px;
99
padding-left: 5px;
1010
border-radius: 3px;
1111
}
1212

13-
dl.checkin_list dd {
13+
dl.found_list dd {
1414
margin-bottom: 3px;
1515
padding: 3px;
1616
}
1717

18-
dl.checkin_list dd.checkin_dyn_warn {
18+
dl.found_list dd.found_dyn_warn {
1919
background-color: darkred;
2020
color: white;
2121
}
2222

23-
dl.checkin_list dd ul {
23+
dl.found_list dd ul {
2424
padding-left: 15px;
2525
margin-bottom: 0;
2626
}
2727

28+
dl.found_list dd textarea {
29+
width: 100%;
30+
height: 7em;
31+
}
32+
2833
#completed_div {
2934
display: none;
3035
}

0 commit comments

Comments
 (0)