|
|
@ -1,4 +1,5 @@ |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
|
|
|
from django.contrib import admin |
|
|
|
from django import forms |
|
|
|
from django.forms import widgets |
|
|
@ -12,6 +13,23 @@ from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, Prilo |
|
|
|
import autocomplete_light |
|
|
|
|
|
|
|
|
|
|
|
def make_set_action(atribut, hodnota, nazev): |
|
|
|
u""" |
|
|
|
Pomocnik pro rychle vytvareni hromadnych admin akci ktere jen nastavuji |
|
|
|
atribut (dany jako string) na danou hodnotu. |
|
|
|
nazev je krátký popis akce pro admin rozhraní.""" |
|
|
|
def action_f(modeladmin, request, queryset): |
|
|
|
for obj in queryset: |
|
|
|
assert atribut in obj.__dict__ |
|
|
|
obj.__setattr__(atribut, hodnota) |
|
|
|
obj.save() |
|
|
|
action_f.short_description = nazev |
|
|
|
# Trik: je potřeba, aby se funkce různě (ale libovolně) jmenovaly, |
|
|
|
# jinak je Django v seznamu akcí splácne do jedné |
|
|
|
action_f.__name__ = 'action_f_%d_%d_%d' % (id(atribut), id(hodnota), id(nazev), ) |
|
|
|
return action_f |
|
|
|
|
|
|
|
|
|
|
|
### Globální nastavení |
|
|
|
|
|
|
|
admin.site.register(Nastaveni, SingletonModelAdmin) |
|
|
@ -297,18 +315,6 @@ create_modeladmin(ProblemZadanyAdmin, Problem, 'ProblemZadany', verbose_name=u'P |
|
|
|
|
|
|
|
### Soustredeni |
|
|
|
|
|
|
|
def zverejnit_soustredeni(modeladmin, request, queryset): |
|
|
|
for soustredeni in queryset: |
|
|
|
soustredeni.verejne_db = True |
|
|
|
soustredeni.save() |
|
|
|
zverejnit_soustredeni.short_description = 'Zveřejnit soustředění' |
|
|
|
|
|
|
|
def skryt_soustredeni(modeladmin, request, queryset): |
|
|
|
for soustredeni in queryset: |
|
|
|
soustredeni.verejne_db = False |
|
|
|
soustredeni.save() |
|
|
|
skryt_soustredeni.short_description = 'Skrýt soustředění (Zneveřjnit)' |
|
|
|
|
|
|
|
class SoustredeniAdminForm(forms.ModelForm): |
|
|
|
text = forms.CharField(widget=CKEditorWidget(), required=False, **field_labels(Soustredeni, 'text')) |
|
|
|
class Meta: |
|
|
@ -325,7 +331,12 @@ class SoustredeniAdmin(reversion.VersionAdmin): |
|
|
|
inlines = [Soustredeni_UcastniciInline] |
|
|
|
list_filter = ['typ', 'rocnik'] |
|
|
|
view_on_site = Soustredeni.verejne_url |
|
|
|
actions = [zverejnit_soustredeni, skryt_soustredeni, ] |
|
|
|
actions = [ |
|
|
|
make_set_action('verejne_db', True, u'Zveřejnit soustředění'), |
|
|
|
make_set_action('verejne_db', False, u'Skrýt (zneveřejnit) soustředění'), |
|
|
|
make_set_action('exportovat', True, u'Nastavit pro AESOP export'), |
|
|
|
make_set_action('exportovat', False, u'Skrýt pro AESOP export'), |
|
|
|
] |
|
|
|
|
|
|
|
admin.site.register(Soustredeni, SoustredeniAdmin) |
|
|
|
|
|
|
|