from django.contrib import admin
from farmerapp.models import Region, District, Category, Culture, Farmer, Category, CatalogMachinery, Machinery, CultureableName, CatalogLandingFields


class RegionAdmin(admin.ModelAdmin):
    list_display = ('name', 'tripoli_region_id', 'last_updated')
    search_fields = ('name', 'tripoli_region_id')
    ordering = ('name', 'tripoli_region_id', 'last_updated')


class DistrictAdmin(admin.ModelAdmin):
    list_display = ('name', 'region_name', 'tripoli_district_id', 'last_updated')
    search_fields = ('name', 'region__name', 'tripoli_district_id')
    ordering = ('region__name', 'name', 'tripoli_district_id', 'last_updated')

    def region_name(self, obj):
        return obj.region.name if obj.region else ''


class CategoryAdmin(admin.ModelAdmin):
    list_display = ('name', 'tripoli_category_id', 'last_updated')
    search_fields = ('name', 'tripoli_category_id')
    ordering = ('name', 'tripoli_category_id', 'last_updated')


class CultureAdmin(admin.ModelAdmin):
    list_display = ('title', 'category_name', 'slug', 'last_updated')
    search_fields = ('title', 'category__name')
    ordering = ('category__name', 'title', 'last_updated')

    def category_name(self, obj):
        return obj.category.name if obj.category else ''

@admin.register(Farmer)
class FarmerAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'registration_at', 'last_updated')
    search_fields = ('name', 'registration_at')
    ordering = ('-last_updated',)


@admin.register(CatalogMachinery)
class CatalogMachineryAdmin(admin.ModelAdmin):
    list_display = ('id', 'code', 'name')


@admin.register(Machinery)
class MachineryAdmin(admin.ModelAdmin):
    list_display = ('id', 'farmer', 'catalog_machinery', 'received', 'eliminated')


@admin.register(CultureableName)
class CultureableNameAdmin(admin.ModelAdmin):
    list_display = ('id', 'cultureable_name')


@admin.register(CatalogLandingFields)
class CatalogLandingFieldsAdmin(admin.ModelAdmin):
    list_display = ('id', 'cultureable_name', 'culture_area', 'collected', 'year', 'last_updated')
    search_fields = ('cultureable_name__cultureable_name', 'year')
    ordering = ('-last_updated',)


admin.site.register(Region, RegionAdmin)
admin.site.register(District, DistrictAdmin)
admin.site.register(Category, CategoryAdmin)
admin.site.register(Culture, CultureAdmin)
