From 1d33f1134e49fb14d662556d5de6232d0a5acb39 Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Sat, 10 Apr 2021 13:45:26 +0300 Subject: Add redirect app to settings and add resources redirections config --- pydis_site/settings.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'pydis_site/settings.py') diff --git a/pydis_site/settings.py b/pydis_site/settings.py index d409bb21..bc7ff1f3 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -87,6 +87,7 @@ INSTALLED_APPS = [ 'pydis_site.apps.resources', 'pydis_site.apps.content', 'pydis_site.apps.events', + 'pydis_site.apps.redirect', 'django.contrib.admin', 'django.contrib.auth', @@ -290,3 +291,12 @@ 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", ("testing", "args")) +REDIRECTIONS = { + "pages/resources/": ("resources:index", "resources_index_redirect", ()), + "pages/resources//": ( + "resources:resources", "resources_resources_redirect", ("reading",) + ), +} -- cgit v1.2.3 From a80103e39050165e6f6af8590a858c0737dee09e Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Sat, 10 Apr 2021 13:53:25 +0300 Subject: Add events index redirection --- pydis_site/settings.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'pydis_site/settings.py') diff --git a/pydis_site/settings.py b/pydis_site/settings.py index bc7ff1f3..f9a5d72f 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -299,4 +299,7 @@ REDIRECTIONS = { "pages/resources//": ( "resources:resources", "resources_resources_redirect", ("reading",) ), + "pages/events/": ( + "events:index", "events_index_redirect", () + ) } -- cgit v1.2.3 From e943d24ffb9979b65cf29c048b7de984a61a3af1 Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Thu, 15 Apr 2021 16:26:30 +0300 Subject: Migrate redirections definition to not include testing args --- pydis_site/settings.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'pydis_site/settings.py') diff --git a/pydis_site/settings.py b/pydis_site/settings.py index f9a5d72f..4e14ab70 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -293,13 +293,12 @@ EVENTS_PAGES_PATH = Path(BASE_DIR, "pydis_site", "templates", "events", "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", ("testing", "args")) +# Format: "original-path/": ( +# "route:name", "redirection_route_name", ("destination", "args") +# ) REDIRECTIONS = { "pages/resources/": ("resources:index", "resources_index_redirect", ()), - "pages/resources//": ( - "resources:resources", "resources_resources_redirect", ("reading",) - ), - "pages/events/": ( - "events:index", "events_index_redirect", () - ) + "pages/resources//": ("resources:resources", "resources_resources_redirect", ()), + "pages/events/": ("events:index", "events_index_redirect", ()), + "pages/code-jams/": ("events:page", "events_code_jams_index_redirect", ("code-jams",)), } -- cgit v1.2.3 From eda65754f268dd5bbcde54690c77f0580293975e Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Thu, 15 Apr 2021 16:27:53 +0300 Subject: Add groups with comments to redirections definition --- pydis_site/settings.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'pydis_site/settings.py') diff --git a/pydis_site/settings.py b/pydis_site/settings.py index 4e14ab70..babe9e2c 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -297,8 +297,11 @@ CONTENT_PAGES_PATH = Path(BASE_DIR, "pydis_site", "apps", "content", "resources" # "route:name", "redirection_route_name", ("destination", "args") # ) REDIRECTIONS = { + # Resources "pages/resources/": ("resources:index", "resources_index_redirect", ()), "pages/resources//": ("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",)), } -- cgit v1.2.3 From bdd4c1a31f8b2f7af8c8d7e28484d5b6dab39381 Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Thu, 15 Apr 2021 16:38:17 +0300 Subject: Add code jam pages redirects --- pydis_site/settings.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'pydis_site/settings.py') diff --git a/pydis_site/settings.py b/pydis_site/settings.py index babe9e2c..f6ba42cd 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -304,4 +304,25 @@ REDIRECTIONS = { # 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",) + ), } -- cgit v1.2.3 From 1046fc5823e81672fec8ed55c0a974ea95837f0a Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Fri, 16 Apr 2021 16:36:28 +0300 Subject: Migrate redirections from settings.py -> redirects.yaml --- pydis_site/apps/redirect/redirects.yaml | 53 +++++++++++++++++++++++++++++++++ pydis_site/apps/redirect/tests.py | 13 ++++---- pydis_site/apps/redirect/urls.py | 9 +++--- pydis_site/settings.py | 35 +--------------------- 4 files changed, 66 insertions(+), 44 deletions(-) create mode 100644 pydis_site/apps/redirect/redirects.yaml (limited to 'pydis_site/settings.py') 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// + 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//": ("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") -- cgit v1.2.3