diff options
author | 2021-05-03 20:16:18 +0300 | |
---|---|---|
committer | 2021-05-03 20:19:50 +0300 | |
commit | d3d0db3577dcae39c293fcb1e8478070c008a8ff (patch) | |
tree | be5396334fdad4d369130a6f658e79408338040a | |
parent | Migrate redirections from settings.py -> redirects.yaml (diff) |
Implement hacky solution to allow prefix redirects
-rw-r--r-- | pydis_site/apps/redirect/urls.py | 3 | ||||
-rw-r--r-- | pydis_site/apps/redirect/views.py | 8 |
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) |