refactor views into separate files
This commit is contained in:
parent
bb5cb708bd
commit
a01775c1e2
8 changed files with 350 additions and 323 deletions
50
hub/services/views/providers.py
Normal file
50
hub/services/views/providers.py
Normal file
|
@ -0,0 +1,50 @@
|
|||
from django.shortcuts import render, get_object_or_404
|
||||
from django.db.models import Q
|
||||
from services.models import (
|
||||
Service,
|
||||
CloudProvider,
|
||||
)
|
||||
|
||||
|
||||
def provider_list(request):
|
||||
providers = CloudProvider.objects.all().prefetch_related(
|
||||
"offerings", "consulting_partners"
|
||||
)
|
||||
|
||||
# Handle search
|
||||
if request.GET.get("search"):
|
||||
query = request.GET.get("search")
|
||||
providers = providers.filter(
|
||||
Q(name__icontains=query) | Q(description__icontains=query)
|
||||
)
|
||||
|
||||
context = {
|
||||
"providers": providers,
|
||||
}
|
||||
return render(request, "services/provider_list.html", context)
|
||||
|
||||
|
||||
def provider_detail(request, slug):
|
||||
provider = get_object_or_404(
|
||||
CloudProvider.objects.prefetch_related(
|
||||
"offerings",
|
||||
"offerings__service",
|
||||
"offerings__plans",
|
||||
"offerings__plans__prices",
|
||||
"consulting_partners",
|
||||
),
|
||||
slug=slug,
|
||||
)
|
||||
|
||||
# Get all services offered by this provider through offerings
|
||||
services = (
|
||||
Service.objects.filter(offerings__cloud_provider=provider)
|
||||
.distinct()
|
||||
.prefetch_related("categories")
|
||||
)
|
||||
|
||||
context = {
|
||||
"provider": provider,
|
||||
"services": services,
|
||||
}
|
||||
return render(request, "services/provider_detail.html", context)
|
Loading…
Add table
Add a link
Reference in a new issue