72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
from django.contrib import admin
|
|
|
|
from symposion.sponsorship.models import SponsorLevel, Sponsor, Benefit, BenefitLevel, \
|
|
SponsorBenefit
|
|
|
|
|
|
class BenefitLevelInline(admin.TabularInline):
|
|
model = BenefitLevel
|
|
extra = 0
|
|
|
|
|
|
class SponsorBenefitInline(admin.StackedInline):
|
|
model = SponsorBenefit
|
|
extra = 0
|
|
fieldsets = [
|
|
(None, {
|
|
"fields": [
|
|
("benefit", "active"),
|
|
("max_words", "other_limits"),
|
|
"text",
|
|
"upload",
|
|
]
|
|
})
|
|
]
|
|
|
|
|
|
class SponsorAdmin(admin.ModelAdmin):
|
|
|
|
save_on_top = True
|
|
fieldsets = [
|
|
(None, {
|
|
"fields": [
|
|
("name", "applicant"),
|
|
("level", "active"),
|
|
"external_url",
|
|
"annotation",
|
|
("contact_name", "contact_email")
|
|
]
|
|
}),
|
|
("Metadata", {
|
|
"fields": ["added"],
|
|
"classes": ["collapse"]
|
|
})
|
|
]
|
|
inlines = [SponsorBenefitInline]
|
|
list_display = ["name", "external_url", "level", "active"]
|
|
|
|
def get_form(self, *args, **kwargs):
|
|
# @@@ kinda ugly but using choices= on NullBooleanField is broken
|
|
form = super(SponsorAdmin, self).get_form(*args, **kwargs)
|
|
form.base_fields["active"].widget.choices = [
|
|
(u"1", "unreviewed"),
|
|
(u"2", "approved"),
|
|
(u"3", "rejected")
|
|
]
|
|
return form
|
|
|
|
|
|
class BenefitAdmin(admin.ModelAdmin):
|
|
|
|
list_display = ["name", "type", "description"]
|
|
inlines = [BenefitLevelInline]
|
|
|
|
|
|
class SponsorLevelAdmin(admin.ModelAdmin):
|
|
|
|
inlines = [BenefitLevelInline]
|
|
|
|
|
|
admin.site.register(SponsorLevel, SponsorLevelAdmin)
|
|
admin.site.register(Sponsor, SponsorAdmin)
|
|
admin.site.register(Benefit, BenefitAdmin)
|