Mark order as closed when marking as paid. Add button to mark as paid.

This commit is contained in:
Víðir Valberg Guðmundsson 2016-06-03 21:31:12 +02:00
parent 746da234db
commit e4585c8f7e
4 changed files with 24 additions and 1 deletions

View file

@ -122,9 +122,9 @@ class Order(CreatedUpdatedModel):
def mark_as_paid(self):
self.paid = True
self.open = None
for order_product in self.orderproductrelation_set.all():
category_pk = str(order_product.product.category.pk)
print(order_product, category_pk, settings.TICKET_CATEGORY_ID)
if category_pk == settings.TICKET_CATEGORY_ID:
for _ in range(0, order_product.quantity):
ticket = Ticket(

View file

@ -6,6 +6,11 @@
{% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
<a href="{% add_preserved_filters history_url %}" class="historylink">{% trans "History" %}</a>
</li>
{% if not original.paid and original.open != None %}
<li>
<a href="{% url 'shop:mark_order_as_paid' original.pk|admin_urlquote %}">Mark as paid</a>
</li>
{% endif %}
{% if original.paid and original.invoice %}
<li>
{% url 'shop:download_invoice' original.pk|admin_urlquote as invoice_url %}

View file

@ -9,6 +9,7 @@ urlpatterns = [
url(r'orders/$', OrderListView.as_view(), name='order_list'),
url(r'orders/(?P<pk>[0-9]+)/$', OrderDetailView.as_view(), name='order_detail'),
url(r'orders/(?P<pk>[0-9]+)/invoice/$', DownloadInvoiceView.as_view(), name='download_invoice'),
url(r'orders/(?P<pk>[0-9]+)/mark_as_paid/$', OrderMarkAsPaidView.as_view(), name='mark_order_as_paid'),
#url(r'orders/(?P<pk>[0-9]+)/pay/creditcard/$', EpayFormView.as_view(), name='epay_form'),
#url(r'orders/(?P<pk>[0-9]+)/pay/creditcard/callback/$',EpayCallbackView.as_view(), name='epay_callback'),

View file

@ -566,3 +566,20 @@ class TicketDetailView(LoginRequiredMixin, UpdateView, DetailView):
if ticket.order.user != request.user:
return Http404
return super(TicketDetailView, self).dispatch(request, *args, **kwargs)
class OrderMarkAsPaidView(LoginRequiredMixin, SingleObjectMixin, View):
model = Order
def get(self, request, *args, **kwargs):
if not request.user.is_staff:
messages.error(request, 'You do not have permissions to do that.')
return HttpResponseRedirect(reverse_lazy('shop:index'))
else:
messages.success(request, 'The order has been marked as paid.')
order = self.get_object()
order.mark_as_paid()
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))