Regidesk first pass

This commit is contained in:
Tobias 2019-01-16 21:52:37 +13:00
parent c09b926b87
commit a42820a208
5 changed files with 179 additions and 127 deletions

View file

@ -4,18 +4,20 @@
{% load i18n %}
{% block head_title %}Checkin{% endblock head_title %}
{% block extra_head %}<script type="text/javascript" src="{% static 'js/instascan.min.js' %}"></script>{% endblock %}
{% block body_class %}text-primary{% endblock body_class %}
{% block main_class %}container{% endblock main_class %}
{% block content %}
{% block body %}
{% endblock %}
{% endblock %}
{% block extra_script %}
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs/jszip-2.5.0/dt-1.10.16/b-1.4.2/b-colvis-1.4.2/b-flash-1.4.2/b-html5-1.4.2/b-print-1.4.2/cr-1.4.1/fc-3.2.3/fh-3.1.3/r-2.2.0/rg-1.0.2/datatables.min.css"/>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/v/bs/jszip-2.5.0/dt-1.10.16/b-1.4.2/b-colvis-1.4.2/b-html5-1.4.2/b-print-1.4.2/cr-1.4.1/fc-3.2.3/fh-3.1.3/r-2.2.0/rg-1.0.2/datatables.min.js"></script>
<script type="text/javascript" src="//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js "></script>
<script type="text/javascript">
$("table.table-data").dataTable({
"dom": "<'row'<'col-md-3'l><'col-md-3'B><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>",
@ -28,12 +30,16 @@
text: 'Export',
buttons: ["copy", "csv", "print"]
},
{ extend: 'collection',
{
extend: 'collection',
text: 'Columns',
buttons: [
{ extend: 'columnsToggle',
columns: '.toggle' },
{
extend: 'columnsToggle',
columns: '.toggle'
},
]
}]});
}]
});
</script>
{% endblock %}

View file

@ -162,7 +162,7 @@
$("tr input.action-select").actions();
});
$('.dataTable').dataTable({
"dom": "<'row'<'col-md-3'l><'col-md-3'B><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>",
"dom": "<'container-fluid'<'row'<'col-md-3'l><'col-md-3'B><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>>",
"stateSave": true,
"lengthMenu": [[10, 50, 100, -1], [10, 50, 100, "All"]],
"drawCallback": function( settings ) {

View file

@ -37,7 +37,7 @@
<div class="col-md-6">
<h2>Email</h2>
<form class="form-horizontal" method="post" action="{% url "regidesk:boarding_send" %}">
<form class="form" method="post" action="{% url "regidesk:boarding_send" %}">
{% csrf_token %}

View file

@ -1,10 +1,12 @@
{% extends "regidesk/base.html" %}
{% load static %}
{% block header_title %}
<h1>Boarding pass lookup</h1>
<p>Please scan or enter boarding pass code and click "Look Up"</p>
{% endblock %}
{% block extra_head %}
<script type="text/javascript" src="{% static 'js/instascan.min.js' %}"></script>
{% endblock %}
{% block content %}

View file

@ -1,6 +1,4 @@
{% extends "regidesk/base.html" %}
{% block header_title %}
<h3>Pre-print check</h3>
{% endblock %}
@ -17,27 +15,45 @@
{% total_items_purchased 4 as speakers_dinner_count %}
{% total_items_purchased 5 as pdns_count %}
{% ticket_type as ticket_type %}
<div class="card my-3">
<div class="card-header">
<h2 class="card-title">Content Check</h2>
</div>
<div class="card-body">
<dl class="card-text row">
<dt class="col-sm-3">Ticket type</dt>
<dd class="col-sm-9">{{ ticket_type }}</dd>
<div class="panel panel-default">
<div class="panel-heading">Content Check</div>
<div class="panel-body">
<dl class="dl-horizontal">
<dt>Ticket type</dt><dd>{{ ticket_type }}</dd>
<dt>Name</dt><dd>{{ user.attendee.attendeeprofilebase.attendeeprofile.name }}</dd>
<dt>Company</dt><dd>{% if ticket_type == "Student" or ticket_type == "Hobbyist" or "Only" in ticket_type %}{% else %}{{ user.attendee.attendeeprofilebase.attendeeprofile.company }}{% endif %}</dd>
<dt>Free Text 1</dt><dd>{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_1 }}</dd>
<dt>Free Text 2</dt><dd>{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_2 }}</dd>
<dt>Penguin Dinner Tickets</dt><dd>{{ penguin_dinner_count }}</dd>
<dt>Spearker Dinner Tickets</dt><dd>{{ speakers_dinner_count }}</dd>
<dt>PDNS Tickets</dt><dd>{{ pdns_count }}</dd>
<dt>Over 18 years</dt><dd>{% if user.attendee.attendeeprofilebase.attendeeprofile.of_legal_age %}yes{% else %}<strong class="red">NO</strong>{% endif %}</dd>
<dt>Username</dt><dd>{{ user.username }}</dd>
<dt class="col-sm-3">Name</dt>
<dd class="col-sm-9">{{ user.attendee.attendeeprofilebase.attendeeprofile.name }}</dd>
<dt class="col-sm-3">Company</dt>
<dd class="col-sm-9">{% if ticket_type == "Student" or ticket_type == "Hobbyist" or "Only" in ticket_type %}{% else %}{{ user.attendee.attendeeprofilebase.attendeeprofile.company }}{% endif %}</dd>
<dt class="col-sm-3">Free Text 1</dt>
<dd class="col-sm-9">{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_1 }}</dd>
<dt class="col-sm-3">Free Text 2</dt>
<dd class="col-sm-9">{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_2 }}</dd>
<dt class="col-sm-3">Penguin Dinner Tickets</dt>
<dd class="col-sm-9">{{ penguin_dinner_count }}</dd>
<dt class="col-sm-3">Spearker Dinner Tickets</dt>
<dd class="col-sm-9">{{ speakers_dinner_count }}</dd>
<dt class="col-sm-3">PDNS Tickets</dt>
<dd class="col-sm-9">{{ pdns_count }}</dd>
<dt class="col-sm-3">Over 18 years</dt>
<dd class="col-sm-9">{% if user.attendee.attendeeprofilebase.attendeeprofile.of_legal_age %}yes{% else %}<strong
class="red">NO</strong>{% endif %}</dd>
<dt class="col-sm-3">Username</dt>
<dd class="col-sm-9">{{ user.username }}</dd>
</dl>
<table class="table table-striped">
<tr>
<th>item</th>
<th>count</th>
</tr>
<h4>Shirts ordered</h4>
<table class="table card-text">
{% for shirt in shirts%}
<tr>
<td>{{ shirt.product }}</td>
@ -47,80 +63,108 @@
</table>
</div>
</div>
<div class="card my-3">
<div class="card-header">
<h2 class="card-title">Badge Preview</h2>
</div>
<div class="card-body">
<img src="{% url 'badge' user.id %}.svg">
<div class="panel {% if check_in.checked_in_bool %}panel-danger{% else %}panel-success{% endif %}">
<div class="panel-heading">Check In</div>
<div class="panel-body">
<dl class="dl-horizontal">
<dt>Status</dt><dd>{% if check_in.checked_in_bool %}Checked in{% else %}Not checked in{% endif %}</dd>
</div>
</div>
<!-- NOTE:
Workflow can be improved by using tickboxes for check-in, badge print, and swag, with a single submit button.
-->
<div class="card my-3">
<div class="card-header">
<h2 class="card-title">Check In</h2>
</div>
<div class="card-body">
<dl class="row card-text">
<dt class="col-sm-3">Status</dt>
<dd class="col-sm-9">{% if check_in.checked_in_bool %}Checked in{% else %}Not checked in{% endif %}</dd>
</dl>
<blockquote>
<p>If an attendee sees an error with their contents, please instruct them to change their profile and come back before checking them in.</p>
<p>The attendee will be unable to edit their profile after they have been checked in</p>
</blockquote>
<p>If an attendee sees an error with their contents, please instruct them to change their profile and come
back before checking them in.</p>
<p>The attendee will be unable to edit their profile after they have been checked in.</p>
<form method="post">
<input type="checkbox" name="checkin" value="checkin" checked hidden>
<input class="btn {% if check_in.badge_printed %}btn-danger{% else %}btn-success{% endif %} pull-right" type="submit" value="Submit">
<input class="btn" type="submit" value="Submit">
</form>
</div>
</div>
<div class="panel {% if check_in.badge_printed %}panel-danger{% else %}panel-success{% endif %}">
<div class="panel-heading">Badge</div>
<div class="panel-body">
<dl class="dl-horizontal">
<dt>Status</dt><dd>{% if check_in.badge_printed %}Marked{% else %}Not marked{% endif %} as printed</dd>
<div class="card my-3">
<div class="card-header">
<h2 class="card-title">Badge</h2>
</div>
<div class="card-body">
<dl class="row card-text">
<dt class="col-sm-3">Status</dt>
<dd class="col-sm-9">{% if check_in.badge_printed %}Marked{% else %}Not marked{% endif %} as printed</dd>
</dl>
<form method="post" hidden>
<input type="checkbox" name="badge" value="badge" checked hidden>
<a type="button" class="btn btn-primary" href="badge">Show Badge</a>
<input class="btn {% if check_in.badge_printed %}btn-danger{% else %}btn-success{% endif %} pull-right" type="submit" value="Submit">
<input class="btn" type="submit" value="Submit">
</form>
<form method="post">
<input type="checkbox" name="unbadge" value="unbadge" checked hidden>
<input class="btn btn-danger pull-right" type="submit" value="Force Reprint">
<input class="btn" type="submit" value="Force Reprint">
</form>
</div>
</div>
</div>
<div class="panel {% if check_in.schwag_given %}panel-danger{% else %}panel-success{% endif %}">
<div class="panel-heading">Schwag</div>
<div class="panel-body">
<dl class="dl-horizontal">
<dt>Status</dt><dd>{% if check_in.schwag_given %}Marked{% else %}Not marked{% endif %} as given</dd>
<div class="card my-3">
<div class="card-header">
<h2 class="card-title">Schwag</h2>
</div>
<div class="card-body">
<dl class="row card-text">
<dt class="col-sm-3">Status</dt>
<dd class="col-sm-9">{% if check_in.schwag_given %}Marked{% else %}Not marked{% endif %} as given</dd>
</dl>
<form method="post">
<input type="checkbox" name="schwag" value="schwag" checked hidden>
<input class="btn {% if check_in.schwag_given %}btn-danger{% else %}btn-success{% endif %} pull-right" type="submit" value="Submit">
<input class="btn" type="submit"
value="Give Schwag">
</form>
</div>
</div>
<div class="panel panel-warning">
<div class="panel-heading">Log Exception</div>
<div class="panel-body">
<form method="post">
<div class="card my-3">
<div class="card-header">
<h2 class="card-title">Log Exception</h2>
</div>
<div class="card-body">
<form method="post" class="card-text">
<textarea class="form-control" rows="3" name="exception">{{ check_in.review_text }}</textarea>
<p class="help-block">Reminder: Please tell attendee to email boarding@lca2018.org with the details as well</p>
<input class="btn btn-warning pull-right" type="submit" value="Submit">
<p class="help-block">Reminder: Please tell attendee to email contact@lca2019.org with the details as well</p>
<input class="btn" type="submit" value="Submit">
</form>
</div>
</div>
<div class="panel {% if check_in.checked_in_bool or check_in.schwag_given %}panel-danger{% else %}panel-success{% endif %}">
<div class="panel-heading">Bulk actions</div>
<div class="panel-body">
<div class="card my-3 {% if check_in.checked_in_bool or check_in.schwag_given %}card-danger{% else %}card-success{% endif %}">
<div class="card-header">Bulk actions</div>
<div class="card-body">
<p>Mark attendee as checked in and schwag given</p>
<dl class="dl-horizontal">
<dt>Status</dt><dd>{% if check_in.checked_in_bool 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 %}</dd>
<dl class="row card-text">
<dt class="col-sm-3">Status</dt>
<dd class="col-sm-9">{% if check_in.checked_in_bool 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 %}</dd>
</dl>
<form method="post">
<input type="checkbox" name="bulk" value="bulk" checked hidden>
<input class="btn {% if check_in.checked_in_bool or check_in.schwag_given %}btn-danger{% else %}btn-success{% endif %} pull-right" type="submit" value="Submit">
<input class="btn pull-right" type="submit" value="Submit">
</form>
</div>
</div>
<a type=button" class="btn btn-primary btn-lg" href="{% url 'regidesk:check_in_scanner' %}">Return to scanning page</a>
<a type="button" class="btn btn-primary btn-lg" href="{% url 'regidesk:check_in_scanner' %}">Return to scanning page</a>
{% endblock %}