From a84f38758817c8786a0a0ae8587ffd70dd16eb09 Mon Sep 17 00:00:00 2001 From: Hugo LEVY-FALK Date: Mon, 8 Jan 2018 11:04:00 +0100 Subject: [PATCH] Fix preferences/edit_options/OptionalUser --- preferences/views.py | 57 ++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/preferences/views.py b/preferences/views.py index 7660a7ef..c7ee5202 100644 --- a/preferences/views.py +++ b/preferences/views.py @@ -79,42 +79,41 @@ def display_options(request): @login_required -@permission_required('admin') def edit_options(request, section): """ Edition des préférences générales""" model = getattr(models, section, None) form_instance = getattr(forms, 'Edit' + section + 'Form', None) - if model and form: - options_instance, _created = model.objects.get_or_create() - can, msg = options_instance.can_edit(request.user) - if not can: - messages.error(request, msg or "Vous ne pouvez pas éditer cette\ - option.") - return redirect(reverse('index')) - options = form_instance( - request.POST or None, - instance=options_instance - ) - if options.is_valid(): - with transaction.atomic(), reversion.create_revision(): - options.save() - reversion.set_user(request.user) - reversion.set_comment( - "Champs modifié(s) : %s" % ', '.join( - field for field in options.changed_data - ) - ) - messages.success(request, "Préférences modifiées") - return redirect(reverse('preferences:display-options')) - return form( - {'options': options}, - 'preferences/edit_preferences.html', - request - ) - else: + if not (model or form_instance): messages.error(request, "Objet inconnu") return redirect(reverse('preferences:display-options')) + options_instance, _created = model.objects.get_or_create() + can, msg = options_instance.can_edit(request.user) + if not can: + messages.error(request, msg or "Vous ne pouvez pas éditer cette\ + option.") + return redirect(reverse('index')) + options = form_instance( + request.POST or None, + instance=options_instance + ) + if options.is_valid(): + with transaction.atomic(), reversion.create_revision(): + options.save() + reversion.set_user(request.user) + reversion.set_comment( + "Champs modifié(s) : %s" % ', '.join( + field for field in options.changed_data + ) + ) + messages.success(request, "Préférences modifiées") + return redirect(reverse('preferences:display-options')) + return form( + {'options': options}, + 'preferences/edit_preferences.html', + request + ) + @login_required @can_create(Service)