38723-vm/core/admin.py
2026-02-23 20:20:31 +00:00

83 lines
2.7 KiB
Python

from django.contrib import admin
from .models import (
Region, Constituency, Farmer, AgriculturalHolding,
CropProduction, LivestockProduction, Forestry, Fishery, LandRegistry
)
class CropProductionInline(admin.TabularInline):
model = CropProduction
extra = 1
class LivestockProductionInline(admin.TabularInline):
model = LivestockProduction
extra = 1
class ForestryInline(admin.TabularInline):
model = Forestry
extra = 1
class FisheryInline(admin.TabularInline):
model = Fishery
extra = 1
class LandRegistryInline(admin.TabularInline):
model = LandRegistry
extra = 1
class AgriculturalHoldingInline(admin.TabularInline):
model = AgriculturalHolding
extra = 1
@admin.register(Region)
class RegionAdmin(admin.ModelAdmin):
list_display = ('name', 'code')
search_fields = ('name',)
@admin.register(Constituency)
class ConstituencyAdmin(admin.ModelAdmin):
list_display = ('name', 'region')
list_filter = ('region',)
search_fields = ('name',)
@admin.register(Farmer)
class FarmerAdmin(admin.ModelAdmin):
list_display = ('name', 'id_number', 'constituency', 'created_at')
list_filter = ('constituency__region', 'constituency')
search_fields = ('name', 'id_number')
inlines = [AgriculturalHoldingInline, LandRegistryInline]
@admin.register(AgriculturalHolding)
class HoldingAdmin(admin.ModelAdmin):
list_display = ('farmer', 'primary_activity', 'size_hectares')
list_filter = ('primary_activity',)
inlines = [CropProductionInline, LivestockProductionInline, ForestryInline, FisheryInline]
@admin.register(CropProduction)
class CropProductionAdmin(admin.ModelAdmin):
list_display = ('crop_type', 'holding', 'area_hectares', 'expected_yield')
list_filter = ('crop_type',)
search_fields = ('crop_type', 'holding__farmer__name')
@admin.register(LivestockProduction)
class LivestockProductionAdmin(admin.ModelAdmin):
list_display = ('animal_type', 'holding', 'count')
list_filter = ('animal_type',)
search_fields = ('animal_type', 'holding__farmer__name')
@admin.register(Forestry)
class ForestryAdmin(admin.ModelAdmin):
list_display = ('tree_species', 'holding', 'area_hectares', 'purpose')
list_filter = ('purpose',)
search_fields = ('tree_species', 'holding__farmer__name')
@admin.register(Fishery)
class FisheryAdmin(admin.ModelAdmin):
list_display = ('species', 'holding', 'type', 'capacity')
list_filter = ('type', 'species')
search_fields = ('species', 'holding__farmer__name')
@admin.register(LandRegistry)
class LandRegistryAdmin(admin.ModelAdmin):
list_display = ('parcel_number', 'farmer', 'ownership_type', 'area_hectares')
list_filter = ('ownership_type',)
search_fields = ('parcel_number', 'farmer__name', 'title_deed_number')