Order details: Display payment information

This commit is contained in:
Raphael Michel
2015-03-20 23:20:12 +01:00
parent 4a72d11c67
commit 5664177bbb
11 changed files with 172 additions and 5 deletions

View File

@@ -10,6 +10,7 @@
{% blocktrans trimmed with code=order.code %}
Order details: {{ code }}
{% endblocktrans %}
{% include "pretixcontrol/orders/fragment_order_status.html" with order=order class="pull-right" %}
</h1>
<div class="panel panel-primary items">
<div class="panel-heading">
@@ -78,4 +79,19 @@
</div>
</div>
</div>
<div class="panel panel-primary items">
<div class="panel-heading">
<h3 class="panel-title">
{% trans "Payment information" %}
</h3>
</div>
<div class="panel-body">
{{ payment }}
{% if order.status == 'n' %}
<p>{% blocktrans trimmed with date=order.expires %}
The payment has to be completed before {{ date }}.
{% endblocktrans %}</p>
{% endif %}
</div>
</div>
{% endblock %}

View File

@@ -1,8 +1,10 @@
from itertools import groupby
from django.db.models import Q
from django.utils.functional import cached_property
from django.views.generic import ListView, DetailView
from pretix.base.models import Order
from pretix.base.signals import register_payment_providers
from pretix.control.permissions import EventPermissionRequiredMixin
@@ -31,10 +33,19 @@ class OrderDetail(EventPermissionRequiredMixin, DetailView):
code=self.kwargs['code'].upper()
)
@cached_property
def payment_provider(self):
responses = register_payment_providers.send(self.request.event)
for receiver, response in responses:
provider = response(self.request.event)
if provider.identifier == self.object.payment_provider:
return provider
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['items'] = self.get_items()
ctx['event'] = self.request.event
ctx['payment'] = self.payment_provider.order_control_render(self.request, self.object)
return ctx
def get_items(self):