forked from CGM_Public/pretix_original
Add sub-events and relative date settings (#503)
* Data model * little crud * SubEventItemForm etc * Drop SubEventItem.active, quota editor * Fix failing tests * First frontend stuff * Addons form stuff * Quota calculation * net price display on EventIndex * Add tests, solve some bugs * Correct quota selection in more places, consolidate pricing logic * Fix failing quota tests * Fix TypeError * Add tests for checkout * Fixed a bug in QuotaForm * Prevent immutable cart if a quota was removed from an item * Add tests for pricing * Handle waiting list * Filter in check-in list * Fixed import lost in rebase * Fix waiting list widget * Voucher management * Voucher redemption * Fix broken tests * Add subevents to OrderChangeManager * Create a subevent during event creation * Fix bulk voucher creation * Introduce subevent.active * Copy from for subevents * Show active in list * ICal download for subevents * Check start and end of presale * Failing tests / show cart logic * Test * Rebase migrations * REST API integration of sub-events * Integrate quota calculation into the traditional quota form * Make subevent argument to add_position optional * Log-display foo * pretixdroid and subevents * Filter by subevent * Add more tests * Some mor tests * Rebase fixes * More tests * Relative dates * Restrict selection in relative datetime widgets * Filter subevent list * Re-label has_subevents * Rebase fixes, subevents in calendar view * Performance and caching issues * Refactor calendar templates * Permission tests * Calendar fixes and month selection * subevent selection * Rename subevents to dates * Add tests for calendar views
This commit is contained in:
@@ -82,11 +82,14 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TemplateView):
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['order'] = self.order
|
||||
|
||||
if self.request.event.settings.ticket_download_date:
|
||||
ctx['ticket_download_date'] = self.order.ticket_download_date
|
||||
ctx['can_download'] = (
|
||||
self.request.event.settings.ticket_download
|
||||
and (
|
||||
self.request.event.settings.ticket_download_date is None
|
||||
or now() > self.request.event.settings.ticket_download_date
|
||||
or now() > self.order.ticket_download_date
|
||||
) and self.order.status == Order.STATUS_PAID
|
||||
)
|
||||
ctx['download_buttons'] = self.download_buttons
|
||||
@@ -138,10 +141,10 @@ class OrderPaymentStart(EventViewMixin, OrderDetailMixin, TemplateView):
|
||||
messages.error(request, _('The payment for this order cannot be continued.'))
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
if self.request.event.settings.get('payment_term_last'):
|
||||
if now() > self.request.event.payment_term_last:
|
||||
messages.error(request, _('The payment is too late to be accepted.'))
|
||||
return redirect(self.get_order_url())
|
||||
term_last = self.order.payment_term_last
|
||||
if term_last and now() > term_last:
|
||||
messages.error(request, _('The payment is too late to be accepted.'))
|
||||
return redirect(self.get_order_url())
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
@@ -233,10 +236,10 @@ class OrderPaymentComplete(EventViewMixin, OrderDetailMixin, View):
|
||||
messages.error(request, _('The payment information you entered was incomplete.'))
|
||||
return redirect(self.get_payment_url())
|
||||
|
||||
if self.request.event.settings.get('payment_term_last'):
|
||||
if now() > self.request.event.payment_term_last:
|
||||
messages.error(request, _('The payment is too late to be accepted.'))
|
||||
return redirect(self.get_order_url())
|
||||
term_last = self.order.payment_term_last
|
||||
if term_last and now() > term_last:
|
||||
messages.error(request, _('The payment is too late to be accepted.'))
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
@@ -270,10 +273,10 @@ class OrderPayChangeMethod(EventViewMixin, OrderDetailMixin, TemplateView):
|
||||
messages.error(request, _('The payment method for this order cannot be changed.'))
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
if self.request.event.settings.get('payment_term_last'):
|
||||
if now() > self.request.event.payment_term_last:
|
||||
messages.error(request, _('The payment is too late to be accepted.'))
|
||||
return redirect(self.get_order_url())
|
||||
term_last = self.order.payment_term_last
|
||||
if term_last and now() > term_last:
|
||||
messages.error(request, _('The payment is too late to be accepted.'))
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
@@ -551,7 +554,7 @@ class OrderDownload(EventViewMixin, OrderDetailMixin, View):
|
||||
return self.error(_('Order is not paid.'))
|
||||
if (not self.request.event.settings.ticket_download
|
||||
or (self.request.event.settings.ticket_download_date is not None
|
||||
and now() < self.request.event.settings.ticket_download_date)):
|
||||
and now() < self.order.ticket_download_date)):
|
||||
return self.error(_('Ticket download is not (yet) enabled.'))
|
||||
if 'position' in kwargs and (self.order_position.addon_to and not self.request.event.settings.ticket_download_addons):
|
||||
return self.error(_('Ticket download is not enabled for add-on products.'))
|
||||
|
||||
Reference in New Issue
Block a user