From 6c813ea299e752ddd5867007e6539f1a9ff9760c Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 17 Jul 2023 11:44:18 +0200 Subject: [PATCH] Waiting list: Make it harder to accidentally delete full list --- src/pretix/control/views/waitinglist.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pretix/control/views/waitinglist.py b/src/pretix/control/views/waitinglist.py index d504fc9c8..b2b6860e3 100644 --- a/src/pretix/control/views/waitinglist.py +++ b/src/pretix/control/views/waitinglist.py @@ -91,7 +91,7 @@ class WaitingListQuerySetMixin: return self.request.POST return self.request.GET - def get_queryset(self): + def get_queryset(self, force_filtered=False): qs = WaitingListEntry.objects.filter( event=self.request.event ).select_related('item', 'variation', 'voucher').prefetch_related( @@ -135,6 +135,8 @@ class WaitingListQuerySetMixin: qs = qs.filter( id__in=self.request_data.getlist('entry') ) + elif force_filtered and '__ALL' not in self.request_data: + qs = qs.none() return qs @@ -158,7 +160,7 @@ class WaitingListActionView(EventPermissionRequiredMixin, WaitingListQuerySetMix 'forbidden': self.get_queryset().filter(voucher__isnull=False), }) elif request.POST.get('action') == 'delete_confirm': - for obj in self.get_queryset(): + for obj in self.get_queryset(force_filtered=True): if not obj.voucher_id: obj.log_action('pretix.event.orders.waitinglist.deleted', user=self.request.user) obj.delete()