コード例 #1
0
ファイル: orders.py プロジェクト: reynoldsjk1/pretix
 def post(self, *args, **kwargs):
     to = self.request.POST.get('status', '')
     if self.order.status in (Order.STATUS_PENDING,
                              Order.STATUS_EXPIRED) and to == 'p':
         if not self.mark_paid_form.is_valid():
             return render(self.request, 'pretixcontrol/order/pay.html', {
                 'form': self.mark_paid_form,
                 'order': self.order,
             })
         try:
             mark_order_paid(self.order,
                             manual=True,
                             user=self.request.user,
                             count_waitinglist=False,
                             force=self.mark_paid_form.cleaned_data.get(
                                 'force', False))
         except Quota.QuotaExceededException as e:
             messages.error(self.request, str(e))
         except SendMailException:
             messages.warning(
                 self.request,
                 _('The order has been marked as paid, but we were unable to send a confirmation mail.'
                   ))
         else:
             messages.success(self.request,
                              _('The order has been marked as paid.'))
     elif self.order.cancel_allowed() and to == 'c':
         cancel_order(self.order,
                      user=self.request.user,
                      send_mail=self.request.POST.get("send_email") == "on")
         messages.success(self.request, _('The order has been canceled.'))
     elif self.order.status == Order.STATUS_PAID and to == 'n':
         self.order.status = Order.STATUS_PENDING
         self.order.payment_manual = True
         self.order.save()
         self.order.log_action('pretix.event.order.unpaid',
                               user=self.request.user)
         messages.success(self.request,
                          _('The order has been marked as not paid.'))
     elif self.order.status == Order.STATUS_PENDING and to == 'e':
         mark_order_expired(self.order, user=self.request.user)
         messages.success(self.request,
                          _('The order has been marked as expired.'))
     elif self.order.status == Order.STATUS_PAID and to == 'r':
         if not self.payment_provider:
             messages.error(
                 self.request,
                 _('This order is not assigned to a known payment provider.'
                   ))
         else:
             ret = self.payment_provider.order_control_refund_perform(
                 self.request, self.order)
             if ret:
                 return redirect(ret)
     return redirect(self.get_order_url())
コード例 #2
0
ファイル: order.py プロジェクト: bsod85/pretix
    def mark_expired(self, request, **kwargs):
        order = self.get_object()

        if order.status != Order.STATUS_PENDING:
            return Response({'detail': 'The order is not pending.'},
                            status=status.HTTP_400_BAD_REQUEST)

        mark_order_expired(
            order,
            user=request.user if request.user.is_authenticated else None,
            auth=request.auth,
        )
        return self.retrieve(request, [], **kwargs)
コード例 #3
0
    def mark_expired(self, request, **kwargs):
        order = self.get_object()

        if order.status != Order.STATUS_PENDING:
            return Response(
                {'detail': 'The order is not pending.'},
                status=status.HTTP_400_BAD_REQUEST
            )

        mark_order_expired(
            order,
            user=request.user if request.user.is_authenticated else None,
            auth=request.auth,
        )
        return self.retrieve(request, [], **kwargs)