From 5157d7c781780684ac8295265580cba0b92706ab Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 3 Mar 2025 17:45:28 +0100 Subject: [PATCH] proper service ordering on list view --- hub/services/views/services.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/hub/services/views/services.py b/hub/services/views/services.py index 02ff2cd..adb7e22 100644 --- a/hub/services/views/services.py +++ b/hub/services/views/services.py @@ -35,6 +35,13 @@ def service_list(request): # Filter through offerings instead of direct cloud_providers relation services = services.filter(offerings__cloud_provider__id=cloud_provider_id) + # Order services: featured first, then regular services, then coming soon + services = services.order_by( + "-is_featured", # Featured first (True before False) + "is_coming_soon", # Coming soon last (False before True) + "name", # Alphabetically within each group + ) + # Get all available categories from filtered services available_category_ids = services.values_list( "categories__id", flat=True @@ -109,15 +116,9 @@ def service_list(request): context = { "services": services, - "categories": Category.objects.filter( - parent=None - ), # Keep original for reference if needed - "consulting_partners": ConsultingPartner.objects.filter( - disable_listing=False - ), # Keep original but filter out disabled - "cloud_providers": CloudProvider.objects.filter( - disable_listing=False - ), # Keep original but filter out disabled + "categories": Category.objects.filter(parent=None), + "consulting_partners": ConsultingPartner.objects.filter(disable_listing=False), + "cloud_providers": CloudProvider.objects.filter(disable_listing=False), "available_categories": available_categories, "available_consulting_partners": available_consulting_partners, "available_cloud_providers": available_cloud_providers,