mirror of
https://github.com/pretix/pretix.git
synced 2025-12-06 21:42:49 +00:00
Compare commits
7 Commits
event-clon
...
v1.13.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77ffe55453 | ||
|
|
ab865e716f | ||
|
|
0bf1832b23 | ||
|
|
650adb9235 | ||
|
|
e2d55fed0d | ||
|
|
aef751dbee | ||
|
|
cd084fe8d1 |
@@ -1 +1 @@
|
|||||||
__version__ = "1.13.0"
|
__version__ = "1.13.1"
|
||||||
|
|||||||
@@ -504,7 +504,7 @@ def _create_order(event: Event, email: str, positions: List[CartPosition], now_d
|
|||||||
for fee in fees:
|
for fee in fees:
|
||||||
fee.order = order
|
fee.order = order
|
||||||
fee._calculate_tax()
|
fee._calculate_tax()
|
||||||
if not fee.tax_rule.pk:
|
if fee.tax_rule and not fee.tax_rule.pk:
|
||||||
fee.tax_rule = None # TODO: deprecate
|
fee.tax_rule = None # TODO: deprecate
|
||||||
fee.save()
|
fee.save()
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ class OrderView(EventPermissionRequiredMixin, DetailView):
|
|||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
ctx = super().get_context_data(**kwargs)
|
ctx = super().get_context_data(**kwargs)
|
||||||
ctx['can_generate_invoice'] = invoice_qualified(self.order) and (
|
ctx['can_generate_invoice'] = invoice_qualified(self.order) and (
|
||||||
self.request.event.settings.invoice_generate in ('admin', 'user', 'paid')
|
self.request.event.settings.invoice_generate in ('admin', 'user', 'paid', 'True')
|
||||||
)
|
)
|
||||||
return ctx
|
return ctx
|
||||||
|
|
||||||
|
|||||||
@@ -378,7 +378,10 @@ class ApiSearchView(ApiView):
|
|||||||
)[:25]
|
)[:25]
|
||||||
else:
|
else:
|
||||||
ops = qs.filter(
|
ops = qs.filter(
|
||||||
Q(secret__istartswith=query) | Q(attendee_name__icontains=query) | Q(order__code__istartswith=query)
|
Q(secret__istartswith=query)
|
||||||
|
| Q(attendee_name__icontains=query)
|
||||||
|
| Q(addon_to__attendee_name__icontains=query)
|
||||||
|
| Q(order__code__istartswith=query)
|
||||||
| Q(order__invoice_address__name__icontains=query)
|
| Q(order__invoice_address__name__icontains=query)
|
||||||
)[:25]
|
)[:25]
|
||||||
|
|
||||||
|
|||||||
@@ -338,10 +338,10 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
|
|||||||
_("We had difficulties processing your input. Please review the errors below."))
|
_("We had difficulties processing your input. Please review the errors below."))
|
||||||
return self.render()
|
return self.render()
|
||||||
self.cart_session['email'] = self.contact_form.cleaned_data['email']
|
self.cart_session['email'] = self.contact_form.cleaned_data['email']
|
||||||
|
self.cart_session['contact_form_data'] = self.contact_form.cleaned_data
|
||||||
if request.event.settings.invoice_address_asked:
|
if request.event.settings.invoice_address_asked:
|
||||||
addr = self.invoice_form.save()
|
addr = self.invoice_form.save()
|
||||||
self.cart_session['invoice_address'] = addr.pk
|
self.cart_session['invoice_address'] = addr.pk
|
||||||
self.cart_session['contact_form_data'] = self.contact_form.cleaned_data
|
|
||||||
|
|
||||||
update_tax_rates(
|
update_tax_rates(
|
||||||
event=request.event,
|
event=request.event,
|
||||||
@@ -408,6 +408,7 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
|
|||||||
ctx['invoice_form'] = self.invoice_form
|
ctx['invoice_form'] = self.invoice_form
|
||||||
ctx['reverse_charge_relevant'] = self.eu_reverse_charge_relevant
|
ctx['reverse_charge_relevant'] = self.eu_reverse_charge_relevant
|
||||||
ctx['cart'] = self.get_cart()
|
ctx['cart'] = self.get_cart()
|
||||||
|
ctx['cart_session'] = self.cart_session
|
||||||
return ctx
|
return ctx
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
<div class="col-md-4 col-md-offset-4 col-xs-12">
|
<div class="col-md-4 col-md-offset-4 col-xs-12">
|
||||||
<a class="btn btn-block btn-primary btn-lg"
|
<a class="btn btn-block btn-primary btn-lg"
|
||||||
href="{% eventurl request.event "presale:event.checkout.start" cart_namespace=cart_namespace %}">
|
href="{% eventurl request.event "presale:event.checkout.start" cart_namespace=cart_namespace %}">
|
||||||
{% if has_addon_choices %}
|
{% if has_addon_choices or cart.total == 0 %}
|
||||||
<i class="fa fa-shopping-cart"></i> {% trans "Continue" %}
|
<i class="fa fa-shopping-cart"></i> {% trans "Continue" %}
|
||||||
</a>
|
</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
@@ -114,9 +114,14 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TemplateView):
|
|||||||
[p.item.admission for p in ctx['cart']['positions']].count(True) > 1
|
[p.item.admission for p in ctx['cart']['positions']].count(True) > 1
|
||||||
)
|
)
|
||||||
ctx['invoices'] = list(self.order.invoices.all())
|
ctx['invoices'] = list(self.order.invoices.all())
|
||||||
ctx['can_generate_invoice'] = invoice_qualified(self.order) and (
|
can_generate_invoice = (
|
||||||
self.request.event.settings.invoice_generate == 'user'
|
self.request.event.settings.get('invoice_generate') in ('user', 'True')
|
||||||
|
or (
|
||||||
|
self.request.event.settings.get('invoice_generate') == 'paid'
|
||||||
|
and self.order.status == Order.STATUS_PAID
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
ctx['can_generate_invoice'] = invoice_qualified(self.order) and can_generate_invoice
|
||||||
ctx['url'] = build_absolute_uri(
|
ctx['url'] = build_absolute_uri(
|
||||||
self.request.event, 'presale:event.order', kwargs={
|
self.request.event, 'presale:event.order', kwargs={
|
||||||
'order': self.order.code,
|
'order': self.order.code,
|
||||||
@@ -409,7 +414,14 @@ class OrderInvoiceCreate(EventViewMixin, OrderDetailMixin, View):
|
|||||||
return super().dispatch(request, *args, **kwargs)
|
return super().dispatch(request, *args, **kwargs)
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
if self.request.event.settings.get('invoice_generate') != 'user' or not invoice_qualified(self.order):
|
can_generate_invoice = (
|
||||||
|
self.request.event.settings.get('invoice_generate') in ('user', 'True')
|
||||||
|
or (
|
||||||
|
self.request.event.settings.get('invoice_generate') == 'paid'
|
||||||
|
and self.order.status == Order.STATUS_PAID
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if not can_generate_invoice or not invoice_qualified(self.order):
|
||||||
messages.error(self.request, _('You cannot generate an invoice for this order.'))
|
messages.error(self.request, _('You cannot generate an invoice for this order.'))
|
||||||
elif self.order.invoices.exists():
|
elif self.order.invoices.exists():
|
||||||
messages.error(self.request, _('An invoice for this order already exists.'))
|
messages.error(self.request, _('An invoice for this order already exists.'))
|
||||||
|
|||||||
Reference in New Issue
Block a user