shafafiyat/installations/admin.py

73 lines
3 KiB
Python

from django.contrib import admin
from .models import InstallationAssignment, InstallationReport, InstallationPhoto, InstallationItemChange
@admin.register(InstallationAssignment)
class InstallationAssignmentAdmin(admin.ModelAdmin):
list_display = ('process_instance', 'installer', 'scheduled_date', 'created')
search_fields = ('process_instance__code', 'installer__username', 'installer__first_name', 'installer__last_name')
list_filter = ('scheduled_date',)
class InstallationPhotoInline(admin.TabularInline):
model = InstallationPhoto
extra = 0
class InstallationItemChangeInline(admin.TabularInline):
model = InstallationItemChange
extra = 0
@admin.register(InstallationReport)
class InstallationReportAdmin(admin.ModelAdmin):
list_display = (
'assignment', 'visited_date', 'meter_type', 'meter_size', 'water_meter_manufacturer',
'discharge_pipe_diameter', 'usage_type', 'exploitation_license_number',
'motor_power', 'flow_rate', 'meter_reading', 'meter_charge', 'meter_charge_expiration_date',
'new_water_meter_serial', 'seal_number', 'sim_number',
'is_panel_sealed', 'is_panel_cut', 'is_disconnection_done',
'is_meter_suspicious', 'approved', 'created'
)
list_filter = ('is_meter_suspicious', 'is_panel_sealed', 'is_panel_cut', 'is_disconnection_done', 'approved', 'visited_date', 'meter_type', 'usage_type', 'water_meter_manufacturer')
search_fields = (
'assignment__process_instance__code', 'new_water_meter_serial', 'seal_number', 'exploitation_license_number', 'sim_number'
)
inlines = [InstallationPhotoInline, InstallationItemChangeInline]
fieldsets = (
('زمان و تایید', {
'fields': ('visited_date', 'approved', 'approved_at')
}),
('کنتور و سازنده', {
'fields': (
'meter_type', 'meter_size', 'water_meter_manufacturer', 'new_water_meter_serial', 'seal_number', 'is_meter_suspicious', 'sim_number'
)
}),
('مشخصات هیدرولیکی', {
'fields': ('discharge_pipe_diameter', 'flow_rate', 'meter_reading', 'meter_charge', 'meter_charge_expiration_date')
}),
('کاربری و مجوز', {
'fields': ('usage_type', 'exploitation_license_number')
}),
('توان و محرکه', {
'fields': ('driving_force', 'motor_power')
}),
('وضعیت تابلو/قطع', {
'fields': ('is_panel_sealed', 'is_panel_cut', 'is_disconnection_done')
}),
('توضیحات', {
'fields': ('description',)
}),
)
@admin.register(InstallationPhoto)
class InstallationPhotoAdmin(admin.ModelAdmin):
list_display = ('report', 'created')
@admin.register(InstallationItemChange)
class InstallationItemChangeAdmin(admin.ModelAdmin):
list_display = ('report', 'item', 'change_type', 'quantity', 'unit_price', 'total_price', 'created')
list_filter = ('change_type',)