From de8ea5ab30f8653480c3686fe53b877fec52141e Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Mon, 26 Oct 2020 19:43:50 +0200 Subject: Add events app to INSTALLED_APPS --- pydis_site/settings.py | 1 + 1 file changed, 1 insertion(+) (limited to 'pydis_site/settings.py') diff --git a/pydis_site/settings.py b/pydis_site/settings.py index c7c17bb0..f86b04b3 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -83,6 +83,7 @@ INSTALLED_APPS = [ 'pydis_site.apps.api', 'pydis_site.apps.home', 'pydis_site.apps.staff', + 'pydis_site.apps.events', 'django.contrib.admin', 'django.contrib.auth', -- cgit v1.2.3 From f7dc1a863a195756eb9ad148478f8b2bd42dbebe Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Wed, 28 Oct 2020 20:40:27 +0200 Subject: Port View to TemplateView for events page view --- pydis_site/apps/events/views/page.py | 22 +++++++++++----------- pydis_site/settings.py | 5 ++++- 2 files changed, 15 insertions(+), 12 deletions(-) (limited to 'pydis_site/settings.py') diff --git a/pydis_site/apps/events/views/page.py b/pydis_site/apps/events/views/page.py index 8a99ce13..1e3532f9 100644 --- a/pydis_site/apps/events/views/page.py +++ b/pydis_site/apps/events/views/page.py @@ -1,27 +1,27 @@ from pathlib import Path +from typing import List from django.conf import settings -from django.core.handlers.wsgi import WSGIRequest -from django.http import Http404, HttpResponse -from django.template import Context, Template -from django.views import View +from django.http import Http404 +from django.views.generic import TemplateView PAGES_PATH = Path(settings.BASE_DIR, "pydis_site", "apps", "events", "pages") -class PageView(View): +class PageView(TemplateView): """Handles event pages showing.""" - def get(self, request: WSGIRequest, path: str) -> HttpResponse: - """Render event page rendering based on path.""" - page_path = PAGES_PATH.joinpath(path) + 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") + self.kwargs['path'] = f"{self.kwargs['path']}/_index.html" else: - page_path = PAGES_PATH.joinpath(f"{path}.html") + page_path = PAGES_PATH.joinpath(f"{self.kwargs['path']}.html") + self.kwargs['path'] = f"{self.kwargs['path']}.html" if not page_path.exists(): raise Http404 - template = Template(page_path.read_text()) - return HttpResponse(template.render(Context())) + return [self.kwargs['path']] diff --git a/pydis_site/settings.py b/pydis_site/settings.py index a73ac463..0387567f 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -120,7 +120,10 @@ ROOT_URLCONF = 'pydis_site.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(BASE_DIR, 'pydis_site', 'templates')], + 'DIRS': [ + os.path.join(BASE_DIR, 'pydis_site', 'templates'), + os.path.join(BASE_DIR, 'pydis_site', 'apps', 'events', 'pages'), + ], 'APP_DIRS': True, 'OPTIONS': { 'builtins': [ -- cgit v1.2.3 From e588e7476671475583dbc00cd1db81c9d73415f2 Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Thu, 29 Oct 2020 20:07:56 +0200 Subject: Apply changes of pages location to views and settings --- pydis_site/apps/events/tests/test_views.py | 16 ++++------------ pydis_site/apps/events/views/page.py | 15 ++++++--------- pydis_site/settings.py | 9 +++++---- 3 files changed, 15 insertions(+), 25 deletions(-) (limited to 'pydis_site/settings.py') 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': [ -- cgit v1.2.3