def post(self, request, *args, **kwargs): form = self.get_form() if form.is_valid(): form.save() if form.has_changed(): self.request.organizer.log_action( 'pretix.organizer.settings', user=self.request.user, data={ k: (form.cleaned_data.get(k).name if isinstance( form.cleaned_data.get(k), File) else form.cleaned_data.get(k)) for k in form.changed_data }) regenerate_organizer_css.apply_async( args=(self.request.organizer.pk, )) messages.success( self.request, _('Your changes have been saved. Please note that it can ' 'take a short period of time until your changes become ' 'active.')) return redirect(self.get_success_url()) else: messages.error( self.request, _('We could not save your changes. See below for details.')) return self.get(request)
def form_valid(self, form): self.save_formset(self.object) self.sform.save() change_css = False if self.sform.has_changed(): self.request.organizer.log_action( 'pretix.organizer.settings', user=self.request.user, data={ k: (self.sform.cleaned_data.get(k).name if isinstance(self.sform.cleaned_data.get(k), File) else self.sform.cleaned_data.get(k)) for k in self.sform.changed_data } ) display_properties = ( 'primary_color', 'theme_color_success', 'theme_color_danger', 'primary_font', ) if any(p in self.sform.changed_data for p in display_properties): change_css = True if form.has_changed(): self.request.organizer.log_action( 'pretix.organizer.changed', user=self.request.user, data={k: form.cleaned_data.get(k) for k in form.changed_data} ) if change_css: regenerate_organizer_css.apply_async(args=(self.request.organizer.pk,)) messages.success(self.request, _('Your changes have been saved. Please note that it can ' 'take a short period of time until your changes become ' 'active.')) else: messages.success(self.request, _('Your changes have been saved.')) return super().form_valid(form)
def patch(self, request, *wargs, **kwargs): s = OrganizerSettingsSerializer(instance=request.organizer.settings, data=request.data, partial=True, organizer=request.organizer) s.is_valid(raise_exception=True) with transaction.atomic(): s.save() self.request.organizer.log_action( 'pretix.organizer.settings', user=self.request.user, auth=self.request.auth, data={k: v for k, v in s.validated_data.items()}) if any(p in s.changed_data for p in SETTINGS_AFFECTING_CSS): regenerate_organizer_css.apply_async(args=(request.organizer.pk, )) s = OrganizerSettingsSerializer(instance=request.organizer.settings, organizer=request.organizer) return Response(s.data)
def post(self, request, *args, **kwargs): form = self.get_form() if form.is_valid(): form.save() if form.has_changed(): self.request.organizer.log_action( 'pretix.organizer.settings', user=self.request.user, data={ k: (form.cleaned_data.get(k).name if isinstance(form.cleaned_data.get(k), File) else form.cleaned_data.get(k)) for k in form.changed_data } ) regenerate_organizer_css.apply_async(args=(self.request.organizer.pk,)) messages.success(self.request, _('Your changes have been saved. Please note that it can ' 'take a short period of time until your changes become ' 'active.')) return redirect(self.get_success_url()) else: messages.error(self.request, _('We could not save your changes. See below for details.')) return self.get(request)