aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2021-05-03 20:16:18 +0300
committerGravatar ks129 <[email protected]>2021-05-03 20:19:50 +0300
commitd3d0db3577dcae39c293fcb1e8478070c008a8ff (patch)
treebe5396334fdad4d369130a6f658e79408338040a
parentMigrate redirections from settings.py -> redirects.yaml (diff)
Implement hacky solution to allow prefix redirects
-rw-r--r--pydis_site/apps/redirect/urls.py3
-rw-r--r--pydis_site/apps/redirect/views.py8
2 files changed, 8 insertions, 3 deletions
diff --git a/pydis_site/apps/redirect/urls.py b/pydis_site/apps/redirect/urls.py
index d94a1ab7..6187af17 100644
--- a/pydis_site/apps/redirect/urls.py
+++ b/pydis_site/apps/redirect/urls.py
@@ -10,7 +10,8 @@ urlpatterns = [
data["original_path"],
CustomRedirectView.as_view(
pattern_name=data["redirect_route"],
- static_args=tuple(data.get("redirect_arguments", ()))
+ static_args=tuple(data.get("redirect_arguments", ())),
+ prefix_redirect=data.get("prefix_redirect", False)
),
name=name
)
diff --git a/pydis_site/apps/redirect/views.py b/pydis_site/apps/redirect/views.py
index f0dc6825..21180cdf 100644
--- a/pydis_site/apps/redirect/views.py
+++ b/pydis_site/apps/redirect/views.py
@@ -8,6 +8,7 @@ class CustomRedirectView(RedirectView):
permanent = True
static_args = ()
+ prefix_redirect = False
@classmethod
def as_view(cls, **initkwargs):
@@ -16,5 +17,8 @@ class CustomRedirectView(RedirectView):
def get_redirect_url(self, *args, **kwargs) -> t.Optional[str]:
"""Extends default behaviour to use static args."""
- args = args + self.static_args
- return super().get_redirect_url(*args, **kwargs)
+ args = self.static_args + args + tuple(kwargs.values())
+ if self.prefix_redirect:
+ args = ("".join(args),)
+
+ return super().get_redirect_url(*args)