forked from CGM_Public/pretix_original
Item-related templates
This commit is contained in:
@@ -31,7 +31,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'control:event.settings.payment' organizer=request.event.organizer.slug event=request.event.slug %}"
|
<a href="{% url 'control:event.settings.payment' organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
{% if "event.settings.payment" == url_name %}class="active"{% endif %}>
|
{% if "event.settings.payment" in url_name %}class="active"{% endif %}>
|
||||||
{% trans "Payment" %}
|
{% trans "Payment" %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -2,7 +2,11 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% trans "Delete event" %}</h1>
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h2 class="panel-title">{% trans "Delete event" %}</h2>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% if request.event.allow_delete %}
|
{% if request.event.allow_delete %}
|
||||||
{% bootstrap_form_errors form layout="inline" %}
|
{% bootstrap_form_errors form layout="inline" %}
|
||||||
<p>
|
<p>
|
||||||
@@ -57,7 +61,8 @@
|
|||||||
<input type="hidden" name="live" value="false">
|
<input type="hidden" name="live" value="false">
|
||||||
|
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<a href="{% url "control:event.shredder.start" event=request.event.slug organizer=request.organizer.slug %}" class="btn btn-danger btn-save">
|
<a href="{% url "control:event.shredder.start" event=request.event.slug organizer=request.organizer.slug %}"
|
||||||
|
class="btn btn-danger btn-save">
|
||||||
<span class="fa fa-eraser"></span>
|
<span class="fa fa-eraser"></span>
|
||||||
{% trans "Delete personal data" %}
|
{% trans "Delete personal data" %}
|
||||||
</a>
|
</a>
|
||||||
@@ -71,7 +76,8 @@
|
|||||||
<p>
|
<p>
|
||||||
{% trans "However, since your shop is offline, it is only visible to the organizing team according to the permissions you configured." %}
|
{% trans "However, since your shop is offline, it is only visible to the organizing team according to the permissions you configured." %}
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<a href="{% url "control:event.shredder.start" event=request.event.slug organizer=request.organizer.slug %}" class="btn btn-danger btn-save">
|
<a href="{% url "control:event.shredder.start" event=request.event.slug organizer=request.organizer.slug %}"
|
||||||
|
class="btn btn-danger btn-save">
|
||||||
<span class="fa fa-eraser"></span>
|
<span class="fa fa-eraser"></span>
|
||||||
{% trans "Delete personal data" %}
|
{% trans "Delete personal data" %}
|
||||||
</a>
|
</a>
|
||||||
@@ -79,4 +85,6 @@
|
|||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
{% load staticfiles %}
|
{% load staticfiles %}
|
||||||
{% block title %}{{ request.event.name }}{% endblock %}
|
{% block title %}{{ request.event.name }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-body">
|
||||||
<h1>
|
<h1>
|
||||||
{{ request.event.name }}
|
{{ request.event.name }}
|
||||||
<small>
|
<small>
|
||||||
@@ -15,6 +17,8 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</small>
|
</small>
|
||||||
</h1>
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% if actions|length > 0 %}
|
{% if actions|length > 0 %}
|
||||||
<div class="panel panel-danger">
|
<div class="panel panel-danger">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
@@ -71,7 +75,6 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p> </p>
|
|
||||||
<div class="panel panel-default items">
|
<div class="panel panel-default items">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h3 class="panel-title">
|
<h3 class="panel-title">
|
||||||
|
|||||||
@@ -5,8 +5,11 @@
|
|||||||
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form_errors form %}
|
{% bootstrap_form_errors form %}
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Invoicing" %}</legend>
|
<legend>{% trans "Invoicing" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.invoice_address_asked layout="control" %}
|
{% bootstrap_field form.invoice_address_asked layout="control" %}
|
||||||
{% bootstrap_field form.invoice_address_required layout="control" %}
|
{% bootstrap_field form.invoice_address_required layout="control" %}
|
||||||
{% bootstrap_field form.invoice_name_required layout="control" %}
|
{% bootstrap_field form.invoice_name_required layout="control" %}
|
||||||
@@ -24,14 +27,16 @@
|
|||||||
{% bootstrap_field form.invoice_additional_text layout="control" %}
|
{% bootstrap_field form.invoice_additional_text layout="control" %}
|
||||||
{% bootstrap_field form.invoice_footer_text layout="control" %}
|
{% bootstrap_field form.invoice_footer_text layout="control" %}
|
||||||
{% bootstrap_field form.invoice_logo_image layout="control" %}
|
{% bootstrap_field form.invoice_logo_image layout="control" %}
|
||||||
</fieldset>
|
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<button type="submit" class="btn btn-default btn-lg" name="preview" value="preview" formtarget="_blank">
|
<button type="submit" class="btn btn-default btn-lg" name="preview" value="preview"
|
||||||
|
formtarget="_blank">
|
||||||
{% trans "Save and show preview" %}
|
{% trans "Save and show preview" %}
|
||||||
</button>
|
</button>
|
||||||
<button type="submit" class="btn btn-primary btn-save">
|
<button type="submit" class="btn btn-primary btn-save">
|
||||||
{% trans "Save" %}
|
{% trans "Save" %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
{% bootstrap_field form.mail_bcc layout="control" %}
|
{% bootstrap_field form.mail_bcc layout="control" %}
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="panel-group" id="questions_group">
|
<div class="" id="questions_group">
|
||||||
{% blocktrans asvar title_placed_order %}Placed order{% endblocktrans %}
|
{% blocktrans asvar title_placed_order %}Placed order{% endblocktrans %}
|
||||||
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_placed" title=title_placed_order items="mail_text_order_placed" %}
|
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_placed" title=title_placed_order items="mail_text_order_placed" %}
|
||||||
|
|
||||||
|
|||||||
@@ -58,12 +58,12 @@
|
|||||||
{% bootstrap_field form.payment_term_expire_automatically layout="control" %}
|
{% bootstrap_field form.payment_term_expire_automatically layout="control" %}
|
||||||
{% bootstrap_field form.payment_term_accept_late layout="control" %}
|
{% bootstrap_field form.payment_term_accept_late layout="control" %}
|
||||||
{% bootstrap_field form.tax_rate_default layout="control" %}
|
{% bootstrap_field form.tax_rate_default layout="control" %}
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<button type="submit" class="btn btn-primary btn-save">
|
<button type="submit" class="btn btn-primary btn-save">
|
||||||
{% trans "Save" %}
|
{% trans "Save" %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -4,15 +4,20 @@
|
|||||||
{% block inside %}
|
{% block inside %}
|
||||||
<form action="" method="post" class="form-horizontal form-plugins">
|
<form action="" method="post" class="form-horizontal form-plugins">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<fieldset>
|
<p>
|
||||||
<legend>
|
|
||||||
<a href="{% url 'control:event.settings.payment' event=request.event.slug organizer=request.organizer.slug %}"
|
<a href="{% url 'control:event.settings.payment' event=request.event.slug organizer=request.organizer.slug %}"
|
||||||
class="btn btn-default btn-sm btn-link">
|
class="btn btn-default">
|
||||||
<span class="fa fa-caret-left"></span>
|
<span class="fa fa-caret-left"></span>
|
||||||
{% trans "Back" %}
|
{% trans "Back" %}
|
||||||
</a>
|
</a>
|
||||||
|
</p>
|
||||||
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<legend>
|
||||||
{% trans "Payment provider:" %} {{ provider.verbose_name }}
|
{% trans "Payment provider:" %} {{ provider.verbose_name }}
|
||||||
</legend>
|
</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_form form layout='control' %}
|
{% bootstrap_form form layout='control' %}
|
||||||
{% if settings_content %}{{ settings_content|safe }}{% endif %}
|
{% if settings_content %}{{ settings_content|safe }}{% endif %}
|
||||||
<p> </p>
|
<p> </p>
|
||||||
@@ -20,7 +25,8 @@
|
|||||||
<strong>{% trans "Warning:" %}</strong>
|
<strong>{% trans "Warning:" %}</strong>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Please note that EU Directive 2015/2366 bans surcharging payment fees for most common payment
|
Please note that EU Directive 2015/2366 bans surcharging payment fees for most common payment
|
||||||
methods within the European Union. If in doubt, consult a lawyer or refrain from charging payment
|
methods within the European Union. If in doubt, consult a lawyer or refrain from charging
|
||||||
|
payment
|
||||||
fees.
|
fees.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
<br>
|
<br>
|
||||||
@@ -29,6 +35,7 @@
|
|||||||
pass it on to your customers.
|
pass it on to your customers.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<button type="submit" class="btn btn-primary btn-save">
|
<button type="submit" class="btn btn-primary btn-save">
|
||||||
|
|||||||
@@ -3,16 +3,23 @@
|
|||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% block title %}{% trans "Delete tax rule" %}{% endblock %}
|
{% block title %}{% trans "Delete tax rule" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<legend>{% trans "Delete tax rule" %}</legend>
|
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<legend>{% trans "Delete tax rule" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if possible %}
|
{% if possible %}
|
||||||
<p>{% blocktrans %}Are you sure you want to delete the tax rule <strong>{{ taxrule }}</strong>?{% endblocktrans %}</p>
|
<p>{% blocktrans %}Are you sure you want to delete the tax rule <strong>{{ taxrule }}</strong>
|
||||||
|
?{% endblocktrans %}</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>{% blocktrans %}You cannot delete a tax rule that is in use for a product or has been in use for any existing orders.{% endblocktrans %}</p>
|
<p>{% blocktrans %}You cannot delete a tax rule that is in use for a product or has been in use for
|
||||||
|
any existing orders.{% endblocktrans %}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<a href="{% url "control:event.settings.tax" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn
|
<a href="{% url "control:event.settings.tax" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn
|
||||||
btn-default btn-cancel">
|
btn-default btn-cancel">
|
||||||
{% trans "Cancel" %}
|
{% trans "Cancel" %}
|
||||||
</a>
|
</a>
|
||||||
@@ -22,5 +29,7 @@ btn-default btn-cancel">
|
|||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -10,17 +10,23 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
|
<form action="" method="post" class="form-horizontal">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
{% if rule %}
|
{% if rule %}
|
||||||
<legend>{% blocktrans with name=rule.name %}Tax rule: {{ name }}{% endblocktrans %}</legend>
|
<legend>{% blocktrans with name=rule.name %}Tax rule: {{ name }}{% endblocktrans %}</legend>
|
||||||
{% else %}
|
{% else %}
|
||||||
<legend>{% trans "Tax rule" %}</legend>
|
<legend>{% trans "Tax rule" %}</legend>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<form action="" method="post" class="form-horizontal">
|
</div>
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_form_errors form %}
|
{% bootstrap_form_errors form %}
|
||||||
{% bootstrap_field form.name layout="control" %}
|
{% bootstrap_field form.name layout="control" %}
|
||||||
{% bootstrap_field form.rate addon_after="%" layout="control" %}
|
{% bootstrap_field form.rate addon_after="%" layout="control" %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
<details class="panel panel-default"
|
<details class="panel panel-default"
|
||||||
{% if rule.eu_reverse_charge or rule.has_custom_rules or form.errors %}open{% endif %}>
|
{% if rule.eu_reverse_charge or rule.has_custom_rules or form.errors %}open{% endif %}>
|
||||||
<summary class="panel-heading">
|
<summary class="panel-heading">
|
||||||
@@ -31,7 +37,6 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<div id="advanced">
|
<div id="advanced">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<legend>{% trans "Advanced settings" %}</legend>
|
|
||||||
<div class="alert alert-legal">
|
<div class="alert alert-legal">
|
||||||
{% blocktrans trimmed with docs="https://docs.pretix.eu/en/latest/user/events/taxes.html" %}
|
{% blocktrans trimmed with docs="https://docs.pretix.eu/en/latest/user/events/taxes.html" %}
|
||||||
These settings are intended for advanced users. See the
|
These settings are intended for advanced users. See the
|
||||||
@@ -47,8 +52,10 @@
|
|||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning">
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
These settings are intended for professional users with very specific taxation situations.
|
These settings are intended for professional users with very specific taxation situations.
|
||||||
If you create any rule here, the reverse charge settings above will be ignored. The rules will be
|
If you create any rule here, the reverse charge settings above will be ignored. The rules
|
||||||
checked in order and once the first rule matches the order, it will be used and all further rules will
|
will be
|
||||||
|
checked in order and once the first rule matches the order, it will be used and all further
|
||||||
|
rules will
|
||||||
be ignored. If no rule matches, tax will be charged.
|
be ignored. If no rule matches, tax will be charged.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
{% trans "All of these rules will only apply if an invoice address is set." %}
|
{% trans "All of these rules will only apply if an invoice address is set." %}
|
||||||
|
|||||||
@@ -2,9 +2,12 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}{% trans "Tax rules" %}{% endblock %}
|
{% block title %}{% trans "Tax rules" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Tax rules" %}</legend>
|
<legend>{% trans "Tax rules" %}</legend>
|
||||||
|
</div>
|
||||||
{% if taxrules|length == 0 %}
|
{% if taxrules|length == 0 %}
|
||||||
<div class="empty-collection">
|
<div class="panel-body empty-collection">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
You haven't created any tax rules yet.
|
You haven't created any tax rules yet.
|
||||||
@@ -15,10 +18,11 @@
|
|||||||
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new tax rule" %}</a>
|
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new tax rule" %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>
|
<div class="panel-body">
|
||||||
<a href="{% url "control:event.settings.tax.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new tax rule" %}
|
<a href="{% url "control:event.settings.tax.add" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new tax rule" %}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</div>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-hover table-quotas">
|
<table class="table table-hover table-quotas">
|
||||||
<thead>
|
<thead>
|
||||||
@@ -32,20 +36,26 @@
|
|||||||
{% for tr in taxrules %}
|
{% for tr in taxrules %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<strong><a href="{% url "control:event.settings.tax.edit" organizer=request.event.organizer.slug event=request.event.slug rule=tr.id %}">
|
<strong><a
|
||||||
|
href="{% url "control:event.settings.tax.edit" organizer=request.event.organizer.slug event=request.event.slug rule=tr.id %}">
|
||||||
{{ tr.name }}
|
{{ tr.name }}
|
||||||
</a></strong>
|
</a></strong>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ tr.rate }} %</td>
|
<td>{{ tr.rate }} %</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<a href="{% url "control:event.settings.tax.edit" organizer=request.event.organizer.slug event=request.event.slug rule=tr.id %}" class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
<a href="{% url "control:event.settings.tax.edit" organizer=request.event.organizer.slug event=request.event.slug rule=tr.id %}"
|
||||||
<a href="{% url "control:event.settings.tax.delete" organizer=request.event.organizer.slug event=request.event.slug rule=tr.id %}" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
||||||
|
<a href="{% url "control:event.settings.tax.delete" organizer=request.event.organizer.slug event=request.event.slug rule=tr.id %}"
|
||||||
|
class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
<div class="panel-body">
|
||||||
{% include "pretixcontrol/pagination.html" %}
|
{% include "pretixcontrol/pagination.html" %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -5,17 +5,23 @@
|
|||||||
{% load eventurl %}
|
{% load eventurl %}
|
||||||
{% load eventsignal %}
|
{% load eventsignal %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Widget" %}</legend>
|
<legend>{% trans "Widget" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
The pretix widget is a way to embed your ticket shop into your event website. This way, your visitors can
|
The pretix widget is a way to embed your ticket shop into your event website. This way, your
|
||||||
|
visitors can
|
||||||
buy their ticket right away without leaving your website.
|
buy their ticket right away without leaving your website.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
{% if valid %}
|
{% if valid %}
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
To embed the widget onto your website, simply copy the following code to the <code><head></code>
|
To embed the widget onto your website, simply copy the following code to the
|
||||||
|
<code><head></code>
|
||||||
section of your website:
|
section of your website:
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
@@ -32,7 +38,9 @@
|
|||||||
{% abseventurl request.event "presale:event.index" as indexurl %}
|
{% abseventurl request.event "presale:event.index" as indexurl %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if form.cleaned_data.compatibility_mode %}
|
{% if form.cleaned_data.compatibility_mode %}
|
||||||
<pre><div class="pretix-widget-compat" event="{% abseventurl request.event "presale:event.index" %}"{% if form.cleaned_data.subevent %} subevent="{{ form.cleaned_data.subevent.pk }}"{% endif %}{% if form.cleaned_data.voucher %} voucher="{{ form.cleaned_data.voucher }}"{% endif %}></div>
|
<pre><div class="pretix-widget-compat" event="{% abseventurl request.event "presale:event.index" %}"
|
||||||
|
{% if form.cleaned_data.subevent %} subevent="{{ form.cleaned_data.subevent.pk }}"{% endif %}
|
||||||
|
{% if form.cleaned_data.voucher %} voucher="{{ form.cleaned_data.voucher }}"{% endif %}></div>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div class="pretix-widget">
|
<div class="pretix-widget">
|
||||||
<div class="pretix-widget-info-message">
|
<div class="pretix-widget-info-message">
|
||||||
@@ -45,7 +53,7 @@
|
|||||||
</noscript>
|
</noscript>
|
||||||
</pre>
|
</pre>
|
||||||
{% else %}
|
{% else %}
|
||||||
<pre><pretix-widget event="{% abseventurl request.event "presale:event.index" %}"{% if form.cleaned_data.subevent %} subevent="{{ form.cleaned_data.subevent.pk }}"{% endif %}{% if form.cleaned_data.voucher %} voucher="{{ form.cleaned_data.voucher }}"{% endif %}></pretix-widget>
|
<pre><pretix-widget event="{% abseventurl request.event "presale:event.index" %}" {% if form.cleaned_data.subevent %} subevent="{{ form.cleaned_data.subevent.pk }}"{% endif %} {% if form.cleaned_data.voucher %} voucher="{{ form.cleaned_data.voucher }}"{% endif %}></pretix-widget>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div class="pretix-widget">
|
<div class="pretix-widget">
|
||||||
<div class="pretix-widget-info-message">
|
<div class="pretix-widget-info-message">
|
||||||
@@ -82,5 +90,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
{% eventsignal request.event "pretix.control.signals.event_settings_widget" request=request %}
|
{% eventsignal request.event "pretix.control.signals.event_settings_widget" request=request %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -3,17 +3,21 @@
|
|||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% load formset_tags %}
|
{% load formset_tags %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<p>
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-body">
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
With add-ons, you can specify products that can be bought as an addition to this product. For example, if
|
With add-ons, you can specify products that can be bought as an addition to this product. For example,
|
||||||
|
if
|
||||||
you host a conference with a base conference ticket and a number of workshops, you could define the
|
you host a conference with a base conference ticket and a number of workshops, you could define the
|
||||||
workshops as add-ons to the conference ticket. With this configuration, the workshops cannot be bought
|
workshops as add-ons to the conference ticket. With this configuration, the workshops cannot be bought
|
||||||
on their own but only in combination with a conference ticket. You can here specify categories of products
|
on their own but only in combination with a conference ticket. You can here specify categories of
|
||||||
|
products
|
||||||
that can be used as add-ons to this product. You can also specify the minimum and maximum number of
|
that can be used as add-ons to this product. You can also specify the minimum and maximum number of
|
||||||
add-ons of the given category that can or need to be chosen. The user can buy every add-on from the
|
add-ons of the given category that can or need to be chosen. The user can buy every add-on from the
|
||||||
category at most once. If an add-on product has multiple variations, only one of them can be bought.
|
category at most once. If an add-on product has multiple variations, only one of them can be bought.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</div>
|
||||||
|
</div>
|
||||||
<form class="form-horizontal branches" method="post" action="">
|
<form class="form-horizontal branches" method="post" action="">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="formset" data-formset data-formset-prefix="{{ formset.prefix }}">
|
<div class="formset" data-formset data-formset-prefix="{{ formset.prefix }}">
|
||||||
|
|||||||
@@ -3,7 +3,11 @@
|
|||||||
{% block title %}{{ object.name }} :: {% trans "Product" %}{% endblock %}
|
{% block title %}{{ object.name }} :: {% trans "Product" %}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if object.id %}
|
{% if object.id %}
|
||||||
<h1>{% trans "Modify product:" %} {{ object.name }}</h1>
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h1 class="panel-title">{% trans "Modify product:" %} {{ object.name }}</h1>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<ul class="nav nav-pills">
|
<ul class="nav nav-pills">
|
||||||
<li {% if "event.item" == url_name %}class="active"{% endif %}>
|
<li {% if "event.item" == url_name %}class="active"{% endif %}>
|
||||||
<a href="{% url 'control:event.item' organizer=request.event.organizer.slug event=request.event.slug item=object.id %}">
|
<a href="{% url 'control:event.item' organizer=request.event.organizer.slug event=request.event.slug item=object.id %}">
|
||||||
@@ -23,14 +27,11 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
{% else %}
|
</div>
|
||||||
<h1>{% trans "Create product" %}</h1>
|
</div>
|
||||||
<p>{% blocktrans trimmed %}
|
|
||||||
You will be able to adjust further settings in the next step.
|
|
||||||
{% endblocktrans %}</p>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if object.id and not object.quotas.exists %}
|
{% if object.id and not object.quotas.exists %}
|
||||||
<div class="alert alert-warning">
|
<div class="alert 1alert-warning">
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Please note that your product will <strong>not</strong> be available for sale until you have added your
|
Please note that your product will <strong>not</strong> be available for sale until you have added your
|
||||||
item to an existing or newly created quota.
|
item to an existing or newly created quota.
|
||||||
|
|||||||
@@ -1,14 +1,20 @@
|
|||||||
{% extends "pretixcontrol/item/base.html" %}
|
{% extends "pretixcontrol/item/base.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% block inside %}
|
|
||||||
{% load static %}
|
{% load static %}
|
||||||
<script type="text/javascript" src="{% static "pretixcontrol/js/ui/hidequota.js" %}"></script>
|
{% block inside %}
|
||||||
|
<script type="text/javascript" src="{% static "pretixcontrol/js/ui/hidequota.js" %}"></script>
|
||||||
|
|
||||||
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "General information" %}</legend>
|
<legend>{% trans "General information" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<p>{% blocktrans trimmed %}
|
||||||
|
You will be able to adjust further settings in the next step.
|
||||||
|
{% endblocktrans %}</p>
|
||||||
{% bootstrap_field form.name layout="control" %}
|
{% bootstrap_field form.name layout="control" %}
|
||||||
<div class="internal-name-wrapper">
|
<div class="internal-name-wrapper">
|
||||||
{% bootstrap_field form.internal_name layout="control" %}
|
{% bootstrap_field form.internal_name layout="control" %}
|
||||||
@@ -17,10 +23,14 @@
|
|||||||
{% bootstrap_field form.has_variations layout="control" %}
|
{% bootstrap_field form.has_variations layout="control" %}
|
||||||
{% bootstrap_field form.category layout="control" %}
|
{% bootstrap_field form.category layout="control" %}
|
||||||
{% bootstrap_field form.admission layout="control" %}
|
{% bootstrap_field form.admission layout="control" %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
{% if form.quota_option %}
|
{% if form.quota_option %}
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Quota settings" %}</legend>
|
<legend>{% trans "Quota settings" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.quota_option layout="control" %}
|
{% bootstrap_field form.quota_option layout="control" %}
|
||||||
<div id="existing-quota-group">
|
<div id="existing-quota-group">
|
||||||
{% bootstrap_field form.quota_add_existing layout="control" %}
|
{% bootstrap_field form.quota_add_existing layout="control" %}
|
||||||
@@ -29,12 +39,17 @@
|
|||||||
{% bootstrap_field form.quota_add_new_name layout="control" %}
|
{% bootstrap_field form.quota_add_new_name layout="control" %}
|
||||||
{% bootstrap_field form.quota_add_new_size layout="control" %}
|
{% bootstrap_field form.quota_add_new_size layout="control" %}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Price settings" %}</legend>
|
<legend>{% trans "Price settings" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.default_price layout="control" %}
|
{% bootstrap_field form.default_price layout="control" %}
|
||||||
{% bootstrap_field form.tax_rule layout="control" %}
|
{% bootstrap_field form.tax_rule layout="control" %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<button type="submit" class="btn btn-primary btn-save">
|
<button type="submit" class="btn btn-primary btn-save">
|
||||||
|
|||||||
@@ -6,8 +6,11 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12 col-lg-10">
|
<div class="col-xs-12 col-lg-10">
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "General information" %}</legend>
|
<legend>{% trans "General information" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.name layout="control" %}
|
{% bootstrap_field form.name layout="control" %}
|
||||||
<div class="internal-name-wrapper">
|
<div class="internal-name-wrapper">
|
||||||
{% bootstrap_field form.internal_name layout="control" %}
|
{% bootstrap_field form.internal_name layout="control" %}
|
||||||
@@ -17,15 +20,23 @@
|
|||||||
{% bootstrap_field form.admission layout="control" %}
|
{% bootstrap_field form.admission layout="control" %}
|
||||||
{% bootstrap_field form.description layout="control" %}
|
{% bootstrap_field form.description layout="control" %}
|
||||||
{% bootstrap_field form.picture layout="control" %}
|
{% bootstrap_field form.picture layout="control" %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Price settings" %}</legend>
|
<legend>{% trans "Price settings" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.default_price addon_after=request.event.currency layout="control" %}
|
{% bootstrap_field form.default_price addon_after=request.event.currency layout="control" %}
|
||||||
{% bootstrap_field form.tax_rule layout="control" %}
|
{% bootstrap_field form.tax_rule layout="control" %}
|
||||||
{% bootstrap_field form.free_price layout="control" %}
|
{% bootstrap_field form.free_price layout="control" %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Availability" %}</legend>
|
<legend>{% trans "Availability" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.available_from layout="control" %}
|
{% bootstrap_field form.available_from layout="control" %}
|
||||||
{% bootstrap_field form.available_until layout="control" %}
|
{% bootstrap_field form.available_until layout="control" %}
|
||||||
{% bootstrap_field form.max_per_order layout="control" %}
|
{% bootstrap_field form.max_per_order layout="control" %}
|
||||||
@@ -33,18 +44,32 @@
|
|||||||
{% bootstrap_field form.require_voucher layout="control" %}
|
{% bootstrap_field form.require_voucher layout="control" %}
|
||||||
{% bootstrap_field form.hide_without_voucher layout="control" %}
|
{% bootstrap_field form.hide_without_voucher layout="control" %}
|
||||||
{% bootstrap_field form.allow_cancel layout="control" %}
|
{% bootstrap_field form.allow_cancel layout="control" %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Check-in" %}</legend>
|
<legend>{% trans "Check-in" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.checkin_attention layout="control" %}
|
{% bootstrap_field form.checkin_attention layout="control" %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Additional settings" %}</legend>
|
<legend>{% trans "Additional settings" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.original_price addon_after=request.event.currency layout="control" %}
|
{% bootstrap_field form.original_price addon_after=request.event.currency layout="control" %}
|
||||||
{% for f in plugin_forms %}
|
{% for f in plugin_forms %}
|
||||||
{% bootstrap_form f layout="control" %}
|
{% bootstrap_form f layout="control" %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
<div class="form-group submit-group">
|
||||||
|
<button type="submit" class="btn btn-primary btn-save">
|
||||||
|
{% trans "Save" %}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-lg-2">
|
<div class="col-xs-12 col-lg-2">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
@@ -57,10 +82,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group submit-group">
|
|
||||||
<button type="submit" class="btn btn-primary btn-save">
|
|
||||||
{% trans "Save" %}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -2,14 +2,12 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}{% trans "Product categories" %}{% endblock %}
|
{% block title %}{% trans "Product categories" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Product categories" %}</h1>
|
<div class="panel panel-default">
|
||||||
<p>
|
<div class="panel-heading">
|
||||||
{% blocktrans trimmed %}
|
<h1 class="panel-title">{% trans "Product categories" %}</h1>
|
||||||
You can use categories to group multiple products together in an organized way.
|
</div>
|
||||||
{% endblocktrans %}
|
|
||||||
</p>
|
|
||||||
{% if categories|length == 0 %}
|
{% if categories|length == 0 %}
|
||||||
<div class="empty-collection">
|
<div class="empty-collection panel-body">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
You haven't created any categories yet.
|
You haven't created any categories yet.
|
||||||
@@ -20,10 +18,11 @@
|
|||||||
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new category" %}</a>
|
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new category" %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>
|
<div class="panel-body">
|
||||||
<a href="{% url "control:event.items.categories.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new category" %}
|
<a href="{% url "control:event.items.categories.add" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new category" %}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</div>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-hover">
|
<table class="table table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
@@ -37,21 +36,31 @@
|
|||||||
{% for c in categories %}
|
{% for c in categories %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<strong><a href="{% url "control:event.items.categories.edit" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}">{{ c.name }}</a></strong>
|
<strong><a
|
||||||
|
href="{% url "control:event.items.categories.edit" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}">{{ c.name }}</a></strong>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="{% url "control:event.items.categories.up" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}" class="btn btn-default btn-sm {% if forloop.counter0 == 0 %}disabled{% endif %}"><i class="fa fa-arrow-up"></i></a>
|
<a href="{% url "control:event.items.categories.up" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}"
|
||||||
<a href="{% url "control:event.items.categories.down" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}" class="btn btn-default btn-sm {% if forloop.revcounter0 == 0 %}disabled{% endif %}"><i class="fa fa-arrow-down"></i></a>
|
class="btn btn-default btn-sm {% if forloop.counter0 == 0 %}disabled{% endif %}"><i
|
||||||
|
class="fa fa-arrow-up"></i></a>
|
||||||
|
<a href="{% url "control:event.items.categories.down" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}"
|
||||||
|
class="btn btn-default btn-sm {% if forloop.revcounter0 == 0 %}disabled{% endif %}"><i
|
||||||
|
class="fa fa-arrow-down"></i></a>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<a href="{% url "control:event.items.categories.edit" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}" class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
<a href="{% url "control:event.items.categories.edit" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}"
|
||||||
<a href="{% url "control:event.items.categories.delete" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
||||||
|
<a href="{% url "control:event.items.categories.delete" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}"
|
||||||
|
class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
{% include "pretixcontrol/pagination.html" %}
|
{% include "pretixcontrol/pagination.html" %}
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -3,20 +3,28 @@
|
|||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% block title %}{% trans "Product category" %}{% endblock %}
|
{% block title %}{% trans "Product category" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Product category" %}</h1>
|
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form_errors form %}
|
{% bootstrap_form_errors form %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12{% if category %} col-lg-10{% endif %}">
|
<div class="col-xs-12{% if category %} col-lg-10{% endif %}">
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
<legend>{% trans "General information" %}</legend>
|
<div class="panel-heading">
|
||||||
|
<legend>{% trans "Product category" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.name layout="control" %}
|
{% bootstrap_field form.name layout="control" %}
|
||||||
<div class="internal-name-wrapper">
|
<div class="internal-name-wrapper">
|
||||||
{% bootstrap_field form.internal_name layout="control" %}
|
{% bootstrap_field form.internal_name layout="control" %}
|
||||||
</div>
|
</div>
|
||||||
{% bootstrap_field form.description layout="control" %}
|
{% bootstrap_field form.description layout="control" %}
|
||||||
{% bootstrap_field form.is_addon layout="control" %}
|
{% bootstrap_field form.is_addon layout="control" %}
|
||||||
|
</div>
|
||||||
|
<div class="form-group submit-group">
|
||||||
|
<button type="submit" class="btn btn-primary btn-save">
|
||||||
|
{% trans "Save" %}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
{% if category %}
|
{% if category %}
|
||||||
@@ -32,10 +40,5 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group submit-group">
|
|
||||||
<button type="submit" class="btn btn-primary btn-save">
|
|
||||||
{% trans "Save" %}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -3,14 +3,19 @@
|
|||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% block title %}{% trans "Delete product category" %}{% endblock %}
|
{% block title %}{% trans "Delete product category" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Delete product category" %}</h1>
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h1 class="panel-title">{% trans "Delete product category" %}</h1>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<p>{% blocktrans trimmed with name=category.name %}
|
<p>{% blocktrans trimmed with name=category.name %}
|
||||||
Are you sure you want to delete the category <strong>{{ name }}</strong>?
|
Are you sure you want to delete the category <strong>{{ name }}</strong>?
|
||||||
{% endblocktrans %}</p>
|
{% endblocktrans %}</p>
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<a href="{% url "control:event.items.categories" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default btn-cancel">
|
<a href="{% url "control:event.items.categories" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn btn-default btn-cancel">
|
||||||
{% trans "Cancel" %}
|
{% trans "Cancel" %}
|
||||||
</a>
|
</a>
|
||||||
<button type="submit" class="btn btn-danger btn-save">
|
<button type="submit" class="btn btn-danger btn-save">
|
||||||
@@ -18,4 +23,6 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -2,16 +2,12 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}{% trans "Products" %}{% endblock %}
|
{% block title %}{% trans "Products" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Products" %}</h1>
|
<div class="panel panel-default">
|
||||||
<p>
|
<div class="panel-heading">
|
||||||
{% blocktrans trimmed %}
|
<h1 class="panel-title">{% trans "Products" %}</h1>
|
||||||
Below, you find a list of all available products. You can click on a product name to inspect and change
|
</div>
|
||||||
product details. You can also use the buttons on the right to change the order of products within a
|
|
||||||
give category.
|
|
||||||
{% endblocktrans %}
|
|
||||||
</p>
|
|
||||||
{% if items|length == 0 %}
|
{% if items|length == 0 %}
|
||||||
<div class="empty-collection">
|
<div class="empty-collection panel-body">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
You haven't created any products yet.
|
You haven't created any products yet.
|
||||||
@@ -22,10 +18,10 @@
|
|||||||
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new product" %}</a>
|
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new product" %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>
|
<div class="panel-body">
|
||||||
<a href="{% url "control:event.items.add" organizer=request.event.organizer.slug event=request.event.slug %}"
|
<a href="{% url "control:event.items.add" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new product" %}</a>
|
class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new product" %}</a>
|
||||||
</p>
|
</div>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-condensed table-hover">
|
<table class="table table-condensed table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
@@ -54,35 +50,46 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if i.available_from or i.available_until %}
|
{% if i.available_from or i.available_until %}
|
||||||
<span class="fa fa-clock-o fa-fw text-muted" data-toggle="tooltip" title="{% trans "Only available in a limited timeframe" %}">
|
<span class="fa fa-clock-o fa-fw text-muted" data-toggle="tooltip"
|
||||||
|
title="{% trans "Only available in a limited timeframe" %}">
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if i.admission %}
|
{% if i.admission %}
|
||||||
<span class="fa fa-user fa-fw text-muted" data-toggle="tooltip" title="{% trans "Admission ticket" %}"></span>
|
<span class="fa fa-user fa-fw text-muted" data-toggle="tooltip"
|
||||||
|
title="{% trans "Admission ticket" %}"></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if i.var_count %}
|
{% if i.var_count %}
|
||||||
<span class="fa fa-list-ul fa-fw text-muted" data-toggle="tooltip" title="{% trans "Product with variations" %}"></span>
|
<span class="fa fa-list-ul fa-fw text-muted" data-toggle="tooltip"
|
||||||
|
title="{% trans "Product with variations" %}"></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if i.hide_without_voucher %}
|
{% if i.hide_without_voucher %}
|
||||||
<span class="fa fa-ticket fa-fw text-muted" data-toggle="tooltip" title="{% trans "Only visible with a voucher" %}"></span>
|
<span class="fa fa-ticket fa-fw text-muted" data-toggle="tooltip"
|
||||||
|
title="{% trans "Only visible with a voucher" %}"></span>
|
||||||
{% elif i.require_voucher %}
|
{% elif i.require_voucher %}
|
||||||
<span class="fa fa-ticket fa-fw text-muted" data-toggle="tooltip" title="{% trans "Can only bought using a voucher" %}"></span>
|
<span class="fa fa-ticket fa-fw text-muted" data-toggle="tooltip"
|
||||||
|
title="{% trans "Can only bought using a voucher" %}"></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>{% if i.category %}{{ i.category.name }}{% endif %}</td>
|
<td>{% if i.category %}{{ i.category.name }}{% endif %}</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="{% url "control:event.items.up" organizer=request.event.organizer.slug event=request.event.slug item=i.id %}" class="btn btn-default btn-sm {% if forloop.counter0 == 0 %}disabled{% endif %}"><i class="fa fa-arrow-up"></i></a>
|
<a href="{% url "control:event.items.up" organizer=request.event.organizer.slug event=request.event.slug item=i.id %}"
|
||||||
<a href="{% url "control:event.items.down" organizer=request.event.organizer.slug event=request.event.slug item=i.id %}" class="btn btn-default btn-sm {% if forloop.revcounter0 == 0 %}disabled{% endif %}"><i class="fa fa-arrow-down"></i></a>
|
class="btn btn-default btn-sm {% if forloop.counter0 == 0 %}disabled{% endif %}"><i
|
||||||
|
class="fa fa-arrow-up"></i></a>
|
||||||
|
<a href="{% url "control:event.items.down" organizer=request.event.organizer.slug event=request.event.slug item=i.id %}"
|
||||||
|
class="btn btn-default btn-sm {% if forloop.revcounter0 == 0 %}disabled{% endif %}"><i
|
||||||
|
class="fa fa-arrow-down"></i></a>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=i.id %}" class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
<a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=i.id %}"
|
||||||
<a href="{% url "control:event.items.delete" organizer=request.event.organizer.slug event=request.event.slug item=i.id %}" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
||||||
|
<a href="{% url "control:event.items.delete" organizer=request.event.organizer.slug event=request.event.slug item=i.id %}"
|
||||||
|
class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -90,6 +97,6 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{% include "pretixcontrol/pagination.html" %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -5,26 +5,39 @@
|
|||||||
{% load formset_tags %}
|
{% load formset_tags %}
|
||||||
{% block title %}{% blocktrans with name=question.question %}Question: {{ name }}{% endblocktrans %}{% endblock %}
|
{% block title %}{% blocktrans with name=question.question %}Question: {{ name }}{% endblocktrans %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>
|
<div class="panel panel-default panel-with-btn">
|
||||||
{% blocktrans with name=question.question %}Question: {{ name }}{% endblocktrans %}
|
<div class="panel-heading">
|
||||||
<a href="{% url "control:event.items.questions.edit" event=request.event.slug organizer=request.event.organizer.slug question=question.pk %}"
|
<a href="{% url "control:event.items.questions.edit" event=request.event.slug organizer=request.event.organizer.slug question=question.pk %}"
|
||||||
class="btn btn-default">
|
class="btn btn-default btn-sm pull-right">
|
||||||
<span class="fa fa-edit"></span>
|
<span class="fa fa-edit"></span>
|
||||||
{% trans "Edit question" %}
|
{% trans "Edit question" %}
|
||||||
</a>
|
</a>
|
||||||
|
<h1 class="panel-title">
|
||||||
|
{% blocktrans with name=question.question %}Question: {{ name }}{% endblocktrans %}
|
||||||
</h1>
|
</h1>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<form class="form-inline helper-display-inline" action="" method="get">
|
<form class="form-inline helper-display-inline" action="" method="get">
|
||||||
<p>
|
<p>
|
||||||
<select name="status" class="form-control">
|
<select name="status" class="form-control">
|
||||||
<option value="" {% if request.GET.status == "" %}selected="selected"{% endif %}>{% trans "All orders" %}</option>
|
<option value=""
|
||||||
<option value="p" {% if request.GET.status == "p" %}selected="selected"{% endif %}>{% trans "Paid" %}</option>
|
{% if request.GET.status == "" %}selected="selected"{% endif %}>{% trans "All orders" %}</option>
|
||||||
<option value="n" {% if request.GET.status == "n" %}selected="selected"{% endif %}>{% trans "Pending" %}</option>
|
<option value="p"
|
||||||
<option value="np" {% if request.GET.status == "np" or "status" not in request.GET %}selected="selected"{% endif %}>{% trans "Pending or paid" %}</option>
|
{% if request.GET.status == "p" %}selected="selected"{% endif %}>{% trans "Paid" %}</option>
|
||||||
<option value="o" {% if request.GET.status == "o" %}selected="selected"{% endif %}>{% trans "Pending (overdue)" %}</option>
|
<option value="n"
|
||||||
<option value="e" {% if request.GET.status == "e" %}selected="selected"{% endif %}>{% trans "Expired" %}</option>
|
{% if request.GET.status == "n" %}selected="selected"{% endif %}>{% trans "Pending" %}</option>
|
||||||
<option value="ne" {% if request.GET.status == "ne" %}selected="selected"{% endif %}>{% trans "Pending or expired" %}</option>
|
<option value="np"
|
||||||
<option value="c" {% if request.GET.status == "c" %}selected="selected"{% endif %}>{% trans "Canceled" %}</option>
|
{% if request.GET.status == "np" or "status" not in request.GET %}selected="selected"{% endif %}>{% trans "Pending or paid" %}</option>
|
||||||
<option value="r" {% if request.GET.status == "r" %}selected="selected"{% endif %}>{% trans "Refunded" %}</option>
|
<option value="o"
|
||||||
|
{% if request.GET.status == "o" %}selected="selected"{% endif %}>{% trans "Pending (overdue)" %}</option>
|
||||||
|
<option value="e"
|
||||||
|
{% if request.GET.status == "e" %}selected="selected"{% endif %}>{% trans "Expired" %}</option>
|
||||||
|
<option value="ne"
|
||||||
|
{% if request.GET.status == "ne" %}selected="selected"{% endif %}>{% trans "Pending or expired" %}</option>
|
||||||
|
<option value="c"
|
||||||
|
{% if request.GET.status == "c" %}selected="selected"{% endif %}>{% trans "Canceled" %}</option>
|
||||||
|
<option value="r"
|
||||||
|
{% if request.GET.status == "r" %}selected="selected"{% endif %}>{% trans "Refunded" %}</option>
|
||||||
</select>
|
</select>
|
||||||
<select name="item" class="form-control">
|
<select name="item" class="form-control">
|
||||||
<option value="">{% trans "All products" %}</option>
|
<option value="">{% trans "All products" %}</option>
|
||||||
@@ -38,9 +51,13 @@
|
|||||||
<button class="btn btn-primary" type="submit">{% trans "Filter" %}</button>
|
<button class="btn btn-primary" type="submit">{% trans "Filter" %}</button>
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row" id="question-stats">
|
<div class="row" id="question-stats">
|
||||||
{% if not stats %}
|
{% if not stats %}
|
||||||
<div class="empty-collection col-md-10 col-xs-12">
|
<div class="col-md-10 col-xs-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-body empty-collection">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
No matching answers found.
|
No matching answers found.
|
||||||
@@ -55,14 +72,21 @@
|
|||||||
class="btn btn-primary btn-lg"><i class="fa fa-edit"></i> {% trans "Edit question" %}</a>
|
class="btn btn-primary btn-lg"><i class="fa fa-edit"></i> {% trans "Edit question" %}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="col-md-5 col-xs-12">
|
<div class="col-md-5 col-xs-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-body">
|
||||||
<div class="chart" id="question_chart" data-type="{{ question.type }}">
|
<div class="chart" id="question_chart" data-type="{{ question.type }}">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script type="application/json" id="question-chart-data">{{ stats_json|escapejson }}</script>
|
<script type="application/json" id="question-chart-data">{{ stats_json|escapejson }}</script>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="col-md-5 col-xs-12">
|
<div class="col-md-5 col-xs-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
<table class="table table-bordered table-hover">
|
<table class="table table-bordered table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -74,7 +98,12 @@
|
|||||||
{% for stat in stats %}
|
{% for stat in stats %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<a href="{% url "control:event.orders" event=request.event.slug organizer=request.event.organizer.slug %}?status={{ request.GET.status|default:"np" }}&item={{ request.GET.item }}&question={{ question.pk }}&answer={{ stat.alink|default:stat.answer|urlencode }}">
|
<a href="{% url "control:event.orders" event=request.event.slug organizer=request.event.organizer.slug %}?status=
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{ request.GET.status|default:"np" }}&item={{ request.GET.item }}&question={{ question.pk }}&answer=
|
||||||
|
{{ stat.alink|default:stat.answer|urlencode }}">
|
||||||
{{ stat.answer }}
|
{{ stat.answer }}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
@@ -84,6 +113,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="col-xs-12 col-lg-2">
|
<div class="col-xs-12 col-lg-2">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
|
|||||||
@@ -3,18 +3,29 @@
|
|||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% block title %}{% trans "Delete question" %}{% endblock %}
|
{% block title %}{% trans "Delete question" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Delete question" %}</h1>
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h1 class="panel-title">{% trans "Delete question" %}</h1>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<p>{% blocktrans %}Are you sure you want to delete the question <strong>{{ question }}</strong>?{% endblocktrans %}</p>
|
<p>{% blocktrans %}Are you sure you want to delete the question <strong>{{ question }}</strong>
|
||||||
|
?{% endblocktrans %}</p>
|
||||||
{% if dependent|length > 0 %}
|
{% if dependent|length > 0 %}
|
||||||
<p>{% blocktrans %}All answers to the question given by the buyers of the following products will be <strong>lost</strong>.{% endblocktrans %}</p>
|
<p>{% blocktrans %}All answers to the question given by the buyers of the following products will be
|
||||||
|
<strong>lost</strong>.{% endblocktrans %}</p>
|
||||||
|
<ul>
|
||||||
{% for item in dependent %}
|
{% for item in dependent %}
|
||||||
<li><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.pk %}">{{ item.name }}</a></li>
|
<li>
|
||||||
|
<a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.pk %}">{{ item.name }}</a>
|
||||||
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<a href="{% url "control:event.items.questions" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default btn-cancel">
|
<a href="{% url "control:event.items.questions" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn btn-default btn-cancel">
|
||||||
{% trans "Cancel" %}
|
{% trans "Cancel" %}
|
||||||
</a>
|
</a>
|
||||||
<button type="submit" class="btn btn-danger btn-save">
|
<button type="submit" class="btn btn-danger btn-save">
|
||||||
@@ -22,4 +33,6 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -10,26 +10,34 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
{% if question %}
|
|
||||||
<h1>{% blocktrans with name=question.question %}Question: {{ name }}{% endblocktrans %}</h1>
|
|
||||||
{% else %}
|
|
||||||
<h1>{% trans "Question" %}</h1>
|
|
||||||
{% endif %}
|
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form_errors form %}
|
{% bootstrap_form_errors form %}
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
<legend>{% trans "General information" %}</legend>
|
<div class="panel-heading">
|
||||||
|
{% if question %}
|
||||||
|
<h1 class="panel-title">{% blocktrans with name=question.question %}Question:
|
||||||
|
{{ name }}{% endblocktrans %}</h1>
|
||||||
|
{% else %}
|
||||||
|
<h1 class="panel-title">{% trans "Question" %}</h1>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.question layout="control" %}
|
{% bootstrap_field form.question layout="control" %}
|
||||||
{% bootstrap_field form.help_text layout="control" %}
|
{% bootstrap_field form.help_text layout="control" %}
|
||||||
{% bootstrap_field form.type layout="control" %}
|
{% bootstrap_field form.type layout="control" %}
|
||||||
{% bootstrap_field form.identifier layout="control" %}
|
{% bootstrap_field form.identifier layout="control" %}
|
||||||
{% bootstrap_field form.ask_during_checkin layout="control" %}
|
{% bootstrap_field form.ask_during_checkin layout="control" %}
|
||||||
{% bootstrap_field form.required layout="control" %}
|
{% bootstrap_field form.required layout="control" %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Apply to products" %}</legend>
|
<legend>{% trans "Apply to products" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% bootstrap_field form.items layout="control" %}
|
{% bootstrap_field form.items layout="control" %}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="alert alert-info alert-required-boolean">
|
<div class="alert alert-info alert-required-boolean">
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
@@ -37,8 +45,11 @@
|
|||||||
accepted. If you want to allow both options, do not make this field required.
|
accepted. If you want to allow both options, do not make this field required.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</div>
|
</div>
|
||||||
<fieldset id="answer-options">
|
<fieldset class="panel panel-default" id="answer-options">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Answer options" %}</legend>
|
<legend>{% trans "Answer options" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<noscript>
|
<noscript>
|
||||||
<p>{% trans "Only applicable if you choose 'Choose one/multiple from a list' above." %}</p>
|
<p>{% trans "Only applicable if you choose 'Choose one/multiple from a list' above." %}</p>
|
||||||
</noscript>
|
</noscript>
|
||||||
@@ -109,6 +120,7 @@
|
|||||||
<i class="fa fa-plus"></i> {% trans "Add a new option" %}</button>
|
<i class="fa fa-plus"></i> {% trans "Add a new option" %}</button>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<button type="submit" class="btn btn-primary btn-save">
|
<button type="submit" class="btn btn-primary btn-save">
|
||||||
|
|||||||
@@ -2,15 +2,18 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}{% trans "Questions" %}{% endblock %}
|
{% block title %}{% trans "Questions" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Questions" %}</h1>
|
<div class="panel panel-default">
|
||||||
<p>
|
<div class="panel-heading">
|
||||||
|
<h1 class="panel-title">{% trans "Questions" %}</h1>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Questions allow your attendees to fill in additional data about their ticket. If you provide food, one
|
Questions allow your attendees to fill in additional data about their ticket. If you provide food, one
|
||||||
example might be to ask your users about dietary requirements.
|
example might be to ask your users about dietary requirements.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</div>
|
||||||
{% if questions|length == 0 %}
|
{% if questions|length == 0 %}
|
||||||
<div class="empty-collection">
|
<div class="empty-collection panel-body">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
You haven't created any questions yet.
|
You haven't created any questions yet.
|
||||||
@@ -21,10 +24,11 @@
|
|||||||
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new question" %}</a>
|
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new question" %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>
|
<div class="panel-body">
|
||||||
<a href="{% url "control:event.items.questions.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new question" %}
|
<a href="{% url "control:event.items.questions.add" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new question" %}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</div>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-hover table-quotas">
|
<table class="table table-hover table-quotas">
|
||||||
<thead>
|
<thead>
|
||||||
@@ -53,23 +57,34 @@
|
|||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
{% for item in q.items.all %}
|
{% for item in q.items.all %}
|
||||||
<li><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.id %}">{{ item }}</a></li>
|
<li>
|
||||||
|
<a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.id %}">{{ item }}</a>
|
||||||
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="{% url "control:event.items.questions.up" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}" class="btn btn-default btn-sm {% if forloop.counter0 == 0 %}disabled{% endif %}"><i class="fa fa-arrow-up"></i></a>
|
<a href="{% url "control:event.items.questions.up" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}"
|
||||||
<a href="{% url "control:event.items.questions.down" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}" class="btn btn-default btn-sm {% if forloop.revcounter0 == 0 %}disabled{% endif %}"><i class="fa fa-arrow-down"></i></a>
|
class="btn btn-default btn-sm {% if forloop.counter0 == 0 %}disabled{% endif %}"><i
|
||||||
|
class="fa fa-arrow-up"></i></a>
|
||||||
|
<a href="{% url "control:event.items.questions.down" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}"
|
||||||
|
class="btn btn-default btn-sm {% if forloop.revcounter0 == 0 %}disabled{% endif %}"><i
|
||||||
|
class="fa fa-arrow-down"></i></a>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<a href="{% url "control:event.items.questions.edit" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}" class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
<a href="{% url "control:event.items.questions.edit" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}"
|
||||||
<a href="{% url "control:event.items.questions.delete" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
||||||
|
<a href="{% url "control:event.items.questions.delete" organizer=request.event.organizer.slug event=request.event.slug question=q.id %}"
|
||||||
|
class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
{% include "pretixcontrol/pagination.html" %}
|
{% include "pretixcontrol/pagination.html" %}
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -5,16 +5,21 @@
|
|||||||
{% load eventsignal %}
|
{% load eventsignal %}
|
||||||
{% block title %}{% blocktrans with name=quota.name %}Quota: {{ name }}{% endblocktrans %}{% endblock %}
|
{% block title %}{% blocktrans with name=quota.name %}Quota: {{ name }}{% endblocktrans %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>
|
<div class="panel panel-default panel-with-btn">
|
||||||
{% blocktrans with name=quota.name %}Quota: {{ name }}{% endblocktrans %}
|
<div class="panel-heading">
|
||||||
{% if 'can_change_items' in request.eventpermset %}
|
{% if 'can_change_items' in request.eventpermset %}
|
||||||
<a href="{% url "control:event.items.quotas.edit" event=request.event.slug organizer=request.event.organizer.slug quota=quota.pk %}"
|
<a href="{% url "control:event.items.quotas.edit" event=request.event.slug organizer=request.event.organizer.slug quota=quota.pk %}"
|
||||||
class="btn btn-default">
|
class="btn btn-default btn-sm pull-right">
|
||||||
<span class="fa fa-edit"></span>
|
<span class="fa fa-edit"></span>
|
||||||
{% trans "Edit quota" %}
|
{% trans "Edit quota" %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<h1 class="panel-title">
|
||||||
|
{% blocktrans with name=quota.name %}Quota: {{ name }}{% endblocktrans %}
|
||||||
|
<div class="clearfix"></div>
|
||||||
</h1>
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% if quota.subevent %}
|
{% if quota.subevent %}
|
||||||
<p>
|
<p>
|
||||||
<span class="fa fa-calendar"></span> {{ quota.subevent.name }} – {{ quota.subevent.get_date_range_display }}
|
<span class="fa fa-calendar"></span> {{ quota.subevent.name }} – {{ quota.subevent.get_date_range_display }}
|
||||||
@@ -22,14 +27,24 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="row" id="quota-stats">
|
<div class="row" id="quota-stats">
|
||||||
<div class="col-md-5 col-xs-12">
|
<div class="col-md-5 col-xs-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Usage overview" %}</legend>
|
<legend>{% trans "Usage overview" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<div class="chart" id="quota_chart">
|
<div class="chart" id="quota_chart">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script type="application/json" id="quota-chart-data">{{ quota_chart_data|escapejson }}</script>
|
<script type="application/json" id="quota-chart-data">{{ quota_chart_data|escapejson }}</script>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="col-md-5 col-xs-12">
|
<div class="col-md-5 col-xs-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Availability calculation" %}</legend>
|
<legend>{% trans "Availability calculation" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-9">{% trans "Total quota" %}</div>
|
<div class="col-xs-9">{% trans "Total quota" %}</div>
|
||||||
@@ -65,6 +80,8 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="col-md-2 col-xs-12">
|
<div class="col-md-2 col-xs-12">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
|
|||||||
@@ -3,18 +3,29 @@
|
|||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% block title %}{% trans "Delete quota" %}{% endblock %}
|
{% block title %}{% trans "Delete quota" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Delete quota" %}</h1>
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h1 class="panel-title">{% trans "Delete quota" %}</h1>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<p>{% blocktrans %}Are you sure you want to delete the quota <strong>{{ quota }}</strong>?{% endblocktrans %}</p>
|
<p>{% blocktrans %}Are you sure you want to delete the quota <strong>{{ quota }}</strong>
|
||||||
|
?{% endblocktrans %}</p>
|
||||||
{% if dependent|length > 0 %}
|
{% if dependent|length > 0 %}
|
||||||
<p>{% blocktrans %}The following products might be no longer available for sale:{% endblocktrans %}</p>
|
<p>{% blocktrans %}The following products might be no longer available for
|
||||||
|
sale:{% endblocktrans %}</p>
|
||||||
|
<ul>
|
||||||
{% for item in dependent %}
|
{% for item in dependent %}
|
||||||
<li><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.pk %}">{{ item.name }}</a></li>
|
<li>
|
||||||
|
<a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.pk %}">{{ item.name }}</a>
|
||||||
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<a href="{% url "control:event.items.quotas" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default btn-cancel">
|
<a href="{% url "control:event.items.quotas" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn btn-default btn-cancel">
|
||||||
{% trans "Cancel" %}
|
{% trans "Cancel" %}
|
||||||
</a>
|
</a>
|
||||||
<button type="submit" class="btn btn-danger btn-save">
|
<button type="submit" class="btn btn-danger btn-save">
|
||||||
@@ -22,4 +33,6 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -9,31 +9,31 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
{% if question %}
|
<div class="panel panel-default">
|
||||||
<h1>{% blocktrans with name=quota.name %}Quota: {{ name }}{% endblocktrans %}</h1>
|
<div class="panel-heading">
|
||||||
|
{% if quota %}
|
||||||
|
<h1 class="panel-title">{% blocktrans with name=quota.name %}Quota: {{ name }}{% endblocktrans %}</h1>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1>{% trans "Quota" %}</h1>
|
<h1 class="panel-title">{% trans "Quota" %}</h1>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<form action="" method="post" class="form-horizontal">
|
</div>
|
||||||
|
<form action="" method="post" class="form-horizontal panel-body">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form_errors form %}
|
{% bootstrap_form_errors form %}
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{% trans "General information" %}</legend>
|
|
||||||
{% bootstrap_field form.name layout="control" %}
|
{% bootstrap_field form.name layout="control" %}
|
||||||
{% bootstrap_field form.size layout="control" %}
|
{% bootstrap_field form.size layout="control" %}
|
||||||
{% if form.subevent %}
|
{% if form.subevent %}
|
||||||
{% bootstrap_field form.subevent layout="control" %}
|
{% bootstrap_field form.subevent layout="control" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<legend>{% trans "Items" %}</legend>
|
{% bootstrap_field form.itemvars layout="control" %}
|
||||||
<p>
|
<p class="help-block">
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Please select the products or product variations this quota should be applied to. If you apply two
|
Please select the products or product variations this quota should be applied to. If you apply
|
||||||
quotas to the same product, it will only be available if
|
two quotas to the same product, it will only be available if <strong>both</strong> quotas have capacity
|
||||||
<strong>both</strong> quotas have capacity
|
|
||||||
left.
|
left.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
{% bootstrap_field form.itemvars layout="control" %}
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
<button type="submit" class="btn btn-primary btn-save">
|
<button type="submit" class="btn btn-primary btn-save">
|
||||||
@@ -41,4 +41,5 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}{% trans "Quotas" %}{% endblock %}
|
{% block title %}{% trans "Quotas" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Quotas" %}</h1>
|
<div class="panel panel-default">
|
||||||
<p>
|
<div class="panel-heading">
|
||||||
|
<h1 class="panel-title">{% trans "Quotas" %}</h1>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
To make your products actually available, you also need quotas. Quotas define, how many instances of
|
To make your products actually available, you also need quotas. Quotas define, how many instances of
|
||||||
your product pretix will sell. This way, you can configure whether your event can take an unlimited
|
your product pretix will sell. This way, you can configure whether your event can take an unlimited
|
||||||
@@ -11,14 +14,14 @@
|
|||||||
to fulfil more complex requirements, e.g. if you want to limit the total number of tickets sold and the
|
to fulfil more complex requirements, e.g. if you want to limit the total number of tickets sold and the
|
||||||
number of a specific ticket type at the same time.
|
number of a specific ticket type at the same time.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</div>
|
||||||
{% if request.event.has_subevents %}
|
{% if request.event.has_subevents %}
|
||||||
<form class="form-inline helper-display-inline" action="" method="get">
|
<form class="form-inline helper-display-inline" action="" method="get">
|
||||||
{% include "pretixcontrol/event/fragment_subevent_choice_simple.html" %}
|
{% include "pretixcontrol/event/fragment_subevent_choice_simple.html" %}
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if quotas|length == 0 %}
|
{% if quotas|length == 0 %}
|
||||||
<div class="empty-collection">
|
<div class="empty-collection panel-body">
|
||||||
<p>
|
<p>
|
||||||
{% if request.GET.subevent %}
|
{% if request.GET.subevent %}
|
||||||
{% trans "Your search did not match any quotas." %}
|
{% trans "Your search did not match any quotas." %}
|
||||||
@@ -33,10 +36,11 @@
|
|||||||
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new quota" %}</a>
|
class="btn btn-primary btn-lg"><i class="fa fa-plus"></i> {% trans "Create a new quota" %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>
|
<div class="panel-body">
|
||||||
<a href="{% url "control:event.items.quotas.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new quota" %}
|
<a href="{% url "control:event.items.quotas.add" organizer=request.event.organizer.slug event=request.event.slug %}"
|
||||||
|
class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new quota" %}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</div>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-hover table-quotas">
|
<table class="table table-hover table-quotas">
|
||||||
<thead>
|
<thead>
|
||||||
@@ -60,7 +64,9 @@
|
|||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
{% for item in q.items.all %}
|
{% for item in q.items.all %}
|
||||||
<li><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.id %}">{{ item }}</a></li>
|
<li>
|
||||||
|
<a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.id %}">{{ item }}</a>
|
||||||
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
@@ -70,14 +76,19 @@
|
|||||||
<td>{% if q.size == None %}Unlimited{% else %}{{ q.size }}{% endif %}</td>
|
<td>{% if q.size == None %}Unlimited{% else %}{{ q.size }}{% endif %}</td>
|
||||||
<td>{% include "pretixcontrol/items/fragment_quota_availability.html" with availability=q.availability %}</td>
|
<td>{% include "pretixcontrol/items/fragment_quota_availability.html" with availability=q.availability %}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<a href="{% url "control:event.items.quotas.edit" organizer=request.event.organizer.slug event=request.event.slug quota=q.id %}" class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
<a href="{% url "control:event.items.quotas.edit" organizer=request.event.organizer.slug event=request.event.slug quota=q.id %}"
|
||||||
<a href="{% url "control:event.items.quotas.delete" organizer=request.event.organizer.slug event=request.event.slug quota=q.id %}" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
class="btn btn-default btn-sm"><i class="fa fa-edit"></i></a>
|
||||||
|
<a href="{% url "control:event.items.quotas.delete" organizer=request.event.organizer.slug event=request.event.slug quota=q.id %}"
|
||||||
|
class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
<div class="panel-footer">
|
||||||
{% include "pretixcontrol/pagination.html" %}
|
{% include "pretixcontrol/pagination.html" %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load urlreplace %}
|
{% load urlreplace %}
|
||||||
<nav class="text-center pagination-container">
|
<nav class="text-center pagination-container">
|
||||||
<ul class="pagination">
|
|
||||||
{% if is_paginated %}
|
{% if is_paginated %}
|
||||||
|
<ul class="pagination">
|
||||||
{% if page_obj.has_previous %}
|
{% if page_obj.has_previous %}
|
||||||
<li>
|
<li>
|
||||||
<a href="?{% url_replace request 'page' page_obj.previous_page_number %}">
|
<a href="?{% url_replace request 'page' page_obj.previous_page_number %}">
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="page-current"><a>
|
<li class="page-current"><a>
|
||||||
{% blocktrans trimmed with page=page_obj.number of=page_obj.paginator.num_pages count=page_obj.paginator.count %}
|
{% blocktrans trimmed with page=page_obj.number of=page_obj.paginator.num_pages count=page_obj.paginator.count %}
|
||||||
Page {{ page }} of {{ of }} ({{ count }} elements)
|
Page {{ page }} of {{ of }}
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</a></li>
|
</a></li>
|
||||||
{% if page_obj.has_next %}
|
{% if page_obj.has_next %}
|
||||||
@@ -22,27 +22,34 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
</ul>
|
||||||
{% if page_obj.paginator.count > 1 %}
|
{% endif %}
|
||||||
|
{% if page_obj.paginator.count > 0 %}
|
||||||
|
<ul class="pagination pagination-count">
|
||||||
<li class="page-current"><a>
|
<li class="page-current"><a>
|
||||||
{% blocktrans trimmed with count=page_obj.paginator.count %}
|
{% blocktrans trimmed with count=page_obj.paginator.count %}
|
||||||
{{ count }} elements
|
{{ count }} elements
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</a></li>
|
</a></li>
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
</ul>
|
||||||
{% if page_size %}
|
<ul class="pagination pagination-select">
|
||||||
<div class="clearfix">
|
<li class="page-current"><a>
|
||||||
<small>
|
|
||||||
{% trans "Show per page:" %}
|
{% trans "Show per page:" %}
|
||||||
</small>
|
</a></li>
|
||||||
|
<li>
|
||||||
<a href="?{% url_replace request "page_size" "25" "page" "1" %}">
|
<a href="?{% url_replace request "page_size" "25" "page" "1" %}">
|
||||||
{% if page_size == 25 %}<strong>{% endif %}25{% if page_size == 25 %}</strong>{% endif %}</a> |
|
{% if page_size == 25 %}<strong>{% endif %}25{% if page_size == 25 %}</strong>{% endif %}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
<a href="?{% url_replace request "page_size" "50" "page" "1" %}">
|
<a href="?{% url_replace request "page_size" "50" "page" "1" %}">
|
||||||
{% if page_size == 50 %}<strong>{% endif %}50{% if page_size == 50 %}</strong>{% endif %}</a> |
|
{% if page_size == 50 %}<strong>{% endif %}50{% if page_size == 50 %}</strong>{% endif %}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
<a href="?{% url_replace request "page_size" "100" "page" "1" %}">
|
<a href="?{% url_replace request "page_size" "100" "page" "1" %}">
|
||||||
{% if page_size == 100 %}<strong>{% endif %}100{% if page_size == 100 %}</strong>{% endif %}</a>
|
{% if page_size == 100 %}<strong>{% endif %}100{% if page_size == 100 %}</strong>{% endif %}</a>
|
||||||
</div>
|
</li>
|
||||||
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<div class="clearfix">
|
||||||
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
@@ -4,20 +4,19 @@
|
|||||||
{% load order_overview %}
|
{% load order_overview %}
|
||||||
{% block title %}{% trans "Data shredder" %}{% endblock %}
|
{% block title %}{% trans "Data shredder" %}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>
|
|
||||||
{% trans "Data shredder" %}
|
|
||||||
</h1>
|
|
||||||
<form action="{% url "control:event.shredder.shred" event=request.event.slug organizer=request.organizer.slug %}"
|
<form action="{% url "control:event.shredder.shred" event=request.event.slug organizer=request.organizer.slug %}"
|
||||||
method="post" class="form-horizontal" data-asynctask>
|
method="post" class="form-horizontal" data-asynctask>
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<fieldset>
|
<fieldset class="panel-default panel">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Step 1: Download data" %}</legend>
|
<legend>{% trans "Step 1: Download data" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
You are about to permamanently delete data from the server, even though you might be required to
|
You are about to permamanently delete data from the server, even though you might be required to
|
||||||
keep
|
keep some of this data on file. You should therefore download the following file and store it in a
|
||||||
some of this data on file. You should therefore download the following file and store it in a safe
|
safe place:
|
||||||
place:
|
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -25,27 +24,37 @@
|
|||||||
{% trans "Download data" %}
|
{% trans "Download data" %}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset class="panel-default panel">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Step 2: Confirm download" %}</legend>
|
<legend>{% trans "Step 2: Confirm download" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
In the downloaded file, there is a text file named "CONFIRM_CODE.txt" with a six-character code.
|
In the downloaded file, there is a text file named "CONFIRM_CODE.txt" with a six-character code.
|
||||||
Please enter this code here to confirm that you successfully downloaded the file.
|
Please enter this code here to confirm that you successfully downloaded the file.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
<input type="text" class="form-control" name="confirm_code" required placeholder="{% trans "Confirmation code" %}">
|
<input type="text" class="form-control" name="confirm_code" required
|
||||||
|
placeholder="{% trans "Confirmation code" %}">
|
||||||
<br>
|
<br>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset class="panel-default panel">
|
||||||
|
<div class="panel-heading">
|
||||||
<legend>{% trans "Step 3: Confirm deletion" %}</legend>
|
<legend>{% trans "Step 3: Confirm deletion" %}</legend>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed with event=request.event.name %}
|
{% blocktrans trimmed with event=request.event.name %}
|
||||||
Please re-check that you are fully certain that you want to delete the selected categories of data from the event <strong>{{ event }}</strong>.
|
Please re-check that you are fully certain that you want to delete the selected categories of
|
||||||
|
data from the event <strong>{{ event }}</strong>.
|
||||||
In this case, please enter your user password here:
|
In this case, please enter your user password here:
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
<input type="password" class="form-control" name="password" required placeholder="{% trans "Your password" %}">
|
<input type="password" class="form-control" name="password" required
|
||||||
|
placeholder="{% trans "Your password" %}">
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<input type="hidden" name="file" value="{{ file.pk }}">
|
<input type="hidden" name="file" value="{{ file.pk }}">
|
||||||
<div class="form-group submit-group">
|
<div class="form-group submit-group">
|
||||||
|
|||||||
@@ -4,38 +4,45 @@
|
|||||||
{% load order_overview %}
|
{% load order_overview %}
|
||||||
{% block title %}{% trans "Data shredder" %}{% endblock %}
|
{% block title %}{% trans "Data shredder" %}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h1 class="panel-title">
|
||||||
{% trans "Data shredder" %}
|
{% trans "Data shredder" %}
|
||||||
</h1>
|
</h1>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
This feature allows you to remove personal data from this event. You will first select what kind of data
|
This feature allows you to remove personal data from this event. You will first select what kind of
|
||||||
you want to shred, then you are able to download the affected data and after you confirmed the download,
|
data you want to shred, then you are able to download the affected data and after you confirmed the
|
||||||
the data will be removed from the server's database. The data might still exist in backups for a limited
|
download, the data will be removed from the server's database. The data might still exist in backups for a
|
||||||
period of time.
|
limited period of time.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
<strong>
|
<strong>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Using this will not remove the orders for your event, it just scrubs them of data that can be linked
|
Using this will not remove the orders for your event, it just scrubs them of data that can be
|
||||||
to individual persons.
|
linked to individual persons.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</strong>
|
</strong>
|
||||||
</p>
|
</p>
|
||||||
<div class="alert alert-legal">
|
<div class="alert alert-legal">
|
||||||
<strong>
|
<strong>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
It is within your own responsibility to check if you are allowed to delete the affected data in your
|
It is within your own responsibility to check if you are allowed to delete the affected data in
|
||||||
legislation, e.g. for reasons of taxation. In many countries, you need to keep some data in the live
|
your legislation, e.g. for reasons of taxation. In many countries, you need to keep some data in the
|
||||||
system in case of an audit.
|
live system in case of an audit.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</strong>
|
</strong>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
For most categories of data, you will be able to partially download the data to store it offline. Some
|
For most categories of data, you will be able to partially download the data to store it offline.
|
||||||
kinds of data (such as some payment information) as well as historical log data cannot be downloaded at
|
Some kinds of data (such as some payment information) as well as historical log data cannot be downloaded
|
||||||
the moment.
|
at the moment.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% if constraints %}
|
{% if constraints %}
|
||||||
<div class="alert alert-danger">
|
<div class="alert alert-danger">
|
||||||
{{ constraints }}
|
{{ constraints }}
|
||||||
@@ -43,9 +50,8 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<form action="{% url "control:event.shredder.export" event=request.event.slug organizer=request.organizer.slug %}"
|
<form action="{% url "control:event.shredder.export" event=request.event.slug organizer=request.organizer.slug %}"
|
||||||
method="post" class="form-horizontal" data-asynctask>
|
method="post" class="form-horizontal" data-asynctask>
|
||||||
<legend>{% trans "Data selection" %}</legend>
|
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="panel-group" id="payment_accordion">
|
<div class="" id="payment_accordion">
|
||||||
{% for ident, shredder in shredders.items %}
|
{% for ident, shredder in shredders.items %}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<label class="accordion-radio">
|
<label class="accordion-radio">
|
||||||
|
|||||||
@@ -111,6 +111,9 @@
|
|||||||
.panel {
|
.panel {
|
||||||
box-shadow:0 2px 5px 0 rgba(78,50,92,.1),0 1px 1px 0 rgba(0,0,0,.07);
|
box-shadow:0 2px 5px 0 rgba(78,50,92,.1),0 1px 1px 0 rgba(0,0,0,.07);
|
||||||
}
|
}
|
||||||
|
.panel-default {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
.panel-default > .panel-heading, .panel-default > .panel-footer {
|
.panel-default > .panel-heading, .panel-default > .panel-footer {
|
||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
@@ -127,6 +130,15 @@
|
|||||||
.panel > .table-responsive table th:last-child {
|
.panel > .table-responsive table th:last-child {
|
||||||
padding-right: $panel-body-padding;
|
padding-right: $panel-body-padding;
|
||||||
}
|
}
|
||||||
|
.panel > table td,
|
||||||
|
.panel > table th,
|
||||||
|
.panel > .table-responsive table td,
|
||||||
|
.panel > .table-responsive table th {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.panel-with-btn .panel-title {
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
.panel-danger > .panel-heading, .panel-success > .panel-heading, .panel-default > .panel-heading, .panel-info > .panel-heading, .panel-warning > .panel-heading {
|
.panel-danger > .panel-heading, .panel-success > .panel-heading, .panel-default > .panel-heading, .panel-info > .panel-heading, .panel-warning > .panel-heading {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
|
|||||||
@@ -2,8 +2,10 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
margin-left: -5px;
|
margin-left: -10px;
|
||||||
margin-right: -5px;
|
margin-right: -10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-top: -10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboard .widget-container {
|
.dashboard .widget-container {
|
||||||
@@ -11,10 +13,10 @@
|
|||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
padding: 15px 5px;
|
padding: 15px 5px;
|
||||||
min-height: 160px;
|
min-height: 160px;
|
||||||
margin: 5px;
|
margin: 10px;
|
||||||
|
|
||||||
background: white;
|
background: white;
|
||||||
box-shadow: 0 7px 14px 0 rgba(78, 50, 92, 0.1),0 3px 6px 0 rgba(0,0,0,.07);
|
box-shadow:0 2px 5px 0 rgba(78,50,92,.1),0 1px 1px 0 rgba(0,0,0,.07);
|
||||||
border-radius: $panel-border-radius;
|
border-radius: $panel-border-radius;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,11 @@ div[data-formset-body], div[data-formset-form], div[data-nested-formset-form], d
|
|||||||
@include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);
|
@include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.panel-body .submit-group {
|
||||||
|
box-shadow: none;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.panel .form-group:last-child {
|
.panel .form-group:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
|||||||
@@ -105,9 +105,7 @@ h1 .btn-sm {
|
|||||||
.btn-toolbar {
|
.btn-toolbar {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
.container-fluid > .alert:first-child {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flipped-scroll-wrapper {
|
.flipped-scroll-wrapper {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@@ -171,7 +169,7 @@ p.bigger {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.empty-collection {
|
.empty-collection {
|
||||||
margin: 20px 0;
|
padding: 40px 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
@@ -566,6 +564,23 @@ ul.pagination {
|
|||||||
.pagination-container {
|
.pagination-container {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
.panel {
|
||||||
|
ul.pagination {
|
||||||
|
margin: 0;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
ul.pagination-count {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
ul.pagination-select {
|
||||||
|
margin: auto;
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
.pagination-container {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.table-payment-providers > tbody > tr > td {
|
.table-payment-providers > tbody > tr > td {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|||||||
Reference in New Issue
Block a user