from django.contrib import admin from .models import Profile, Parcel, Country, Governate, City, PlatformProfile @admin.register(Country) class CountryAdmin(admin.ModelAdmin): list_display = ('name_en', 'name_ar') search_fields = ('name_en', 'name_ar') @admin.register(Governate) class GovernateAdmin(admin.ModelAdmin): list_display = ('name_en', 'name_ar', 'country') list_filter = ('country',) search_fields = ('name_en', 'name_ar') @admin.register(City) class CityAdmin(admin.ModelAdmin): list_display = ('name_en', 'name_ar', 'governate') list_filter = ('governate__country', 'governate') search_fields = ('name_en', 'name_ar') @admin.register(Profile) class ProfileAdmin(admin.ModelAdmin): list_display = ('user', 'role', 'phone_number', 'country', 'governate', 'city') list_filter = ('role', 'country', 'governate') search_fields = ('user__username', 'phone_number') @admin.register(Parcel) class ParcelAdmin(admin.ModelAdmin): list_display = ('tracking_number', 'shipper', 'carrier', 'status', 'payment_status', 'created_at') list_filter = ('status', 'payment_status', 'pickup_country', 'delivery_country') search_fields = ('tracking_number', 'shipper__username', 'carrier__username', 'receiver_name') readonly_fields = ('tracking_number', 'created_at', 'updated_at') @admin.register(PlatformProfile) class PlatformProfileAdmin(admin.ModelAdmin): list_display = ('name', 'phone_number', 'registration_number') def has_add_permission(self, request): # Allow adding only if no instance exists if self.model.objects.exists(): return False return super().has_add_permission(request)