37769-vm/core/admin.py
Flatlogic Bot 14bf8d7295 .7
2026-01-24 16:24:42 +00:00

79 lines
2.6 KiB
Python

from django.contrib import admin
from .models import (
Tenant, TenantUserRole, InteractionType, DonationMethod, ElectionType, EventType, Voter,
VotingRecord, Event, EventParticipation, Donation, Interaction, VoterLikelihood
)
class TenantUserRoleInline(admin.TabularInline):
model = TenantUserRole
extra = 1
@admin.register(Tenant)
class TenantAdmin(admin.ModelAdmin):
list_display = ('name', 'slug', 'created_at')
search_fields = ('name',)
inlines = [TenantUserRoleInline]
@admin.register(TenantUserRole)
class TenantUserRoleAdmin(admin.ModelAdmin):
list_display = ('user', 'tenant', 'role')
list_filter = ('tenant', 'role')
search_fields = ('user__username', 'tenant__name')
@admin.register(InteractionType)
class InteractionTypeAdmin(admin.ModelAdmin):
list_display = ('name', 'tenant', 'is_active')
list_filter = ('tenant', 'is_active')
search_fields = ('name',)
@admin.register(DonationMethod)
class DonationMethodAdmin(admin.ModelAdmin):
list_display = ('name', 'tenant', 'is_active')
list_filter = ('tenant', 'is_active')
search_fields = ('name',)
@admin.register(ElectionType)
class ElectionTypeAdmin(admin.ModelAdmin):
list_display = ('name', 'tenant', 'is_active')
list_filter = ('tenant', 'is_active')
search_fields = ('name',)
@admin.register(EventType)
class EventTypeAdmin(admin.ModelAdmin):
list_display = ('name', 'tenant', 'is_active')
list_filter = ('tenant', 'is_active')
search_fields = ('name',)
class VotingRecordInline(admin.TabularInline):
model = VotingRecord
extra = 1
class DonationInline(admin.TabularInline):
model = Donation
extra = 1
class InteractionInline(admin.TabularInline):
model = Interaction
extra = 1
class VoterLikelihoodInline(admin.TabularInline):
model = VoterLikelihood
extra = 1
@admin.register(Voter)
class VoterAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'voter_id', 'tenant', 'district', 'candidate_support')
list_filter = ('tenant', 'candidate_support', 'yard_sign', 'district')
search_fields = ('first_name', 'last_name', 'voter_id')
inlines = [VotingRecordInline, DonationInline, InteractionInline, VoterLikelihoodInline]
@admin.register(Event)
class EventAdmin(admin.ModelAdmin):
list_display = ('event_type', 'date', 'tenant')
list_filter = ('tenant', 'date', 'event_type')
@admin.register(EventParticipation)
class EventParticipationAdmin(admin.ModelAdmin):
list_display = ('voter', 'event', 'participation_type')
list_filter = ('event__tenant', 'event', 'participation_type')