Browse Source

Boost admin to the stars!!!

remotes/origin/feincms
Tomas Gavenciak 10 years ago
parent
commit
a0fb80130f
  1. 135
      seminar/admin.py

135
seminar/admin.py

@ -5,25 +5,61 @@ import reversion
from solo.admin import SingletonModelAdmin from solo.admin import SingletonModelAdmin
from ckeditor.widgets import CKEditorWidget from ckeditor.widgets import CKEditorWidget
from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici
import autocomplete_light import autocomplete_light
### Nastaveni
### Globální nastavení
admin.site.register(Nastaveni, SingletonModelAdmin) admin.site.register(Nastaveni, SingletonModelAdmin)
### Skola
class SkolaAdmin(reversion.VersionAdmin): ### INLINES
fieldsets = [
(None, {'fields': ['nazev', 'kratky_nazev', 'je_zs', 'je_ss']}), class ResitelInline(admin.TabularInline):
(u'Interní ID', {'fields': ['aesop_id', 'izo'], 'classes': ['collapse']}), model = Resitel
(u'Adresa', {'fields': ['ulice', 'mesto', 'psc', 'stat']}), fields = ['jmeno', 'prijmeni', 'skola', 'mesto', 'rok_maturity', ]
] readonly_fields = ['jmeno', 'prijmeni', 'skola', 'mesto', 'rok_maturity', ]
list_display = ['nazev', 'aesop_id', 'mesto', 'ulice', 'stat', 'je_zs', 'je_ss'] extra = 0
list_filter = ['stat', 'je_zs', 'je_ss'] def has_add_permission(self, req): return False
search_fields = ['nazev', 'mesto', 'ulice']
class CisloInline(admin.TabularInline):
model = Cislo
fields = ['cislo', 'datum_vydani', 'datum_deadline', 'verejne_db', 'poznamka']
readonly_fields = ['cislo']
extra = 0
def has_add_permission(self, req): return False
class PrilohaReseniInline(admin.StackedInline):
model = PrilohaReseni
fields = ['timestamp', 'soubor', 'poznamka']
readonly_fields = ['timestamp']
extra = 0
class ReseniKProblemuInline(admin.TabularInline):
form = autocomplete_light.modelform_factory(Reseni, autocomplete_fields=['resitel'], fields=['resitel'])
model = Reseni
fields = ['resitel', 'forma', 'body', 'cislo_body', 'timestamp', 'poznamka']
readonly_fields = ['timestamp']
extra = 0
class ReseniKResiteliInline(admin.TabularInline):
model = Reseni
fields = ['problem', 'forma', 'body', 'cislo_body', 'timestamp', 'poznamka']
readonly_fields = ['timestamp', 'problem']
extra = 0
def has_add_permission(self, req): return False
admin.site.register(Skola, SkolaAdmin)
class Soustredeni_UcastniciInline(admin.TabularInline):
form = autocomplete_light.modelform_factory(Soustredeni_Ucastnici, autocomplete_fields=['resitel'], fields=['resitel'])
model = Soustredeni_Ucastnici
fields = ['resitel', 'poznamka', ]
extra = 0
### Resitel ### Resitel
@ -40,15 +76,33 @@ class ResitelAdmin(reversion.VersionAdmin):
list_display = ['jmeno', 'prijmeni', 'user', 'pohlavi_muz', 'skola', 'rok_maturity'] list_display = ['jmeno', 'prijmeni', 'user', 'pohlavi_muz', 'skola', 'rok_maturity']
list_filter = ['pohlavi_muz', 'rok_maturity', 'zasilat'] list_filter = ['pohlavi_muz', 'rok_maturity', 'zasilat']
search_fields = ['jmeno', 'prijmeni', 'ulice', 'user', 'mesto', 'email'] search_fields = ['jmeno', 'prijmeni', 'ulice', 'user', 'mesto', 'email']
inlines = [ReseniKResiteliInline]
admin.site.register(Resitel, ResitelAdmin) admin.site.register(Resitel, ResitelAdmin)
### Skola
class SkolaAdmin(reversion.VersionAdmin):
fieldsets = [
(None, {'fields': ['nazev', 'kratky_nazev', 'je_zs', 'je_ss']}),
(u'Interní ID', {'fields': ['aesop_id', 'izo'], 'classes': ['collapse']}),
(u'Adresa', {'fields': ['ulice', 'mesto', 'psc', 'stat']}),
(None, {'fields': ['poznamka']}),
]
list_display = ['nazev', 'aesop_id', 'mesto', 'ulice', 'stat', 'je_zs', 'je_ss']
list_filter = ['stat', 'je_zs', 'je_ss']
search_fields = ['nazev', 'mesto', 'ulice']
inlines = [ResitelInline]
admin.site.register(Skola, SkolaAdmin)
### Cislo ### Cislo
class CisloAdmin(reversion.VersionAdmin): class CisloAdmin(reversion.VersionAdmin):
fieldsets = [ fieldsets = [
(None, {'fields': ['cislo', 'rocnik', 'verejne_db']}), (None, {'fields': ['cislo', 'rocnik', 'verejne_db', 'poznamka']}),
(u'Data', {'fields': ['datum_vydani', 'datum_deadline']}), (u'Data', {'fields': ['datum_vydani', 'datum_deadline']}),
] ]
list_display = ['kod', 'rocnik', 'cislo', 'datum_vydani', 'datum_deadline', 'verejne'] list_display = ['kod', 'rocnik', 'cislo', 'datum_vydani', 'datum_deadline', 'verejne']
@ -57,12 +111,6 @@ class CisloAdmin(reversion.VersionAdmin):
admin.site.register(Cislo, CisloAdmin) admin.site.register(Cislo, CisloAdmin)
class CisloInline(admin.StackedInline):
model = Cislo
fields = ['cislo', 'datum_vydani', 'datum_deadline', 'verejne']
readonly_fields = ['cislo']
extra = 0
### Rocnik ### Rocnik
@ -78,30 +126,24 @@ admin.site.register(Rocnik, RocnikAdmin)
### PrilohaReseni ### PrilohaReseni
# NOTE: Nemá pravděpodobně smysl používat
class PrilohaReseniAdmin(reversion.VersionAdmin): # class PrilohaReseniAdmin(reversion.VersionAdmin):
readonly_fields = ['timestamp', 'reseni'] # readonly_fields = ['timestamp', 'reseni']
fieldsets = [ # fieldsets = [
(None, {'fields': ['reseni', 'soubor', 'timestamp']}), # (None, {'fields': ['reseni', 'soubor', 'timestamp']}),
(u'Poznámky', {'fields': ['poznamka']}), # (u'Poznámky', {'fields': ['poznamka']}),
] # ]
list_display = ['reseni', 'soubor', 'timestamp'] # list_display = ['reseni', 'soubor', 'timestamp']
list_filter = ['reseni', 'timestamp'] # list_filter = ['reseni', 'timestamp']
search_fields = [] # search_fields = []
#
admin.site.register(PrilohaReseni, PrilohaReseniAdmin) # admin.site.register(PrilohaReseni, PrilohaReseniAdmin)
class PrilohaReseniInline(admin.StackedInline):
model = PrilohaReseni
fields = ['timestamp', 'soubor', 'poznamka']
readonly_fields = ['timestamp']
extra = 1
### Reseni ### Reseni
class ReseniAdmin(reversion.VersionAdmin): class ReseniAdmin(reversion.VersionAdmin):
form = autocomplete_light.modelform_factory(Reseni, autocomplete_fields=['problem'], fields=['problem']) form = autocomplete_light.modelform_factory(Reseni, autocomplete_fields=['problem', 'resitel'], fields=['problem', 'resitel'])
fieldsets = [ fieldsets = [
(None, {'fields': ['problem', 'resitel', 'forma', 'body', 'cislo_body', 'timestamp']}), (None, {'fields': ['problem', 'resitel', 'forma', 'body', 'cislo_body', 'timestamp']}),
(u'Poznámky', {'fields': ['poznamka']}), (u'Poznámky', {'fields': ['poznamka']}),
@ -114,12 +156,6 @@ class ReseniAdmin(reversion.VersionAdmin):
admin.site.register(Reseni, ReseniAdmin) admin.site.register(Reseni, ReseniAdmin)
class ReseniInline(admin.TabularInline):
model = Reseni
fields = ['resitel', 'forma', 'body', 'cislo_body', 'timestamp', 'poznamka']
readonly_fields = ['poznamka', 'resitel', 'timestamp', 'cislo_body', 'resitel', 'forma']
extra = 0
### Problem ### Problem
@ -135,15 +171,15 @@ class ProblemAdmin(reversion.VersionAdmin):
form = ProblemAdminForm form = ProblemAdminForm
fieldsets = [ fieldsets = [
(None, {'fields': ['nazev', 'typ', 'stav', 'autor', 'zamereni', 'body', 'timestamp']}), (None, {'fields': ['nazev', 'typ', 'stav', 'autor', 'zamereni', 'body', 'timestamp']}),
(u'Vydání', {'fields': ['cislo_zadani', 'kod', 'cislo_reseni', 'opravovatel']}), (u'Vydání', {'fields': ['cislo_zadani', 'kod', 'cislo_reseni', 'opravovatel', 'text_problemu']}),
(u'Texty', {'fields': ['text_problemu', 'text_problemu_org']}), (None, {'fields': ['text_problemu_org']}),
] ]
readonly_fields = ['timestamp'] readonly_fields = ['timestamp']
list_display = ['nazev', 'typ', 'kod', 'stav', 'autor', 'opravovatel', 'verejne', 'cislo_zadani'] list_display = ['nazev', 'typ', 'kod', 'stav', 'autor', 'opravovatel', 'verejne', 'cislo_zadani']
list_select_related = True list_select_related = True
list_filter = ['typ', 'stav', 'timestamp'] list_filter = ['typ', 'stav', 'timestamp']
search_fields = ['nazev', 'kod', 'text_problemu_org', 'text_problemu'] search_fields = ['nazev', 'kod', 'text_problemu_org', 'text_problemu']
inlines = [ReseniInline] inlines = [ReseniKProblemuInline]
view_on_site = Problem.verejne_url view_on_site = Problem.verejne_url
admin.site.register(Problem, ProblemAdmin) admin.site.register(Problem, ProblemAdmin)
@ -157,8 +193,9 @@ class SoustredeniAdmin(reversion.VersionAdmin):
(u'Data', {'fields': ['datum_zacatku', 'datum_konce']}), (u'Data', {'fields': ['datum_zacatku', 'datum_konce']}),
] ]
list_display = ['rocnik', 'misto', 'datum_zacatku', 'verejne'] list_display = ['rocnik', 'misto', 'datum_zacatku', 'verejne']
inlines = [Soustredeni_UcastniciInline]
list_filter = ['rocnik'] list_filter = ['rocnik']
view_on_site = Soustredeni.verejne_url view_on_site = Soustredeni.verejne_url
# TODO: UcastNaSoustredeni jako inline
admin.site.register(Soustredeni, SoustredeniAdmin) admin.site.register(Soustredeni, SoustredeniAdmin)

Loading…
Cancel
Save