diff options
-rw-r--r-- | pydis_site/apps/resources/views/resources.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/pydis_site/apps/resources/views/resources.py b/pydis_site/apps/resources/views/resources.py index 60ec6d8f..a08f1d15 100644 --- a/pydis_site/apps/resources/views/resources.py +++ b/pydis_site/apps/resources/views/resources.py @@ -3,18 +3,22 @@ from django.shortcuts import render from pydis_site.apps.resources.resource_search import RESOURCE_TABLE, get_resources_from_search -RESOURCE_META_TAGS = {k: list(v) for k, v in RESOURCE_TABLE.items()} +RESOURCE_META_TAGS = {k: set(v) for k, v in RESOURCE_TABLE.items()} -def format_checkbox_options(options: str) -> list[str]: +def _parse_checkbox_options(options: str) -> set[str]: """Split up the comma separated query parameters for checkbox options into a list.""" - return options.split(",")[:-1] if options else [] + if not options: + return set() + if options == '*': + return {'*'} + return set(options.split(",")[:-1]) def resource_view(request: HttpRequest) -> HttpResponse: """View for resources index page.""" checkbox_options = { - a: set(format_checkbox_options(request.GET.get(b))) + a: _parse_checkbox_options(request.GET.get(b)) for a, b in ( ('topics', 'topic'), ('type', 'type'), @@ -23,6 +27,10 @@ def resource_view(request: HttpRequest) -> HttpResponse: ) } + # This allows for an asterisk in the URL to be a wildcard for that selection + checkbox_options = {k: (v if v != {'*'} else RESOURCE_META_TAGS[k]) + for k, v in checkbox_options.items()} + topics = sorted(RESOURCE_META_TAGS.get("topics")) return render( |