aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2021-04-16 16:36:28 +0300
committerGravatar ks129 <[email protected]>2021-05-03 20:19:50 +0300
commit1046fc5823e81672fec8ed55c0a974ea95837f0a (patch)
tree105adf437f17c73124376df1fcd966ee37857554 /pydis_site
parentAdd code jam pages redirects (diff)
Migrate redirections from settings.py -> redirects.yaml
Diffstat (limited to 'pydis_site')
-rw-r--r--pydis_site/apps/redirect/redirects.yaml53
-rw-r--r--pydis_site/apps/redirect/tests.py13
-rw-r--r--pydis_site/apps/redirect/urls.py9
-rw-r--r--pydis_site/settings.py35
4 files changed, 66 insertions, 44 deletions
diff --git a/pydis_site/apps/redirect/redirects.yaml b/pydis_site/apps/redirect/redirects.yaml
new file mode 100644
index 00000000..546e24ae
--- /dev/null
+++ b/pydis_site/apps/redirect/redirects.yaml
@@ -0,0 +1,53 @@
+# Resources
+resources_index_redirect:
+ original_path: pages/resources/
+ redirect_route: "resources:index"
+
+resources_resources_redirect:
+ original_path: pages/resources/<str:category>/
+ redirect_route: "resources:resources"
+
+# Events
+events_index_redirect:
+ original_path: pages/events/
+ redirect_route: "events:index"
+
+events_code_jams_index_redirect:
+ original_path: pages/code-jams/
+ redirect_route: "events:page"
+ redirect_arguments: ["code-jams"]
+
+events_code_jams_one_redirect:
+ original_path: pages/code-jams/code-jam-1-snakes-bot/
+ redirect_route: "events:page"
+ redirect_arguments: ["code-jams/1"]
+
+events_code_jams_two_redirect:
+ original_path: pages/code-jams/code-jam-2/
+ redirect_route: "events:page"
+ redirect_arguments: ["code-jams/2"]
+
+events_code_jams_three_redirect:
+ original_path: pages/code-jams/code-jam-3/
+ redirect_route: "events:page"
+ redirect_arguments: ["code-jams/3"]
+
+events_code_jams_four_redirect:
+ original_path: pages/code-jams/code-jam-4/
+ redirect_route: "events:page"
+ redirect_arguments: ["code-jams/4"]
+
+events_code_jams_five_redirect:
+ original_path: pages/code-jams/code-jam-5/
+ redirect_route: "events:page"
+ redirect_arguments: ["code-jams/5"]
+
+events_code_jams_six_redirect:
+ original_path: pages/code-jams/code-jam-6/
+ redirect_route: "events:page"
+ redirect_arguments: ["code-jams/6"]
+
+events_code_jams_seven_redirect:
+ original_path: pages/code-jams/code-jam-7/
+ redirect_route: "events:page"
+ redirect_arguments: ["code-jams/7"]
diff --git a/pydis_site/apps/redirect/tests.py b/pydis_site/apps/redirect/tests.py
index a4bab933..ac60d1c8 100644
--- a/pydis_site/apps/redirect/tests.py
+++ b/pydis_site/apps/redirect/tests.py
@@ -1,3 +1,4 @@
+import yaml
from django.conf import settings
from django.test import TestCase
from django.urls import reverse
@@ -16,12 +17,12 @@ class RedirectTests(TestCase):
1. Redirects only once.
2. Redirects to right URL.
"""
- for original_path, (redirect_route, name, static_args) in settings.REDIRECTIONS.items():
+ for name, data in yaml.safe_load(settings.REDIRECTIONS_PATH.read_text()).items():
with self.subTest(
- original_path=original_path,
- redirect_route=redirect_route,
+ original_path=data["original_path"],
+ redirect_route=data["redirect_route"],
name=name,
- static_args=static_args,
+ redirect_arguments=tuple(data.get("redirect_arguments", ())),
args=TESTING_ARGUMENTS.get(name, ())
):
resp = self.client.get(
@@ -36,8 +37,8 @@ class RedirectTests(TestCase):
self.assertRedirects(
resp,
reverse(
- f"home:{redirect_route}",
- args=TESTING_ARGUMENTS.get(name, ()) + static_args
+ f"home:{data['redirect_route']}",
+ args=TESTING_ARGUMENTS.get(name, ()) + tuple(data.get("redirect_arguments", ()))
),
status_code=301
)
diff --git a/pydis_site/apps/redirect/urls.py b/pydis_site/apps/redirect/urls.py
index 747c6bf4..d94a1ab7 100644
--- a/pydis_site/apps/redirect/urls.py
+++ b/pydis_site/apps/redirect/urls.py
@@ -1,3 +1,4 @@
+import yaml
from django.conf import settings
from django.urls import path
@@ -6,12 +7,12 @@ from pydis_site.apps.redirect.views import CustomRedirectView
app_name = "redirect"
urlpatterns = [
path(
- original,
+ data["original_path"],
CustomRedirectView.as_view(
- pattern_name=redirect_route,
- static_args=params
+ pattern_name=data["redirect_route"],
+ static_args=tuple(data.get("redirect_arguments", ()))
),
name=name
)
- for original, (redirect_route, name, params) in settings.REDIRECTIONS.items()
+ for name, data in yaml.safe_load(settings.REDIRECTIONS_PATH.read_text()).items()
]
diff --git a/pydis_site/settings.py b/pydis_site/settings.py
index f6ba42cd..65bd8e7a 100644
--- a/pydis_site/settings.py
+++ b/pydis_site/settings.py
@@ -292,37 +292,4 @@ EVENTS_PAGES_PATH = Path(BASE_DIR, "pydis_site", "templates", "events", "pages")
# Path for content pages
CONTENT_PAGES_PATH = Path(BASE_DIR, "pydis_site", "apps", "content", "resources")
-# Define redirections here so these can be used for URLs and tests.
-# Format: "original-path/": (
-# "route:name", "redirection_route_name", ("destination", "args")
-# )
-REDIRECTIONS = {
- # Resources
- "pages/resources/": ("resources:index", "resources_index_redirect", ()),
- "pages/resources/<str:category>/": ("resources:resources", "resources_resources_redirect", ()),
-
- # Events
- "pages/events/": ("events:index", "events_index_redirect", ()),
- "pages/code-jams/": ("events:page", "events_code_jams_index_redirect", ("code-jams",)),
- "pages/code-jams/code-jam-1-snakes-bot/": (
- "events:page", "events_code_jams_one_redirect", ("code-jams/1",)
- ),
- "pages/code-jams/code-jam-2/": (
- "events:page", "events_code_jams_two_redirect", ("code-jams/2",)
- ),
- "pages/code-jams/code-jam-3/": (
- "events:page", "events_code_jams_three_redirect", ("code-jams/3",)
- ),
- "pages/code-jams/code-jam-4/": (
- "events:page", "events_code_jams_four_redirect", ("code-jams/4",)
- ),
- "pages/code-jams/code-jam-5/": (
- "events:page", "events_code_jams_five_redirect", ("code-jams/5",)
- ),
- "pages/code-jams/code-jam-6/": (
- "events:page", "events_code_jams_five_redirect", ("code-jams/6",)
- ),
- "pages/code-jams/code-jam-7/": (
- "events:page", "events_code_jams_five_redirect", ("code-jams/7",)
- ),
-}
+REDIRECTIONS_PATH = Path(BASE_DIR, "pydis_site", "apps", "redirect", "redirects.yaml")