From 27017cb8c5b655268ce836e00dbb04699752b825 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Wed, 23 Dec 2020 12:14:21 +0100
Subject: [PATCH] Restructure class-based view to properly encapsulate request
 methods

---
 aleksis/core/views.py | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/aleksis/core/views.py b/aleksis/core/views.py
index dc3ce194d..26f56e7e6 100644
--- a/aleksis/core/views.py
+++ b/aleksis/core/views.py
@@ -782,7 +782,7 @@ class DashboardWidgetDeleteView(PermissionRequiredMixin, AdvancedDeleteView):
 class EditDashboardView(View):
     """View for editing dashboard widget order."""
 
-    def get(self, request):
+    def get_context_data(self, request):
         context = {}
 
         widgets = request.user.person.dashboard_widgets
@@ -801,10 +801,14 @@ class EditDashboardView(View):
         formset = DashboardWidgetOrderFormSet(
             request.POST or None, initial=initial, prefix="widget_order"
         )
-
         context["formset"] = formset
 
-        if request.method == "POST" and formset.is_valid():
+        return context
+
+    def post(self, request):
+        context = self.get_context_data(request)
+
+        if context["formset"].is_valid():
             added_objects = []
             for form in formset:
                 if not form.cleaned_data["order"]:
@@ -826,7 +830,8 @@ class EditDashboardView(View):
                 request, _("Your dashboard configuration has been saved successfully.")
             )
             return redirect("index")
-        return render(request, "core/edit_dashboard.html", context=context)
 
-    def post(self, request):
-        return self.get(request)
+    def get(self, request):
+        context = self.get_context_data(request)
+
+        return render(request, "core/edit_dashboard.html", context=context)
-- 
GitLab