From 3ddc0ec5fa17105f03497e1cb5cd879bb3684085 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Mon, 2 Aug 2021 20:01:46 +0200
Subject: [PATCH] Fix get_form_kwargs

---
 aleksis/apps/resint/rules.py |  3 ++-
 aleksis/apps/resint/views.py | 17 +++++++++--------
 pyproject.toml               |  2 +-
 3 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/aleksis/apps/resint/rules.py b/aleksis/apps/resint/rules.py
index bed4cd4..326dff2 100644
--- a/aleksis/apps/resint/rules.py
+++ b/aleksis/apps/resint/rules.py
@@ -74,7 +74,8 @@ add_perm("resint.view_posters_rule", view_posters_predicate)
 
 # Upload poster
 upload_poster_predicate = view_posters_predicate & (
-    has_global_perm("resint.add_poster") | has_any_object("resint.upload_poster_to_group", PosterGroup)
+    has_global_perm("resint.add_poster")
+    | has_any_object("resint.upload_poster_to_group", PosterGroup)
 )
 add_perm("resint.upload_poster_rule", upload_poster_predicate)
 
diff --git a/aleksis/apps/resint/views.py b/aleksis/apps/resint/views.py
index d9cb28c..d2e16ee 100644
--- a/aleksis/apps/resint/views.py
+++ b/aleksis/apps/resint/views.py
@@ -88,7 +88,14 @@ class PosterListView(PermissionRequiredMixin, ListView):
         return context
 
 
-class PosterUploadView(PermissionRequiredMixin, AdvancedCreateView):
+class RequestMixin:
+    def get_form_kwargs(self) -> Dict[str, Any]:
+        kwargs = super().get_form_kwargs()
+        kwargs["request"] = self.request
+        return kwargs
+
+
+class PosterUploadView(RequestMixin, PermissionRequiredMixin, AdvancedCreateView):
     """Upload a new poster."""
 
     model = Poster
@@ -98,11 +105,8 @@ class PosterUploadView(PermissionRequiredMixin, AdvancedCreateView):
     form_class = PosterUploadForm
     permission_required = "resint.upload_poster_rule"
 
-    def get_form_kwargs(self) -> Dict[str, Any]:
-        return {"request": self.request}
 
-
-class PosterEditView(PermissionRequiredMixin, AdvancedEditView):
+class PosterEditView(RequestMixin, PermissionRequiredMixin, AdvancedEditView):
     """Edit an uploaded poster."""
 
     model = Poster
@@ -112,9 +116,6 @@ class PosterEditView(PermissionRequiredMixin, AdvancedEditView):
     form_class = PosterUploadForm
     permission_required = "resint.edit_poster_rule"
 
-    def get_form_kwargs(self) -> Dict[str, Any]:
-        return {"request": self.request}
-
 
 class PosterDeleteView(PermissionRequiredMixin, AdvancedDeleteView):
     """Delete an uploaded poster."""
diff --git a/pyproject.toml b/pyproject.toml
index de77316..c80197c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "AlekSIS-App-Resint"
-version = "2.0a3"
+version = "2.0a4"
 packages = [
     { include = "aleksis" }
 ]
-- 
GitLab