aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/resources
diff options
context:
space:
mode:
authorGravatar Rohan Reddy Alleti <[email protected]>2023-05-14 23:54:51 +0530
committerGravatar GitHub <[email protected]>2023-05-14 23:54:51 +0530
commita241a397f966a4265935dfd5c92a84fdf95c52c8 (patch)
tree83f6eb572e26e64e6ca18642013abf60f1b23d8b /pydis_site/apps/resources
parentUpdate pydis_site/apps/content/resources/guides/python-guides/subclassing_bot.md (diff)
parentMerge pull request #972 from python-discord/fix-psycopg3-compatibility-in-met... (diff)
Merge branch 'main' into subclassing_bot
Diffstat (limited to 'pydis_site/apps/resources')
-rw-r--r--pydis_site/apps/resources/README.md29
-rw-r--r--pydis_site/apps/resources/apps.py2
-rw-r--r--pydis_site/apps/resources/resources/atom.yaml14
-rw-r--r--pydis_site/apps/resources/resources/neural_networks_from_scratch_in_python.yaml2
-rw-r--r--pydis_site/apps/resources/resources/pycharm.yaml1
-rw-r--r--pydis_site/apps/resources/resources/python_graph_gallery.yaml17
-rw-r--r--pydis_site/apps/resources/resources/python_morsels.yaml1
-rw-r--r--pydis_site/apps/resources/resources/python_org.yaml14
-rw-r--r--pydis_site/apps/resources/resources/the_algorithms_github.yaml17
-rw-r--r--pydis_site/apps/resources/resources/vcokltfre_discord_bot_tutorial.yaml4
-rw-r--r--pydis_site/apps/resources/templatetags/get_category_icon.py1
-rw-r--r--pydis_site/apps/resources/urls.py8
-rw-r--r--pydis_site/apps/resources/views.py (renamed from pydis_site/apps/resources/views/resources.py)7
-rw-r--r--pydis_site/apps/resources/views/__init__.py3
14 files changed, 92 insertions, 28 deletions
diff --git a/pydis_site/apps/resources/README.md b/pydis_site/apps/resources/README.md
new file mode 100644
index 00000000..6f41319a
--- /dev/null
+++ b/pydis_site/apps/resources/README.md
@@ -0,0 +1,29 @@
+# The "resources" app
+
+This Django application powering the resources list [on our
+website](https://www.pythondiscord.com/resources/).
+
+## Directory structure
+
+The main point of interest here lies in the `resources` directory: every
+`.yaml` file in here represents a resource that is listed on our website. If
+you are looking for the place to suggest new resources, said directory is the
+place to create a new YAML file. In regards to the required keys and our
+values, it's best to check the other files we have for a reference.
+
+The app has a single view in `views.py` that takes care of reading the `.yaml`
+file. This is a standard Django view, mounted in `urls.py` as usual.
+
+Similar to the [home app](../home), the `templatetags` directory contains custom
+[template tags and
+filters](https://docs.djangoproject.com/en/dev/howto/custom-template-tags/) used
+here.
+
+The `tests` directory validates that our redirects and helper functions work as
+expected. If you made changes to the app and are looking for guidance on adding
+new tests, the [Django tutorial introducing automated
+testing](https://docs.djangoproject.com/en/dev/intro/tutorial05/) is a good
+place to start.
+
+This application does not use the database and as such does not have models nor
+migrations.
diff --git a/pydis_site/apps/resources/apps.py b/pydis_site/apps/resources/apps.py
index e0c235bd..93117654 100644
--- a/pydis_site/apps/resources/apps.py
+++ b/pydis_site/apps/resources/apps.py
@@ -4,4 +4,4 @@ from django.apps import AppConfig
class ResourcesConfig(AppConfig):
"""AppConfig instance for Resources app."""
- name = 'resources'
+ name = 'pydis_site.apps.resources'
diff --git a/pydis_site/apps/resources/resources/atom.yaml b/pydis_site/apps/resources/resources/atom.yaml
deleted file mode 100644
index 26e125b1..00000000
--- a/pydis_site/apps/resources/resources/atom.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-description: A free Electron-based editor, a "hackable text editor for the 21st century", maintained
- by the GitHub team.
-name: Atom
-title_url: https://atom.io/
-tags:
- topics:
- - general
- payment_tiers:
- - free
- difficulty:
- - beginner
- - intermediate
- type:
- - tool
diff --git a/pydis_site/apps/resources/resources/neural_networks_from_scratch_in_python.yaml b/pydis_site/apps/resources/resources/neural_networks_from_scratch_in_python.yaml
index c4ad1e1b..26e88cb9 100644
--- a/pydis_site/apps/resources/resources/neural_networks_from_scratch_in_python.yaml
+++ b/pydis_site/apps/resources/resources/neural_networks_from_scratch_in_python.yaml
@@ -2,7 +2,7 @@ description: '"Neural Networks From Scratch" is a book intended to teach you how
without any libraries, so you can better understand deep learning and how all of the elements work.
This is so you can go out and do new/novel things with deep learning as well as to become more successful with even more basic models.
This book is to accompany the usual free tutorial videos and sample code from youtube.com/sentdex.'
-name: Neural Networks from Scratch in Python
+name: Neural Networks from Scratch
title_url: https://nnfs.io/
urls:
- icon: branding/goodreads
diff --git a/pydis_site/apps/resources/resources/pycharm.yaml b/pydis_site/apps/resources/resources/pycharm.yaml
index 574158bc..e8c787e6 100644
--- a/pydis_site/apps/resources/resources/pycharm.yaml
+++ b/pydis_site/apps/resources/resources/pycharm.yaml
@@ -1,6 +1,7 @@
description: The very best Python IDE, with a wealth of advanced features and convenience
functions.
name: PyCharm
+title_image: https://resources.jetbrains.com/storage/products/pycharm/img/meta/pycharm_logo_300x300.png
title_url: https://www.jetbrains.com/pycharm/
tags:
topics:
diff --git a/pydis_site/apps/resources/resources/python_graph_gallery.yaml b/pydis_site/apps/resources/resources/python_graph_gallery.yaml
new file mode 100644
index 00000000..b8aaeb4d
--- /dev/null
+++ b/pydis_site/apps/resources/resources/python_graph_gallery.yaml
@@ -0,0 +1,17 @@
+description: A collection of hundreds of charts made with Python with their associated reproducible code.
+name: Python Graph Gallery
+title_url: https://www.python-graph-gallery.com/
+urls:
+ - icon: branding/github
+ url: https://github.com/holtzy/The-Python-Graph-Gallery
+ color: black
+tags:
+ topics:
+ - data science
+ payment_tiers:
+ - free
+ difficulty:
+ - beginner
+ - intermediate
+ type:
+ - tutorial
diff --git a/pydis_site/apps/resources/resources/python_morsels.yaml b/pydis_site/apps/resources/resources/python_morsels.yaml
index bbc8133b..4cdff36b 100644
--- a/pydis_site/apps/resources/resources/python_morsels.yaml
+++ b/pydis_site/apps/resources/resources/python_morsels.yaml
@@ -17,3 +17,4 @@ tags:
- intermediate
type:
- interactive
+ - video
diff --git a/pydis_site/apps/resources/resources/python_org.yaml b/pydis_site/apps/resources/resources/python_org.yaml
new file mode 100644
index 00000000..ece954dd
--- /dev/null
+++ b/pydis_site/apps/resources/resources/python_org.yaml
@@ -0,0 +1,14 @@
+name: The Python Tutorial
+description: The official Python tutorial by Python.org
+title_image: https://www.python.org/static/community_logos/python-logo-master-v3-TM.png
+title_url: https://docs.python.org/3/tutorial/
+tags:
+ topics:
+ - general
+ payment_tiers:
+ - free
+ difficulty:
+ - beginner
+ - intermediate
+ type:
+ - tutorial
diff --git a/pydis_site/apps/resources/resources/the_algorithms_github.yaml b/pydis_site/apps/resources/resources/the_algorithms_github.yaml
new file mode 100644
index 00000000..30a0a5da
--- /dev/null
+++ b/pydis_site/apps/resources/resources/the_algorithms_github.yaml
@@ -0,0 +1,17 @@
+description: A git repository of Python implementations of many of the algorithms taught in algorithm
+ and data structure courses, as well as algorithms for neural networks, block chains, and compression. This is
+ a great resource for students wanting to see algorithms implemented in a familiar language.
+name: The Algorithms
+title_url: https://github.com/TheAlgorithms/Python
+tags:
+ topics:
+ - algorithms and data structures
+ - data science
+ - security
+ payment_tiers:
+ - free
+ difficulty:
+ - beginner
+ - intermediate
+ type:
+ - tutorial
diff --git a/pydis_site/apps/resources/resources/vcokltfre_discord_bot_tutorial.yaml b/pydis_site/apps/resources/resources/vcokltfre_discord_bot_tutorial.yaml
index 61a7b6f6..482cdf91 100644
--- a/pydis_site/apps/resources/resources/vcokltfre_discord_bot_tutorial.yaml
+++ b/pydis_site/apps/resources/resources/vcokltfre_discord_bot_tutorial.yaml
@@ -1,8 +1,8 @@
-description: This tutorial, written by Python Discord staff member vcokltfre,
+description: This tutorial, written by vcokltfre,
will walk you through all the aspects of creating your own Discord bot,
starting from creating the bot user itself.
name: vcokltfre's Discord Bot Tutorial
-title_url: https://tutorial.vcokltfre.dev/
+title_url: https://tutorial.vco.sh/
tags:
topics:
- discord bots
diff --git a/pydis_site/apps/resources/templatetags/get_category_icon.py b/pydis_site/apps/resources/templatetags/get_category_icon.py
index 71f1393f..30bc4eaa 100644
--- a/pydis_site/apps/resources/templatetags/get_category_icon.py
+++ b/pydis_site/apps/resources/templatetags/get_category_icon.py
@@ -21,6 +21,7 @@ _ICONS = {
"Paid": "fa-dollar-sign",
"Podcast": "fa-microphone-alt",
"Project Ideas": "fa-lightbulb-o",
+ "Security": "fa-solid fa-lock",
"Software Design": "fa-paint-brush",
"Subscription": "fa-credit-card",
"Testing": "fa-vial",
diff --git a/pydis_site/apps/resources/urls.py b/pydis_site/apps/resources/urls.py
index ed24dc99..cb33a9d7 100644
--- a/pydis_site/apps/resources/urls.py
+++ b/pydis_site/apps/resources/urls.py
@@ -1,9 +1,11 @@
from django_distill import distill_path
-from pydis_site.apps.resources import views
+from pydis_site.apps.resources.views import ResourceView
app_name = "resources"
urlpatterns = [
- distill_path("", views.resources.ResourceView.as_view(), name="index"),
- distill_path("<resource_type>/", views.resources.ResourceView.as_view(), name="index"),
+ # Using `distill_path` instead of `path` allows this to be available
+ # in static preview builds.
+ distill_path("", ResourceView.as_view(), name="index"),
+ distill_path("<resource_type>/", ResourceView.as_view(), name="index"),
]
diff --git a/pydis_site/apps/resources/views/resources.py b/pydis_site/apps/resources/views.py
index 2375f722..a2cd8d0c 100644
--- a/pydis_site/apps/resources/views/resources.py
+++ b/pydis_site/apps/resources/views.py
@@ -1,5 +1,4 @@
import json
-import typing as t
from pathlib import Path
import yaml
@@ -22,7 +21,7 @@ class ResourceView(View):
"""Sort a tuple by its key alphabetically, disregarding 'the' as a prefix."""
name, resource = tuple_
name = name.casefold()
- if name.startswith("the ") or name.startswith("the_"):
+ if name.startswith(("the ", "the_")):
return name[4:]
return name
@@ -48,7 +47,7 @@ class ResourceView(View):
}
for resource_name, resource in self.resources.items():
css_classes = []
- for tag_type in resource_tags.keys():
+ for tag_type in resource_tags:
# Store the tags into `resource_tags`
tags = resource.get("tags", {}).get(tag_type, [])
for tag in tags:
@@ -102,7 +101,7 @@ class ResourceView(View):
"difficulty": [to_kebabcase(tier) for tier in self.filters["Difficulty"]["filters"]],
}
- def get(self, request: WSGIRequest, resource_type: t.Optional[str] = None) -> HttpResponse:
+ def get(self, request: WSGIRequest, resource_type: str | None = None) -> HttpResponse:
"""List out all the resources, and any filtering options from the URL."""
# Add type filtering if the request is made to somewhere like /resources/video.
# We also convert all spaces to dashes, so they'll correspond with the filters.
diff --git a/pydis_site/apps/resources/views/__init__.py b/pydis_site/apps/resources/views/__init__.py
deleted file mode 100644
index 986f3e10..00000000
--- a/pydis_site/apps/resources/views/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from .resources import ResourceView
-
-__all__ = ["ResourceView"]