Move method once again

This commit is contained in:
Raphael Michel
2019-08-06 11:03:52 +02:00
parent 527a250435
commit cfbfb74996

View File

@@ -99,7 +99,21 @@ class MetaDataEditorMixin:
f.instance.delete()
class EventUpdate(EventSettingsViewMixin, EventPermissionRequiredMixin, MetaDataEditorMixin, UpdateView):
class DecoupleMixin:
def _save_decoupled(self, form):
# Save fields that are currently only set via the organizer but should be decoupled
fields = set()
for f in self.request.POST.getlist("decouple"):
fields |= set(f.split(","))
for f in fields:
if f not in form.fields:
continue
if f not in self.request.event.settings._cache():
self.request.event.settings.set(f, self.request.event.settings.get(f))
class EventUpdate(DecoupleMixin, EventSettingsViewMixin, EventPermissionRequiredMixin, MetaDataEditorMixin, UpdateView):
model = Event
form_class = EventUpdateForm
template_name = 'pretixcontrol/event/settings.html'
@@ -327,7 +341,7 @@ class PaymentProviderSettings(EventSettingsViewMixin, EventPermissionRequiredMix
return self.get(request)
class EventSettingsFormView(EventPermissionRequiredMixin, FormView):
class EventSettingsFormView(EventPermissionRequiredMixin, DecoupleMixin, FormView):
model = Event
permission = 'can_change_event_settings'
@@ -343,17 +357,6 @@ class EventSettingsFormView(EventPermissionRequiredMixin, FormView):
def form_success(self):
pass
def _save_decoupled(self, form):
# Save fields that are currently only set via the organizer but should be decoupled
fields = set()
for f in self.request.POST.getlist("decouple"):
fields |= set(f.split(","))
for f in fields:
if f not in form.fields:
continue
if f not in self.request.event.settings._cache():
self.request.event.settings.set(f, self.request.event.settings.get(f))
@transaction.atomic
def post(self, request, *args, **kwargs):
form = self.get_form()