from django.contrib import admin from .models import ( Region, District, Warehouse, Device, ToyMovement, Income, Expense ) from core.apps.accounts.models import User # for ForeignKey references # ------------------------- # Region Admin # ------------------------- @admin.register(Region) class RegionAdmin(admin.ModelAdmin): list_display = ("name",) search_fields = ("name",) # ------------------------- # District Admin # ------------------------- @admin.register(District) class DistrictAdmin(admin.ModelAdmin): list_display = ("name", "region") list_filter = ("region",) search_fields = ("name", "region__name") # ------------------------- # Warehouse Admin # ------------------------- @admin.register(Warehouse) class WarehouseAdmin(admin.ModelAdmin): list_display = ("name", "region", "toys_count", "created_at") list_filter = ("region",) search_fields = ("name", "region__name") readonly_fields = ("created_at",) # ------------------------- # Device Admin # ------------------------- @admin.register(Device) class DeviceAdmin(admin.ModelAdmin): list_display = ("address", "district", "created_at") list_filter = ("district",) search_fields = ("name", "district__name",) readonly_fields = ("created_at",) # ------------------------- # ToyMovement Admin # ------------------------- @admin.register(ToyMovement) class ToyMovementAdmin(admin.ModelAdmin): list_display = ( "movement_type", "from_warehouse", "to_warehouse", "device", "quantity", "created_by", "created_at" ) list_filter = ("movement_type", "from_warehouse", "to_warehouse") search_fields = ("device__name", "created_by__phone") autocomplete_fields = ["device", "created_by", "from_warehouse", "to_warehouse"] readonly_fields = ("created_at",) # ------------------------- # Income Admin # ------------------------- @admin.register(Income) class IncomeAdmin(admin.ModelAdmin): list_display = ( "warehouse", "toys_count", "price_per_toy", "total_amount", "created_at", ) list_filter = ("warehouse", "created_at") search_fields = ("warehouse__name",) readonly_fields = ("total_amount", "created_at") # ------------------------- # Expense Admin # ------------------------- @admin.register(Expense) class ExpenseAdmin(admin.ModelAdmin): list_display = ("amount", "expense_type", "created_by", "confirmed_by", "is_confirmed", "created_at") list_filter = ("expense_type", "is_confirmed") search_fields = ("expense_type__name", "created_by__phone", "confirmed_by__phone") autocomplete_fields = ["created_by", "confirmed_by"] readonly_fields = ("created_at",)