allow manual ordering of consulting partner
This commit is contained in:
parent
e82f563ca3
commit
1daa288cdd
4 changed files with 39 additions and 5 deletions
|
@ -137,11 +137,19 @@ class ServiceOfferingAdmin(admin.ModelAdmin):
|
|||
|
||||
|
||||
@admin.register(ConsultingPartner)
|
||||
class ConsultingPartnerAdmin(admin.ModelAdmin):
|
||||
list_display = ("name", "website", "logo_preview", "disable_listing", "is_featured")
|
||||
class ConsultingPartnerAdmin(SortableAdminMixin, admin.ModelAdmin):
|
||||
list_display = (
|
||||
"name",
|
||||
"website",
|
||||
"logo_preview",
|
||||
"disable_listing",
|
||||
"is_featured",
|
||||
"order",
|
||||
)
|
||||
search_fields = ("name", "description")
|
||||
prepopulated_fields = {"slug": ("name",)}
|
||||
filter_horizontal = ("services", "cloud_providers")
|
||||
ordering = ("order",)
|
||||
|
||||
def logo_preview(self, obj):
|
||||
if obj.logo:
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
# Generated by Django 5.1.5 on 2025-03-14 13:56
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("services", "0020_alter_cloudprovider_options_cloudprovider_order"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="consultingpartner",
|
||||
options={"ordering": ["order"]},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="consultingpartner",
|
||||
name="order",
|
||||
field=models.IntegerField(default=0),
|
||||
),
|
||||
]
|
|
@ -183,12 +183,16 @@ class ConsultingPartner(models.Model):
|
|||
CloudProvider, related_name="consulting_partners", blank=True
|
||||
)
|
||||
|
||||
order = models.IntegerField(default=0)
|
||||
is_featured = models.BooleanField(default=False)
|
||||
disable_listing = models.BooleanField(default=False)
|
||||
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["order"]
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ def partner_list(request):
|
|||
cloud_provider_id = request.GET.get("cloud_provider", "")
|
||||
|
||||
# Start with all active partners
|
||||
partners = ConsultingPartner.objects.filter(disable_listing=False).order_by("name")
|
||||
partners = ConsultingPartner.objects.filter(disable_listing=False).order_by("order")
|
||||
|
||||
# Apply filters based on request parameters
|
||||
if search_query:
|
||||
|
@ -36,7 +36,7 @@ def partner_list(request):
|
|||
).distinct()
|
||||
available_cloud_providers = CloudProvider.objects.filter(
|
||||
id__in=available_cloud_provider_ids, disable_listing=False
|
||||
).order_by("name")
|
||||
).order_by("order")
|
||||
|
||||
# For the current selection, we need to make sure we include the selected items
|
||||
# even if they don't match other filters
|
||||
|
@ -64,7 +64,7 @@ def partner_list(request):
|
|||
"partners": partners.prefetch_related("services", "cloud_providers"),
|
||||
"services": Service.objects.filter(disable_listing=False).order_by("name"),
|
||||
"cloud_providers": CloudProvider.objects.filter(disable_listing=False).order_by(
|
||||
"name"
|
||||
"order"
|
||||
),
|
||||
"available_services": available_services,
|
||||
"available_cloud_providers": available_cloud_providers,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue