66 lines
1.9 KiB
Python
66 lines
1.9 KiB
Python
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']
|