aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/resources/views/resources.py
blob: ffb4f4a8aa9ed8f769400aff3208d43d8215c945 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from django.http import HttpRequest, HttpResponse
from django.shortcuts import render

from pydis_site.apps.resources.utils import get_all_resources, get_resources_from_search, get_resources_meta

RESOURCE_META_TAGS = get_resources_meta()


def format_checkbox_options(options: str) -> list[str]:
    """Split up the comma separated query parameters for checkbox options into a list."""
    return options.split(",")[:-1] if options else []


def resource_view(request: HttpRequest) -> HttpResponse:
    """View for resources index page."""
    checkbox_options = format_checkbox_options(request.GET.get("checkboxOptions"))
    return render(
        request,
        template_name="resources/resources.html",
        context={
            "checkboxOptions": checkbox_options,
            "topics": RESOURCE_META_TAGS.get("topics"),
            "tag_types": RESOURCE_META_TAGS.get("type"),
            "payment_tiers": RESOURCE_META_TAGS.get("payment_tiers"),
            "complexities": RESOURCE_META_TAGS.get("complexity"),
            "resources": get_resources_from_search(checkbox_options)
        }
    )