diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index 229b04780c..39e515d89e 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -2790,7 +2790,16 @@ class ExportView(EventPermissionRequiredMixin, ExportMixin, ListView): @transaction.atomic() def post(self, request, *args, **kwargs): if request.POST.get("schedule") == "save": - if self.exporter.form.is_valid() and self.rrule_form.is_valid() and self.schedule_form.is_valid(): + if not self.has_permission(): + messages.error( + self.request, + _( + "Your user account does not have sufficient permission to run this report, therefore " + "you cannot schedule it." + ) + ) + return super().get(request, *args, **kwargs) + elif self.exporter.form.is_valid() and self.rrule_form.is_valid() and self.schedule_form.is_valid(): self.schedule_form.instance.export_identifier = self.exporter.identifier self.schedule_form.instance.export_form_data = self.exporter.form.cleaned_data self.schedule_form.instance.schedule_rrule = str(self.rrule_form.to_rrule()) @@ -2869,17 +2878,8 @@ class ExportView(EventPermissionRequiredMixin, ExportMixin, ListView): def get_context_data(self, **kwargs): ctx = super().get_context_data(**kwargs) if "schedule" in self.request.POST or self.scheduled: - if "schedule" in self.request.POST and not self.has_permission(): - messages.error( - self.request, - _( - "Your user account does not have sufficient permission to run this report, therefore " - "you cannot schedule it." - ) - ) - else: - ctx['schedule_form'] = self.schedule_form - ctx['rrule_form'] = self.rrule_form + ctx['schedule_form'] = self.schedule_form + ctx['rrule_form'] = self.rrule_form elif not self.exporter: for s in ctx['scheduled']: try: diff --git a/src/pretix/control/views/organizer.py b/src/pretix/control/views/organizer.py index 3d84cb5687..3c3c72c753 100644 --- a/src/pretix/control/views/organizer.py +++ b/src/pretix/control/views/organizer.py @@ -2113,7 +2113,16 @@ class ExportView(OrganizerPermissionRequiredMixin, ExportMixin, ListView): @transaction.atomic() def post(self, request, *args, **kwargs): if request.POST.get("schedule") == "save": - if self.exporter.form.is_valid() and self.rrule_form.is_valid() and self.schedule_form.is_valid(): + if not self.has_permission(): + messages.error( + self.request, + _( + "Your user account does not have sufficient permission to run this report, therefore " + "you cannot schedule it." + ) + ) + return super().get(request, *args, **kwargs) + elif self.exporter.form.is_valid() and self.rrule_form.is_valid() and self.schedule_form.is_valid(): self.schedule_form.instance.export_identifier = self.exporter.identifier self.schedule_form.instance.export_form_data = self.exporter.form.cleaned_data self.schedule_form.instance.schedule_rrule = str(self.rrule_form.to_rrule()) @@ -2200,17 +2209,8 @@ class ExportView(OrganizerPermissionRequiredMixin, ExportMixin, ListView): def get_context_data(self, **kwargs): ctx = super().get_context_data(**kwargs) if "schedule" in self.request.POST or self.scheduled: - if "schedule" in self.request.POST and not self.has_permission(): - messages.error( - self.request, - _( - "Your user account does not have sufficient permission to run this report, therefore " - "you cannot schedule it." - ) - ) - else: - ctx['schedule_form'] = self.schedule_form - ctx['rrule_form'] = self.rrule_form + ctx['schedule_form'] = self.schedule_form + ctx['rrule_form'] = self.rrule_form elif not self.exporter: for s in ctx['scheduled']: try: