website/hub/services/views/partners.py

50 lines
1.4 KiB
Python
Raw Normal View History

2025-01-30 09:49:27 +01:00
from django.shortcuts import render, get_object_or_404
from django.db.models import Q
2025-01-30 11:23:25 +01:00
from hub.services.models import (
2025-01-30 09:49:27 +01:00
ConsultingPartner,
CloudProvider,
)
def partner_list(request):
partners = ConsultingPartner.objects.all().prefetch_related(
"services", "cloud_providers"
)
# Handle cloud provider filter
if request.GET.get("cloud_provider"):
provider_id = request.GET.get("cloud_provider")
partners = partners.filter(cloud_providers__id=provider_id)
# Handle search
if request.GET.get("search"):
query = request.GET.get("search")
partners = partners.filter(
Q(name__icontains=query) | Q(description__icontains=query)
)
context = {
"partners": partners,
"cloud_providers": CloudProvider.objects.all(),
}
return render(request, "services/partner_list.html", context)
def partner_detail(request, slug):
partner = get_object_or_404(
ConsultingPartner.objects.prefetch_related(
"services",
"services__categories",
"services__offerings",
"services__offerings__cloud_provider",
"cloud_providers",
),
slug=slug,
)
context = {
"partner": partner,
"services": partner.services.all(),
}
return render(request, "services/partner_detail.html", context)