aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site
diff options
context:
space:
mode:
Diffstat (limited to 'pydis_site')
-rw-r--r--pydis_site/apps/events/tests/test_views.py16
-rw-r--r--pydis_site/apps/events/views/page.py15
-rw-r--r--pydis_site/settings.py9
3 files changed, 15 insertions, 25 deletions
diff --git a/pydis_site/apps/events/tests/test_views.py b/pydis_site/apps/events/tests/test_views.py
index 9561255f..0db0ef9a 100644
--- a/pydis_site/apps/events/tests/test_views.py
+++ b/pydis_site/apps/events/tests/test_views.py
@@ -1,12 +1,11 @@
from pathlib import Path
-from unittest.mock import patch
from django.conf import settings
-from django.test import TestCase
+from django.test import TestCase, override_settings
from django_hosts.resolvers import reverse
-PAGES_PATH = Path(settings.BASE_DIR, "pydis_site", "apps", "events", "tests", "test-pages")
+PAGES_PATH = Path(settings.BASE_DIR, "pydis_site", "templates", "events", "test-pages")
class IndexTests(TestCase):
@@ -18,7 +17,7 @@ class IndexTests(TestCase):
class PageTests(TestCase):
- @patch("pydis_site.apps.events.views.page.PAGES_PATH", new=PAGES_PATH)
+ @override_settings(PAGES_PATH=PAGES_PATH)
def test_valid_event_page_reponse_200(self):
"""Should return response code 200 when visiting valid event page."""
pages = (
@@ -30,7 +29,7 @@ class PageTests(TestCase):
resp = self.client.get(page)
self.assertEqual(resp.status_code, 200)
- @patch("pydis_site.apps.events.views.page.PAGES_PATH", new=PAGES_PATH)
+ @override_settings(PAGES_PATH=PAGES_PATH)
def test_invalid_event_page_404(self):
"""Should return response code 404 when visiting invalid event page."""
pages = (
@@ -41,10 +40,3 @@ class PageTests(TestCase):
with self.subTest(page=page):
resp = self.client.get(page)
self.assertEqual(resp.status_code, 404)
-
- @patch("pydis_site.apps.events.views.page.PAGES_PATH")
- def test_removing_trailing_slash_from_path(self, path_mock):
- """Should remove trailing slash from path when this exists there."""
- url = reverse("events:page", ("this-is-my-event/",))
- self.client.get(url)
- path_mock.joinpath.assert_called_with("this-is-my-event")
diff --git a/pydis_site/apps/events/views/page.py b/pydis_site/apps/events/views/page.py
index 1e3532f9..d3dcdf3f 100644
--- a/pydis_site/apps/events/views/page.py
+++ b/pydis_site/apps/events/views/page.py
@@ -1,27 +1,24 @@
-from pathlib import Path
from typing import List
from django.conf import settings
from django.http import Http404
from django.views.generic import TemplateView
-PAGES_PATH = Path(settings.BASE_DIR, "pydis_site", "apps", "events", "pages")
-
class PageView(TemplateView):
"""Handles event pages showing."""
def get_template_names(self) -> List[str]:
- """Get specific template names"""
- page_path = PAGES_PATH / self.kwargs['path']
- if page_path.exists() and page_path.is_dir():
- page_path = page_path.joinpath("_index.html")
+ """Get specific template names."""
+ page_path = settings.PAGES_PATH / self.kwargs['path']
+ if page_path.is_dir():
+ page_path = page_path / "_index.html"
self.kwargs['path'] = f"{self.kwargs['path']}/_index.html"
else:
- page_path = PAGES_PATH.joinpath(f"{self.kwargs['path']}.html")
+ page_path = settings.PAGES_PATH / f"{self.kwargs['path']}.html"
self.kwargs['path'] = f"{self.kwargs['path']}.html"
if not page_path.exists():
raise Http404
- return [self.kwargs['path']]
+ return [f"events/{settings.PAGES_PATH.name}/{self.kwargs['path']}"]
diff --git a/pydis_site/settings.py b/pydis_site/settings.py
index 0387567f..67afdbcb 100644
--- a/pydis_site/settings.py
+++ b/pydis_site/settings.py
@@ -13,6 +13,7 @@ https://docs.djangoproject.com/en/2.1/ref/settings/
import os
import secrets
import sys
+from pathlib import Path
import environ
import sentry_sdk
@@ -117,13 +118,13 @@ MIDDLEWARE = [
]
ROOT_URLCONF = 'pydis_site.urls'
+# Path for events pages
+PAGES_PATH = Path(BASE_DIR, "pydis_site", "templates", "events", "pages")
+
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': [
- os.path.join(BASE_DIR, 'pydis_site', 'templates'),
- os.path.join(BASE_DIR, 'pydis_site', 'apps', 'events', 'pages'),
- ],
+ 'DIRS': [os.path.join(BASE_DIR, 'pydis_site', 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'builtins': [