diff options
Diffstat (limited to 'pydis_site/apps')
| -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( | 
