{% if ticket_type == "Student" or ticket_type == "Hobbyist" or "Only" in ticket_type %}{% else %}{{ user.attendee.attendeeprofilebase.attendeeprofile.company }}{% endif %}
{% if user.attendee.attendeeprofilebase.attendeeprofile.of_legal_age %}yes{% else %}NO{% endif %}
+
+
+
+
+
+
Badge
+
+
+
Status
{% if check_in.badge_printed %}Marked{% else %}Not marked{% endif %} as printed
+
+
+
+
+
+
+
Schwag
+
+
+
Status
{% if check_in.schwag_given %}Marked{% else %}Not marked{% endif %} as given
+
+
+
+
+
+
+
Bulk actions
+
+
+
Status
{% if check_in.badge_printed or check_in.schwag_given %}One of the items in bulk action is marked as given already{% else %}Both items are marked as unrecived{% endif %}
+
+
+
+
+ Return to scanning page
+
+{% endblock %}
diff --git a/vendor/regidesk/regidesk/urls.py b/vendor/regidesk/regidesk/urls.py
index 81de4aea..8aa1e555 100644
--- a/vendor/regidesk/regidesk/urls.py
+++ b/vendor/regidesk/regidesk/urls.py
@@ -9,5 +9,8 @@ urlpatterns = [
url(r"^([A-Z0-9]{6}).png$", views.checkin_png, name="checkin_png"),
url(r"^overview/([a-z]+)?$", views.boarding_overview, name="boarding_overview"),
url(r"^prepare_passes/", views.boarding_prepare, name="boarding_prepare"),
- url(r"^send_passes/", views.boarding_send, name="boarding_send")
+ url(r"^send_passes/", views.boarding_send, name="boarding_send"),
+ url(r"^checkin/$", views.CheckInLanding.as_view(), name="check_in_scanner"),
+ url(r"^checkin/(?P[A-Z0-9]{6})/$", views.check_in_overview, name="check_in_user_view"),
+ url(r"^checkin/([A-Z0-9]{6})/badge$", views.checken_in_badge, name="check_in_badge"),
]
diff --git a/vendor/regidesk/regidesk/views.py b/vendor/regidesk/regidesk/views.py
index ba9e02ee..b2805046 100644
--- a/vendor/regidesk/regidesk/views.py
+++ b/vendor/regidesk/regidesk/views.py
@@ -8,6 +8,7 @@ from django.core.mail import EmailMultiAlternatives
from django.conf import settings
from django.contrib import messages
from django.contrib.auth.decorators import permission_required, user_passes_test, login_required
+from django.contrib.auth.mixins import PermissionRequiredMixin
from django.contrib.auth.models import User, Group
from django.db import transaction
from django.db.models import F, Q
@@ -17,8 +18,11 @@ from django.http import HttpResponse, HttpResponseBadRequest
from django.shortcuts import redirect, render
from django.template import Template, Context
from django.urls import reverse
+from django.views.decorators.csrf import csrf_exempt
+from django.views.generic import TemplateView
from registrasion import util
+from registrasion.views import render_badge
from registrasion.models import commerce, people
from registrasion.templatetags.registrasion_tags import items_purchased, items_pending
from registrasion.templatetags.registrasion_tags import invoices, missing_categories
@@ -280,3 +284,45 @@ def boarding_send(request):
request.session['boarding_attendees'].remove(attendee.pk)
return redirect("regidesk:boarding_overview")
+
+
+class CheckInLanding(PermissionRequiredMixin, TemplateView):
+ template_name = 'regidesk/ci_landing.html'
+ permission_required = 'regidesk.view_boarding_pass'
+
+
+@csrf_exempt
+@permission_required("regidesk.view_boarding_pass")
+def check_in_overview(request, access_code):
+ check_in = CheckIn.objects.filter(
+ checkin_code=access_code,
+ )
+ if not check_in:
+ # yea it's a 200...
+ return render(request, "regidesk/ci_code_404.html", {})
+ check_in = check_in[0]
+ if request.method == 'POST':
+ if 'badge' in request.POST:
+ check_in.mark_badge_printed()
+ elif 'schwag' in request.POST:
+ check_in.mark_schwag_given()
+ elif 'bulk' in request.POST:
+ check_in.bulk_mark_given()
+ return redirect(request.path)
+ ctx = {
+ 'check_in': check_in,
+ 'user': check_in.user,
+ }
+ return render(request, "regidesk/ci_overview.html", ctx)
+
+
+@permission_required("regidesk.view_boarding_pass")
+def checken_in_badge(request, access_code):
+ check_in = CheckIn.objects.filter(
+ checkin_code=access_code,
+ )
+ if not check_in:
+ # yea it's a 200...
+ return render(request, "regidesk/ci_code_404.html", {})
+ badge = render_badge(check_in[0].user, format="svg", overlay=True)
+ return badge