add mass order cancel adminaction
This commit is contained in:
parent
53adb50baf
commit
481a7d1a95
|
@ -163,7 +163,7 @@ class OrderAdmin(admin.ModelAdmin):
|
|||
|
||||
inlines = [ProductInline, ShopTicketInline]
|
||||
|
||||
actions = ['mark_order_as_paid', 'mark_order_as_refunded']
|
||||
actions = ['mark_order_as_paid', 'mark_order_as_refunded', 'mark_order_as_cancelled']
|
||||
|
||||
def mark_order_as_paid(self, request, queryset):
|
||||
for order in queryset.filter(paid=False):
|
||||
|
@ -175,6 +175,11 @@ class OrderAdmin(admin.ModelAdmin):
|
|||
order.mark_as_refunded(request)
|
||||
mark_order_as_refunded.description = 'Mark order(s) as refunded'
|
||||
|
||||
def mark_order_as_cancelled(self, request, queryset):
|
||||
for order in queryset.filter(cancelled=False):
|
||||
order.mark_as_cancelled(request)
|
||||
mark_order_as_cancelled.description = 'Mark order(s) as cancelled'
|
||||
|
||||
|
||||
def get_user_email(obj):
|
||||
return obj.order.user.email
|
||||
|
|
|
@ -227,6 +227,13 @@ class Order(CreatedUpdatedModel):
|
|||
messages.success(request, "Order %s marked as refunded, no tickets to delete" % self.pk)
|
||||
self.save()
|
||||
|
||||
def mark_as_cancelled(self, request):
|
||||
if self.paid:
|
||||
messages.error(request, "Order %s is paid, cannot cancel a paid order!" % self.pk)
|
||||
else:
|
||||
self.cancelled = True
|
||||
self.save()
|
||||
|
||||
def is_not_handed_out(self):
|
||||
if self.orderproductrelation_set.filter(handed_out=True).count() == 0:
|
||||
return True
|
||||
|
|
Loading…
Reference in a new issue