from django.contrib import admin from .models import ( Device, DeviceSerial, DeviceIP, MaintenanceRecord, DeviceAttachment ) class DeviceSerialInline(admin.TabularInline): model = DeviceSerial extra = 1 class DeviceIPInline(admin.TabularInline): model = DeviceIP extra = 1 class MaintenanceRecordInline(admin.TabularInline): model = MaintenanceRecord extra = 1 class DeviceAttachmentInline(admin.TabularInline): model = DeviceAttachment extra = 1 @admin.register(Device) class DeviceAdmin(admin.ModelAdmin): list_display = [ 'id', 'device_name', 'location', 'building', 'status', 'responsible_person', 'enable_date', 'service_duration_days' ] list_filter = ['status', 'location', 'building'] search_fields = ['device_name', 'location', 'brand', 'model'] inlines = [DeviceSerialInline, DeviceIPInline, MaintenanceRecordInline, DeviceAttachmentInline] date_hierarchy = 'enable_date' @admin.register(DeviceSerial) class DeviceSerialAdmin(admin.ModelAdmin): list_display = ['id', 'device', 'serial_number', 'serial_type', 'is_primary'] list_filter = ['serial_type', 'is_primary'] search_fields = ['serial_number'] @admin.register(DeviceIP) class DeviceIPAdmin(admin.ModelAdmin): list_display = ['id', 'device', 'ip_address', 'ip_type', 'is_primary'] list_filter = ['ip_type', 'is_primary'] search_fields = ['ip_address'] @admin.register(MaintenanceRecord) class MaintenanceRecordAdmin(admin.ModelAdmin): list_display = ['id', 'device', 'maintenance_date', 'maintenance_by', 'cost'] list_filter = ['maintenance_date', 'maintenance_by'] search_fields = ['fault_description', 'repair_content'] date_hierarchy = 'maintenance_date' @admin.register(DeviceAttachment) class DeviceAttachmentAdmin(admin.ModelAdmin): list_display = ['id', 'device', 'file_name', 'file_type', 'uploaded_at'] list_filter = ['file_type', 'uploaded_at'] search_fields = ['file_name']