def get(self, request, *args, **kwargs): s = OrganizerSettingsSerializer(instance=request.organizer.settings, organizer=request.organizer, context={ 'request': request }) if 'explain' in request.GET: return Response({ fname: { 'value': s.data[fname], 'label': getattr(field, '_label', fname), 'help_text': getattr(field, '_help_text', None) } for fname, field in s.fields.items() }) return Response(s.data)
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)