diff options
-rw-r--r-- | pydis_site/apps/home/urls.py | 1 | ||||
-rw-r--r-- | pydis_site/apps/resources/__init__.py | 0 | ||||
-rw-r--r-- | pydis_site/apps/resources/apps.py | 7 | ||||
-rw-r--r-- | pydis_site/apps/resources/migrations/__init__.py | 0 | ||||
-rw-r--r-- | pydis_site/apps/resources/tests/__init__.py | 0 | ||||
-rw-r--r-- | pydis_site/apps/resources/tests/test_views.py | 10 | ||||
-rw-r--r-- | pydis_site/apps/resources/urls.py | 8 | ||||
-rw-r--r-- | pydis_site/apps/resources/views/__init__.py | 3 | ||||
-rw-r--r-- | pydis_site/apps/resources/views/resources.py | 7 | ||||
-rw-r--r-- | pydis_site/settings.py | 1 | ||||
-rw-r--r-- | pydis_site/static/css/resources/resources.css | 33 | ||||
-rw-r--r-- | pydis_site/templates/resources/resources.html | 100 |
12 files changed, 170 insertions, 0 deletions
diff --git a/pydis_site/apps/home/urls.py b/pydis_site/apps/home/urls.py index 5a58e002..09b5df34 100644 --- a/pydis_site/apps/home/urls.py +++ b/pydis_site/apps/home/urls.py @@ -33,4 +33,5 @@ urlpatterns = [ path('logout', LogoutView.as_view(), name="logout"), path('admin/', admin.site.urls), + path('resources/', include('pydis_site.apps.resources.urls', namespace="resources")), ] diff --git a/pydis_site/apps/resources/__init__.py b/pydis_site/apps/resources/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/pydis_site/apps/resources/__init__.py diff --git a/pydis_site/apps/resources/apps.py b/pydis_site/apps/resources/apps.py new file mode 100644 index 00000000..e0c235bd --- /dev/null +++ b/pydis_site/apps/resources/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class ResourcesConfig(AppConfig): + """AppConfig instance for Resources app.""" + + name = 'resources' diff --git a/pydis_site/apps/resources/migrations/__init__.py b/pydis_site/apps/resources/migrations/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/pydis_site/apps/resources/migrations/__init__.py diff --git a/pydis_site/apps/resources/tests/__init__.py b/pydis_site/apps/resources/tests/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/pydis_site/apps/resources/tests/__init__.py diff --git a/pydis_site/apps/resources/tests/test_views.py b/pydis_site/apps/resources/tests/test_views.py new file mode 100644 index 00000000..b131b2a6 --- /dev/null +++ b/pydis_site/apps/resources/tests/test_views.py @@ -0,0 +1,10 @@ +from django.test import TestCase +from django_hosts import reverse + + +class TestResourcesView(TestCase): + def test_resources_index_200(self): + """Check does index of resources app return 200 HTTP response.""" + url = reverse("resources:resources") + response = self.client.get(url) + self.assertEqual(response.status_code, 200) diff --git a/pydis_site/apps/resources/urls.py b/pydis_site/apps/resources/urls.py new file mode 100644 index 00000000..208d0c93 --- /dev/null +++ b/pydis_site/apps/resources/urls.py @@ -0,0 +1,8 @@ +from django.urls import path + +from pydis_site.apps.resources import views + +app_name = "resources" +urlpatterns = [ + path("", views.ResourcesView.as_view(), name="resources"), +] diff --git a/pydis_site/apps/resources/views/__init__.py b/pydis_site/apps/resources/views/__init__.py new file mode 100644 index 00000000..f54118f2 --- /dev/null +++ b/pydis_site/apps/resources/views/__init__.py @@ -0,0 +1,3 @@ +from .resources import ResourcesView + +__all__ = ["ResourcesView"] diff --git a/pydis_site/apps/resources/views/resources.py b/pydis_site/apps/resources/views/resources.py new file mode 100644 index 00000000..e770954b --- /dev/null +++ b/pydis_site/apps/resources/views/resources.py @@ -0,0 +1,7 @@ +from django.views.generic import TemplateView + + +class ResourcesView(TemplateView): + """View for resources index page.""" + + template_name = "resources/resources.html" diff --git a/pydis_site/settings.py b/pydis_site/settings.py index cbfa2fe3..d29cae19 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -84,6 +84,7 @@ INSTALLED_APPS = [ 'pydis_site.apps.api', 'pydis_site.apps.home', 'pydis_site.apps.staff', + 'pydis_site.apps.resources', 'django.contrib.admin', 'django.contrib.auth', diff --git a/pydis_site/static/css/resources/resources.css b/pydis_site/static/css/resources/resources.css new file mode 100644 index 00000000..025b28c6 --- /dev/null +++ b/pydis_site/static/css/resources/resources.css @@ -0,0 +1,33 @@ +.box, .tile.is-parent { + transition: 0.1s ease-out; +} +.box { + min-height: 15vh; +} +.tile.is-parent:hover .box { + box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23); +} +.tile.is-parent:hover { + padding: 0.65rem 0.85rem 0.85rem 0.65rem; + filter: saturate(1.1) brightness(1.1); +} + +#readingBlock { + background-image: linear-gradient(141deg, #911eb4 0%, #b631de 71%, #cf4bf7 100%); +} + +#interactiveBlock { + background-image: linear-gradient(141deg, #d05600 0%, #da722a 71%, #e68846 100%); +} + +#communitiesBlock { + background-image: linear-gradient(141deg, #3b756f 0%, #3a847c 71%, #41948b 100%); +} + +#podcastsBlock { + background-image: linear-gradient(141deg, #232382 0%, #30309c 71%, #4343ad 100%); +} + +.breadcrumb-section { + padding: 1rem; +} diff --git a/pydis_site/templates/resources/resources.html b/pydis_site/templates/resources/resources.html new file mode 100644 index 00000000..70e0b5a8 --- /dev/null +++ b/pydis_site/templates/resources/resources.html @@ -0,0 +1,100 @@ +{% extends 'base/base.html' %} +{% load static %} + +{% block title %}Resources{% endblock %} +{% block head %} + <link rel="stylesheet" href="{% static "css/resources/resources.css" %}"> +{% endblock %} + +{% block content %} + {% include "base/navbar.html" %} + + <section class="breadcrumb-section section"> + <div class="container"> + <nav class="breadcrumb is-pulled-left" aria-label="breadcrumbs"> + <ul> + <li class="is-active"><a href="/resources">Resources</a></li> + </ul> + </nav> + </div> + </section> + + <section class="section"> + <div class="container"> + <div class="content"> + <h1>Resources</h1> + + <div class="tile is-ancestor"> + <a class="tile is-parent" href="/articles/category/guides"> + <article class="tile is-child box hero is-primary is-bold"> + <p class="title is-size-1"><i class="fad fa-info-circle" aria-hidden="true"></i> Guides</p> + <p class="subtitle is-size-4">Made by us, for you</p> + </article> + </a> + + <div class="tile is-vertical is-9"> + <div class="tile"> + <a class="tile is-8 is-parent" href="/resources/reading/"> + <article class="tile is-child box hero is-black" id="readingBlock"> + <p class="title is-size-1"><i class="fad fa-book-alt" aria-hidden="true"></i> Read</p> + <p class="subtitle is-size-4">Lovingly curated books to explore</p> + </article> + </a> + + <div class="tile"> + <a class="tile is-parent" href="/resources/videos/"> + <article class="tile is-child box hero is-danger is-bold"> + <p class="title is-size-1"><i class="fad fa-video" aria-hidden="true"></i> Watch</p> + <p class="subtitle is-size-4">Visually engaging</p> + </article> + </a> + </div> + </div> + + <div class="tile"> + <a class="tile is-parent" href="/resources/interactive/"> + <article class="tile is-child box hero is-black" id="interactiveBlock"> + <p class="title is-size-1"><i class="fad fa-code" aria-hidden="true"></i> Try</p> + <p class="subtitle is-size-4">Interactively discover the possibilities</p> + </article> + </a> + <a class="tile is-8 is-parent" href="/resources/courses/"> + <article class="tile is-child box hero is-success is-bold"> + <p class="title is-size-1"><i class="fad fa-graduation-cap" aria-hidden="true"></i> Learn</p> + <p class="subtitle is-size-4">Structured courses with clear goals</p> + </article> + </a> + </div> + </div> + </div> + + <div class="tile is-ancestor"> + <div class="tile is-vertical is-9"> + <div class="tile"> + <a class="tile is-8 is-parent" href="/resources/communities/"> + <article class="tile is-child box hero is-black" id="communitiesBlock"> + <p class="title is-size-1"><i class="fad fa-users" aria-hidden="true"></i> Communities</p> + <p class="subtitle is-size-4">Some of our best friends</p> + </article> + </a> + <div class="tile"> + <a class="tile is-parent" href="/resources/podcasts/"> + <article class="tile is-child box hero is-black" id="podcastsBlock"> + <p class="title is-size-1"><i class="fad fa-podcast" aria-hidden="true"></i> Listen</p> + <p class="subtitle is-size-4">Regular podcasts to follow</p> + </article> + </a> + </div> + </div> + </div> + <a class="tile is-parent" href="/resources/tools/"> + <article class="tile is-child box hero is-dark"> + <p class="title is-size-1"><i class="fad fa-tools" aria-hidden="true"></i> Tools</p> + <p class="subtitle is-size-4">Things we love to use</p> + </article> + </a> + </div> + </div> + </div> + </section> +{% endblock %} |