/
admin.py
77 lines (65 loc) · 2.46 KB
/
admin.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
from django.contrib import admin
from .models import (Candidate, RaceCounty, RaceDistrict, CountyResult,
DistrictResult, CandidateOffice, CandidateEducation,
CandidateOffice, CandidatePhone, CandidateURL,
ElectionEvent)
from .settings import IMAGE_MODEL
if IMAGE_MODEL:
IMAGE_FIELDS = ('photo_fk', 'photo', 'thumbnail_fk', 'thumbnail')
else:
IMAGE_FIELDS = ('photo', 'thumbnail')
class EducationInline(admin.TabularInline):
model = CandidateEducation
fields = ('degree', 'major', 'school_name', 'school_type')
extra = 0
class OfficeInline(admin.TabularInline):
model = CandidateOffice
fields = ('office',)
extra = 0
class PhoneInline(admin.TabularInline):
model = CandidatePhone
fields = ('phone_number',)
extra = 0
class URLInline(admin.TabularInline):
model = CandidateURL
fields = ('url',)
extra = 0
class CandidateAdmin(admin.ModelAdmin):
list_display = ('full_name', 'timestamp',)
list_filter = ('gender', 'religion', 'ethnicity',)
search_fields = ('last_name', 'first_name')
prepopulated_fields = {"slug": ('first_name', 'middle_name', 'last_name', 'junior', 'politician_id')}
fieldsets = (
(None, {
'fields': (('first_name', 'middle_name', 'last_name', 'junior'), ('residence_place', 'residence_state'),),
}),
('Demographics', {
'fields': ('gender', ('ethnicity', 'hispanic'), 'religion',)
}),
('Birth Info', {
'fields': ('birth_date', ('birth_place', 'birth_state', 'birth_country'), 'birth_province',)
}),
('Other Info', {
'fields': ('year_first_elected', 'biography', 'profile', 'campaigns', 'slug', 'politician_id',)
}),
('Images', {
'fields': IMAGE_FIELDS
}),
)
inlines = [
EducationInline, OfficeInline, PhoneInline, URLInline,
]
class ElectionEventAdmin(admin.ModelAdmin):
list_display = ('state', 'event_date', 'description')
list_filter = ('state',)
date_hierarchy = 'event_date'
search_fields = ('state', 'description')
admin.site.register(RaceCounty)
admin.site.register(RaceDistrict)
admin.site.register(CountyResult)
admin.site.register(DistrictResult)
admin.site.register(Candidate, CandidateAdmin)
admin.site.register(ElectionEvent, ElectionEventAdmin)
admin.site.register(CandidateOffice)
admin.site.register(CandidateEducation)
admin.site.register(CandidatePhone)