diff --git a/transporte/templates/transport_details.html b/transporte/templates/transport_details.html index eb91c35cbe8432ce7ef5f424b0c37b936414ee36..30f138a199e6a87bbff666c4933dabfe654835a4 100644 --- a/transporte/templates/transport_details.html +++ b/transporte/templates/transport_details.html @@ -4,7 +4,10 @@ {% if transport %} <h1 class="page-header">Transport Details</h1> -<p class="small">Ticket <a href="https://tickets.c3loc.de/#ticket/zoom/{{ transport.ticket_id }}" target="_blank">#{{ transport.ticket_id }}</a> </p> +<p class="small"> + Ticket <a href="https://tickets.c3loc.de/#ticket/zoom/{{ transport.ticket_id }}" target="_blank">#{{ transport.ticket_id }}</a> + Print <a href="{{ url_for('show_transport', id=transport.id, format='sticker') }}" target="_blank">Transport Sticker</a> +</p> <div class="row"> <div class="col-xs-3 col-sm-2"> diff --git a/transporte/templates/transport_sticker.html b/transporte/templates/transport_sticker.html new file mode 100644 index 0000000000000000000000000000000000000000..7cebfbdcd579c217d51ec8a88b38efb61b5a5571 --- /dev/null +++ b/transporte/templates/transport_sticker.html @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <link rel="shortcut icon" href="/static/gfx/list.jpg"> + + <title>{{ app_name }}</title> + + {% block meta %}{% endblock %} + + <link rel="stylesheet" type="text/css" + href="{{ url_for('static', filename='css/fa-v5.5.0-all.css') }}"> + <link rel="stylesheet" type="text/css" + href="{{ url_for('static', filename='css/bootstrap-4.1.1.min.css') }}"/> + <link rel="stylesheet" type="text/css" + href="{{ url_for('static', filename='css/dataTables-1.10.18.bootstrap4.min.css') }}"/> + <link rel="stylesheet" type="text/css" + href="{{ url_for('static', filename='css/main.css') }}"/> + + <script type="text/javascript" + src="{{ url_for('static', filename='js/jquery-3.3.1.min.js') }}"></script> + <script type="text/javascript" + src="{{ url_for('static', filename='js/bootstrap-4.1.1.min.js') }}"></script> + <script type="text/javascript" + src="{{ url_for('static', filename='js/jquery.dataTables-1.10.18.min.js') }}"></script> + <script type="text/javascript" + src="{{ url_for('static', filename='js/dataTables-1.10.18.bootstrap4.min.js') }}"></script> + + <style> + body{ + width: 21cm; + height: 29.7cm; + margin: 30mm 45mm 30mm 45mm; + font-size: 2rem; + } + </style> +</head> + +<body> + <div class="container" style="position:relative;height:100%;"> + <h1>Transport Sticker</h1> + <p><strong>Inhalt:</strong><br/><div style="height:3em;border-bottom:solid 1px;"></div></p> + <p><strong>Ziel:</strong><br/><div style="border-bottom:solid 1px;">{{ transport.destination|nl2br }}</div></p> + <p><strong>Datum:</strong><br/><div style="border-bottom:solid 1px;">{{ transport.date|datetime }}, {{ transport.time }}</div></p> + <div class="container" style="position: absolute; bottom:1em;"> + <div class="row"> + <div class="col-sm"> + <p>Transport Tool Link</p> + <img src=" {{ qrcode(url_for('show_transport', id=transport.id, _external=True)) }}" /> + </div> +{% if transport.ticket_id %} + <div class="col-sm"> + <p>Ticket Link</p> + <img src=" {{ qrcode('https://tickets.c3loc.de/#ticket/zoom/{}'.format(transport.ticket_id)) }}" /> + </div> +{% endif %} + </div> + </div> + </div> +</body> +</html> diff --git a/transporte/views.py b/transporte/views.py index f7f3dea91a8134b2e8e1a30f266c2c1c1256dba2..c832541db8fa6e0a96db6dc33c93451525a4ffa7 100644 --- a/transporte/views.py +++ b/transporte/views.py @@ -196,8 +196,9 @@ def list_transports(): @app.route('/transports/show/<int:id>') +@app.route('/transports/show/<int:id>/<string:format>') @login_required -def show_transport(id=None): +def show_transport(id=None, format=None): transport = Transport.query.get(id) if transport is None or not ( @@ -210,7 +211,11 @@ def show_transport(id=None): elif transport.cancelled: flash('Transport was cancelled!', 'danger') - return render_template('transport_details.html', transport=transport) + if format == 'sticker': + template = 'transport_sticker.html' + else: + template = 'transport_details.html' + return render_template(template, transport=transport) @app.route('/transports/mark/<mark>/<int:id>', methods=['GET', 'POST'])