erge remote-tracking branch 'origin/pretixscan'

This commit is contained in:
Raphael Michel
2019-07-23 19:08:35 +02:00
7 changed files with 162 additions and 31 deletions

View File

@@ -173,6 +173,13 @@ class DeviceForm(forms.ModelForm):
super().__init__(*args, **kwargs)
self.fields['limit_events'].queryset = organizer.events.all()
def clean(self):
d = super().clean()
if not d['all_events'] and not d['limit_events']:
raise ValidationError(_('Your device will not have access to anything, please select some events.'))
return d
class Meta:
model = Device
fields = ['name', 'all_events', 'limit_events']

View File

@@ -7,7 +7,16 @@
<div>
<ol>
<li>{% trans "Open the app that you want to connect and optionally reset it to the original state." %}</li>
<li>
{% trans "Download an app that is compatible with pretix. For example, our check-in app <strong>pretixSCAN</strong> is available on all major platforms." %}<br>
<a href="https://pretix.eu/about/{% if "de" in request.LANGUAGE_CODE %}de{% else %}en{% endif %}/scan"
class="btn btn-default" target="_blank">
{% trans "Download pretixSCAN" %}
</a>
</li>
<li>
{% trans "Open the app that you want to connect and optionally reset it to the original state." %}
</li>
<li>{% trans "Scan the following configuration code:" %}<br><br>
<script type="text/json" data-replace-with-qr>{{ qrdata|safe }}</script><br>
{% trans "If your app/device does not support scanning a QR code, you can also enter the following information:" %}
@@ -17,19 +26,6 @@
</li>
</ol>
</div>
<div class="alert alert-warning">
<strong>
{% blocktrans trimmed %}
Please note that this is a new feature that currently only works for beta-stage software, such as
pretixPOS. pretixdroid 1.x and pretixdesk 0.x are not supported by this feature. Future versions of
pretixdroid and pretixdesk will be supported through this menu.
{% endblocktrans %}
</strong>
<br><br>
{% blocktrans trimmed %}
To set up pretixdroid or pretixdesk, please go to the <strong>Check-in devices</strong> section of an event.
{% endblocktrans %}
</div>
<a href="{% url "control:organizer.devices" organizer=request.organizer.slug %}"
class="btn btn-default"><i class="fa fa-arrow-left"></i>
{% trans "Device overview" %}

View File

@@ -5,23 +5,12 @@
<h1>
{% trans "Connected devices" %}
</h1>
<div class="alert alert-info">
<p>
{% blocktrans trimmed %}
This menu allows you to connect hardware devices such as box office terminals or scanning terminals to
your account.
{% endblocktrans %}
<strong>
{% blocktrans trimmed %}
Please note that this is a new feature that currently only works for beta-stage software, such as
pretixPOS. pretixdroid 1.x and pretixdesk 0.x are not supported by this feature. Future versions of
pretixdroid and pretixdesk will be supported through this menu.
{% endblocktrans %}
</strong>
<br><br>
{% blocktrans trimmed %}
To set up pretixdroid or pretixdesk, please go to the <strong>Check-in devices</strong> section of an event.
{% endblocktrans %}
</div>
</p>
{% if devices|length == 0 %}
<div class="empty-collection">
<p>

View File

@@ -5,10 +5,38 @@
{% block title %}{% trans "Check-in device configuration" %}{% endblock %}
{% block content %}
<h1>{% trans "Check-in device configuration" %}</h1>
<p>{% blocktrans trimmed %}
pretixdroid is an Android app that you can use to control tickets at the entrance of your event.
pretixdesk is the corresponding app for desktop computers.
{% endblocktrans %}</p>
{% if not configs or "create" in request.GET %}
<div class="alert alert-info pretixscan-migration">
<h2 class="mar">{% trans "We've got a new app!" %}</h2>
<p>
{% blocktrans trimmed %}
We've retired pretixdesk and pretixdroid in favor of our new app pretixSCAN that works on all major
platforms, allows convenient switching between events, has better performance when dealing with large
events and supports printing badges. We suggest that you switch to pretixSCAN for your events, but you
can continue using pretixdesk for at least all of 2019, if you like.
{% endblocktrans %}
</p>
<div class="row">
<div class="col-md-6 col-sm-12 text-center">
<h3>{% trans "Our new app: pretixSCAN" %}</h3>
<img src="{% static "pretixbase/img/pretixscan.svg" %}">
<p>{% trans "Available on Android, iOS, Windows, and Linux." %}</p>
<p>{% trans "Configuration is available in your organizer account's device list." %}</p>
<a href="{% url "control:organizer.devices" organizer=request.organizer.slug %}"
class="btn btn-primary btn-lg">
{% trans "Switch to my device list" %}
</a>
</div>
<div class="col-md-6 col-sm-12 text-center">
<h3>{% trans "Our old apps: pretixdesk and pretixdroid" %}</h3>
<img src="{% static "pretixbase/img/pretixdroid.png" %}">
<p>{% trans "Available on Android, Windows, and Linux." %}</p>
<p><strong>{% trans "Scroll down to create a configuration" %}</strong></p>
</div>
</div>
</div>
{% endif %}
{% if not configs or "create" in request.GET %}
<h2>{% trans "Create app configuration" %}</h2>

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="135.46666mm"
height="135.46666mm"
viewBox="0 0 135.46666 135.46666"
version="1.1"
id="svg948"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="icon.svg"
inkscape:export-filename="/home/raphael/proj/pretixdesk/img/icon.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs942" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="684.05523"
inkscape:cy="210.75442"
inkscape:document-units="mm"
inkscape:current-layer="g1590"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1916"
inkscape:window-height="951"
inkscape:window-x="0"
inkscape:window-y="108"
inkscape:window-maximized="0" />
<metadata
id="metadata945">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-34.294274,-68.599972)">
<g
id="g1590"
transform="matrix(7.9500992,0,0,7.9500992,-81.038095,43.604759)">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;vector-effect:none;fill:#3b1c4a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.00266244;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect1462"
width="17.039619"
height="17.039619"
x="14.507035"
y="3.1440127"
rx="1.6640254"
ry="1.6640254" />
<g
id="g1466"
transform="matrix(0.53248827,0,0,0.53248763,10.76532,5.4529718)"
style="fill:#ffffff">
<path
sodipodi:nodetypes="cccccccccccccccccccccccccccccccc"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0000025"
inkscape:connector-curvature="0"
d="M 13.026823,1.6638033 V 5.6638117 H 11.026849 V 1.6638033 c 1.7e-5,-1.10454813 0.895426,-1.99995717 1.999974,-1.9999742 h 4.000009 v 1.9999742 h -4.000009 m 20.000044,-1.9999742 c 1.104548,1.633e-5 1.999958,0.8954256 1.999975,1.9999742 V 5.6638117 H 33.026867 V 1.6638033 h -4.000009 v -1.9999742 h 4.000009 M 13.026823,17.663869 v 4.000008 h 4.000009 v 1.999974 h -4.000009 c -1.104548,-1.6e-5 -1.999957,-0.895425 -1.999974,-1.999974 v -4.000039 h 1.999974 m 20.000044,4.000009 v -4.000009 h 1.999975 v 4.000009 c -1.7e-5,1.104548 -0.895427,1.999957 -1.999975,1.999974 h -4.000009 v -1.999974 z"
id="path1242" />
<path
sodipodi:nodetypes="sccccssssssccs"
inkscape:connector-curvature="0"
id="rect924"
d="m 22.606148,7.2534859 c -1.563099,0 -2.600392,0.2555936 -3.366909,0.6163077 V 18.736599 h 2.855357 v -3.246967 c 0.210413,0.06014 0.631648,0.120568 1.142657,0.120568 2.089138,0 3.577199,-1.623336 3.577199,-4.178396 0,-2.8406279 -1.698334,-4.1783193 -4.208304,-4.1783181 z m -0.01479,1.6678363 c 1.037054,0 1.397419,0.8274618 1.397419,2.5258268 0,1.653273 -0.420567,2.494121 -1.442594,2.494121 -0.195382,0 -0.346372,-0.0297 -0.451581,-0.07477 V 8.9965648 c 0.13527,-0.045083 0.28634,-0.075243 0.496756,-0.075243 z"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2365018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
</g>
</g>
<rect
id="rect1593"
height="190.80238"
width="190.80238"
x="-81.038094"
y="43.604759"
style="fill:none;stroke-width:7.95009899" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -643,6 +643,16 @@ h1 .label {
margin-top: 5px;
}
.pretixscan-migration {
h2 {
margin-top: 0;
}
img {
width: 64px;
margin-bottom: 5px;
}
}
@media(max-width: $screen-sm-max) {
.timeline {
.col-date {