diff options
Diffstat (limited to 'pydis_site')
| -rw-r--r-- | pydis_site/apps/content/urls.py | 2 | ||||
| -rw-r--r-- | pydis_site/apps/resources/urls.py | 40 | 
2 files changed, 40 insertions, 2 deletions
| diff --git a/pydis_site/apps/content/urls.py b/pydis_site/apps/content/urls.py index fe7c2852..f8496095 100644 --- a/pydis_site/apps/content/urls.py +++ b/pydis_site/apps/content/urls.py @@ -30,7 +30,7 @@ def __get_all_files(root: Path, folder: typing.Optional[Path] = None) -> list[st  def get_all_pages() -> typing.Iterator[dict[str, str]]: -    """Yield a dict of all pag categories.""" +    """Yield a dict of all page categories."""      for location in __get_all_files(Path("pydis_site", "apps", "content", "resources")):          yield {"location": location} diff --git a/pydis_site/apps/resources/urls.py b/pydis_site/apps/resources/urls.py index ed24dc99..aa3892b6 100644 --- a/pydis_site/apps/resources/urls.py +++ b/pydis_site/apps/resources/urls.py @@ -1,9 +1,47 @@ +import typing +  from django_distill import distill_path  from pydis_site.apps.resources import views +# This is only used for `distill_path`, so that the Netlify Deploy Previews +# can successfully redirect to static pages. This could probably be improved by +# making it less hardcoded, but since there's a bunch of special cases, and since +# it only affects deploy previews, I'm choosing to solve this with a simple solution. +VALID_RESOURCE_TYPES = [ +    "book", +    "books", +    "reading", +    "podcast", +    "podcasts", +    "interactive", +    "videos", +    "video", +    "courses", +    "course", +    "communities", +    "community", +    "tutorial", +    "tutorials", +    "tool", +    "tools", +    "project ideas", +    "project-ideas", +] + + +def get_all_pages() -> typing.Iterator[dict[str, str]]: +    for resource_type in VALID_RESOURCE_TYPES: +        yield {"resource_type": resource_type} + +  app_name = "resources"  urlpatterns = [      distill_path("", views.resources.ResourceView.as_view(), name="index"), -    distill_path("<resource_type>/", views.resources.ResourceView.as_view(), name="index"), +    distill_path( +        "<resource_type>/", +        views.resources.ResourceView.as_view(), +        name="index", +        distill_func=get_all_pages, +    ),  ] | 
