from django.contrib import admin from django.utils.html import format_html from simple_history.admin import SimpleHistoryAdmin from .models import Park, ParkArea class ParkAdmin(SimpleHistoryAdmin): list_display = ('name', 'formatted_location', 'status', 'owner', 'created_at', 'updated_at') list_filter = ('status',) search_fields = ('name', 'description', 'location__name', 'location__city', 'location__country') readonly_fields = ('created_at', 'updated_at') prepopulated_fields = {'slug': ('name',)} def formatted_location(self, obj): """Display formatted location string""" return obj.formatted_location formatted_location.short_description = 'Location' def get_history_list_display(self, request): """Customize the list display for history records""" return ('name', 'formatted_location', 'status', 'history_date', 'history_user') class ParkAreaAdmin(SimpleHistoryAdmin): list_display = ('name', 'park', 'created_at', 'updated_at') list_filter = ('park',) search_fields = ('name', 'description', 'park__name') readonly_fields = ('created_at', 'updated_at') prepopulated_fields = {'slug': ('name',)} def get_history_list_display(self, request): """Customize the list display for history records""" return ('name', 'park', 'history_date', 'history_user') # Register the models with their admin classes admin.site.register(Park, ParkAdmin) admin.site.register(ParkArea, ParkAreaAdmin)