From d39a01af4df30f01f26d3e16247134d0975503e3 Mon Sep 17 00:00:00 2001 From: luelista Date: Fri, 28 Mar 2025 17:59:55 +0100 Subject: [PATCH] Fix bulk edit of revoked devices (Z#23187227) (#4960) When selecting revoked devices and using bulk edit on them, the edit was performed either *on all active devices* or not at all. This commit fixes that behaviour so that the selected devices are edited. --- src/pretix/control/views/organizer.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pretix/control/views/organizer.py b/src/pretix/control/views/organizer.py index c0e90361e1..f16546e9fc 100644 --- a/src/pretix/control/views/organizer.py +++ b/src/pretix/control/views/organizer.py @@ -44,7 +44,9 @@ import dateutil from django import forms from django.conf import settings from django.contrib import messages -from django.core.exceptions import PermissionDenied, ValidationError +from django.core.exceptions import ( + BadRequest, PermissionDenied, ValidationError, +) from django.core.files import File from django.db import transaction from django.db.models import ( @@ -944,13 +946,16 @@ class DeviceQueryMixin: qs = self.request.organizer.devices.prefetch_related( 'limit_events', 'gate', ).order_by('revoked', '-device_id') - if self.filter_form.is_valid(): - qs = self.filter_form.filter_qs(qs) if 'device' in self.request_data and '__ALL' not in self.request_data: qs = qs.filter( id__in=self.request_data.getlist('device') ) + elif self.request.method == 'GET' or '__ALL' in self.request_data: + if self.filter_form.is_valid(): + qs = self.filter_form.filter_qs(qs) + else: + raise BadRequest("No devices selected") return qs