From 9092bfa1cd1d9ae11dc5aebb13a40ab8a18c8af5 Mon Sep 17 00:00:00 2001 From: Michael Collins <15347726+michaeljcollinsuk@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:49:02 +0000 Subject: [PATCH] Revert to using a redirect view --- controlpanel/frontend/views/tool.py | 30 ++++++++++++----------------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/controlpanel/frontend/views/tool.py b/controlpanel/frontend/views/tool.py index fa23b9b4..1b64532b 100644 --- a/controlpanel/frontend/views/tool.py +++ b/controlpanel/frontend/views/tool.py @@ -5,11 +5,8 @@ import structlog from django.conf import settings from django.contrib import messages -from django.http import HttpResponseRedirect from django.urls import reverse_lazy -from django.views import View -from django.views.generic import TemplateView -from django.views.generic.edit import FormMixin, ProcessFormView +from django.views.generic import RedirectView, TemplateView from rules.contrib.views import PermissionRequiredMixin # First-party/Local @@ -116,21 +113,18 @@ def build_airflow_url(self, environment): return f"{settings.AWS_SERVICE_URL}/?{args}" -class RestartTool(OIDCLoginRequiredMixin, FormMixin, ProcessFormView): - http_method_names = ["post"] - success_url = reverse_lazy("list-tools") - form_class = ToolDeploymentRestartForm +class RestartTool(OIDCLoginRequiredMixin, RedirectView): + url = reverse_lazy("list-tools") - def get_form_kwargs(self): - kwargs = super().get_form_kwargs() - kwargs["user"] = self.request.user - return kwargs + def post(self, request, *args, **kwargs): + form = ToolDeploymentRestartForm(data=request.POST, user=request.user) + if not form.is_valid(): + messages.error( + request, + "Something went wrong, please try again. If the issue persists please contact support.", # noqa + ) + return self.get(request, *args, **kwargs) - def form_invalid(self, form): - messages.error(self.request, "Something went wrong, please try again.") - return HttpResponseRedirect(self.get_success_url()) - - def form_valid(self, form): tool_deployment = form.cleaned_data["tool_deployment"] start_background_task( "tool.restart", @@ -141,4 +135,4 @@ def form_valid(self, form): }, ) messages.success(self.request, f"Restarting {tool_deployment.tool.name}...") - return super().form_valid(form) + return self.get(request, *args, **kwargs)