aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/events
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2020-10-26 19:44:54 +0200
committerGravatar ks129 <[email protected]>2020-10-26 19:44:54 +0200
commit9149973c2a846bddf8690cbd392b2f85bfdd217f (patch)
tree915ef04ef24fb70b112f72c34d35f6ec4991f9f0 /pydis_site/apps/events
parentCreate events index page view (diff)
Create event page view
Diffstat (limited to 'pydis_site/apps/events')
-rw-r--r--pydis_site/apps/events/views/page.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/pydis_site/apps/events/views/page.py b/pydis_site/apps/events/views/page.py
new file mode 100644
index 00000000..fe39a98c
--- /dev/null
+++ b/pydis_site/apps/events/views/page.py
@@ -0,0 +1,31 @@
+from pathlib import Path
+
+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
+
+PAGES_PATH = Path(settings.BASE_DIR, "pydis_site", "apps", "events", "pages")
+
+
+class PageView(View):
+ """Handles event pages showing."""
+
+ def get(self, request: WSGIRequest, path: str) -> HttpResponse:
+ """Render event page rendering based on path."""
+ # We need to get rid from trailing slash when path have this
+ if path.endswith("/"):
+ path = path[:-1]
+
+ page_path = PAGES_PATH.joinpath(path)
+ if page_path.exists() and page_path.is_dir():
+ page_path = page_path.joinpath("_index.html")
+ else:
+ page_path = PAGES_PATH.joinpath(f"{path}.html")
+
+ if not page_path.exists():
+ raise Http404
+
+ template = Template(page_path.read_text())
+ return HttpResponse(template.render(Context()))