forked from CGM_Public/pretix_original
Proof of concept
This commit is contained in:
@@ -15,7 +15,7 @@ from django.utils.translation import (
|
||||
from django.views.generic.base import TemplateResponseMixin
|
||||
from django_scopes import scopes_disabled
|
||||
|
||||
from pretix.base.models import Order
|
||||
from pretix.base.models import GiftCard, Order
|
||||
from pretix.base.models.orders import InvoiceAddress, OrderPayment
|
||||
from pretix.base.services.cart import (
|
||||
get_fees, set_cart_addons, update_tax_rates,
|
||||
@@ -530,6 +530,24 @@ class PaymentStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
|
||||
|
||||
def post(self, request):
|
||||
self.request = request
|
||||
if request.POST.get("giftcard"):
|
||||
# TODO: cross-organizer acceptance, check for valid money, …
|
||||
try:
|
||||
gc = GiftCard.objects.get(
|
||||
issuer=request.organizer,
|
||||
secret=request.POST.get("giftcard")
|
||||
)
|
||||
if gc.currency != request.event.currency:
|
||||
messages.error(self.request, _("This gift card does not support this currency."))
|
||||
return self.render()
|
||||
if 'gift_cards' not in self.cart_session:
|
||||
self.cart_session['gift_cards'] = []
|
||||
self.cart_session['gift_cards'] = self.cart_session['gift_cards'] + [gc.pk]
|
||||
return self.render()
|
||||
except GiftCard.DoesNotExist:
|
||||
messages.error(self.request, _("This gift card is not known."))
|
||||
return self.render()
|
||||
|
||||
for p in self.provider_forms:
|
||||
if p['provider'].identifier == request.POST.get('payment', ''):
|
||||
self.cart_session['payment'] = p['provider'].identifier
|
||||
@@ -709,7 +727,7 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
|
||||
return self.do(self.request.event.id, self.payment_provider.identifier if self.payment_provider else None,
|
||||
[p.id for p in self.positions], self.cart_session.get('email'),
|
||||
translation.get_language(), self.invoice_address.pk, meta_info,
|
||||
request.sales_channel)
|
||||
request.sales_channel, self.cart_session.get('gift_cards'))
|
||||
|
||||
def get_success_message(self, value):
|
||||
create_empty_cart_id(self.request)
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<div class="panel-group" id="payment_accordion">
|
||||
{# TODO: make this proper #}
|
||||
<input type="text" class="form-control" placeholder="Add gift card" name="giftcard">
|
||||
{% for p in providers %}
|
||||
<div class="panel panel-default" data-total="{{ p.total|floatformat:2 }}">
|
||||
<label class="accordion-radio">
|
||||
|
||||
Reference in New Issue
Block a user