83 lines
2.7 KiB
Python
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') |