Add action buttons to "missing quota" warnings (#4533)

* Add action buttons to "missing quota" warnings

* Update item.py
This commit is contained in:
Mira
2024-10-28 12:25:03 +01:00
committed by GitHub
parent 3e4e86742a
commit 826bd07b01
4 changed files with 40 additions and 11 deletions

View File

@@ -12,10 +12,22 @@
{% endif %}
{% if object.id and not object.quotas.exists %}
<div class="alert alert-warning">
{% blocktrans trimmed %}
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.
{% endblocktrans %}
<div class="row">
<div class="col-lg-8">
{% blocktrans trimmed %}
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.
{% endblocktrans %}
</div>
<div class="col-lg-4 text-right">
<a class="btn btn-default btn-sm" href="{% url "control:event.items.quotas" organizer=request.event.organizer.slug event=request.event.slug %}">
<i class="fa fa-wrench"></i> {% trans "Manage quotas" %}
</a>
<a class="btn btn-default btn-sm" href="{% url "control:event.items.quotas.add" organizer=request.event.organizer.slug event=request.event.slug %}?{% if object.has_variations %}{% for var in object.variations.all %}product={{ object.pk }}-{{ var.pk }}&{% endfor %}{% else %}product={{ object.pk }}{% endif %}">
<i class="fa fa-plus"></i> {% trans "Create a new quota" %}
</a>
</div>
</div>
</div>
{% elif object.pk and not object.is_available_by_time %}
<div class="alert alert-warning">

View File

@@ -67,10 +67,22 @@
<div class="panel-body form-horizontal">
{% if form.instance.pk and not form.instance.quotas.exists %}
<div class="alert alert-warning">
{% blocktrans trimmed %}
Please note that your variation will <strong>not</strong> be available for sale
until you have added it to an existing or newly created quota.
{% endblocktrans %}
<div class="row">
<div class="col-lg-8">
{% blocktrans trimmed %}
Please note that your variation will <strong>not</strong> be available for sale
until you have added it to an existing or newly created quota.
{% endblocktrans %}
</div>
<div class="col-lg-4 text-right">
<a class="btn btn-default btn-xs" href="{% url "control:event.items.quotas" organizer=request.event.organizer.slug event=request.event.slug %}">
<i class="fa fa-wrench"></i> {% trans "Manage quotas" %}
</a>
<a class="btn btn-default btn-xs" href="{% url "control:event.items.quotas.add" organizer=request.event.organizer.slug event=request.event.slug %}?product={{ form.instance.item.pk }}-{{ form.instance.pk }}">
<i class="fa fa-plus"></i> {% trans "Create a new quota" %}
</a>
</div>
</div>
</div>
{% endif %}
{% bootstrap_form_errors form %}

View File

@@ -920,16 +920,19 @@ class QuotaCreate(EventPermissionRequiredMixin, CreateView):
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs.setdefault('initial', {})
if self.copy_from:
i = modelcopy(self.copy_from)
i.pk = None
kwargs['instance'] = i
kwargs.setdefault('initial', {})
kwargs['initial']['itemvars'] = [str(i.pk) for i in self.copy_from.items.all()] + [
'{}-{}'.format(v.item_id, v.pk) for v in self.copy_from.variations.all()
]
else:
kwargs['instance'] = Quota(event=self.request.event)
if 'product' in self.request.GET:
kwargs['initial']['itemvars'] = self.request.GET.getlist('product')
return kwargs
def form_invalid(self, form):

View File

@@ -29,7 +29,7 @@ $(function () {
autofill = false;
})
$("input[name=itemvars]").change(function () {
function do_autofill() {
if (autofill) {
var names = [];
$("input[name=itemvars]:checked").each(function () {
@@ -37,5 +37,7 @@ $(function () {
});
$("#id_name").val(names.join(', '));
}
});
}
$("input[name=itemvars]").change(do_autofill);
do_autofill();
});