Zdrojový kód pro prednasky.admin

# -*- coding: utf-8 -*-
from django.contrib import admin
from django.contrib import messages
from reversion.admin import VersionAdmin
from django.utils.safestring import mark_safe
from django.utils.html import escape

from .models import Prednaska, Seznam, STAV_NAVRH
from seminar.models import Soustredeni


[dokumentace]class Seznam_PrednaskaInline(admin.TabularInline): model = Prednaska.seznamy.through extra = 0
[dokumentace] def prednaska__nazev(self, obj): return mark_safe( u"<a href='/admin/prednasky/prednaska/{}'>{}</a>".format( obj.prednaska.id, escape(obj.prednaska.nazev) ) )
[dokumentace] def prednaska__popis(self, obj): return mark_safe( u"<div style='width: 200px'>{}</div>".format( escape(obj.prednaska.popis) ) )
[dokumentace] def prednaska__anotace(self, obj): return obj.prednaska.anotace
[dokumentace] def prednaska__org(self, obj): return obj.prednaska.org
[dokumentace] def prednaska__obor(self, obj): return obj.prednaska.obor
prednaska__nazev.short_description = u'Přednáška' prednaska__popis.short_description = u'Popis pro orgy' prednaska__anotace.short_description = u'Anotace' prednaska__org.short_description = u'Org' prednaska__obor.short_description = u'Obor' readonly_fields = [ 'prednaska__nazev', 'prednaska__obor', 'prednaska__org', 'prednaska__popis', 'prednaska__anotace', ] exclude = ['prednaska']
[dokumentace] def has_add_permission(self, req, obj): return False
[dokumentace]class SeznamAdmin(VersionAdmin): list_display = ['soustredeni', 'stav'] inlines = [Seznam_PrednaskaInline]
admin.site.register(Seznam, SeznamAdmin)
[dokumentace]class PrednaskaAdmin(VersionAdmin): list_display = ['nazev', 'org', 'obor'] list_filter = ['org', 'obor'] search_fields = [] filter_horizontal = ('seznamy', ) actions = ['move_to_soustredeni']
[dokumentace] def move_to_soustredeni(self, request, queryset): sous = Soustredeni.objects.first() seznam = Seznam.objects.filter(soustredeni=sous, stav=STAV_NAVRH) if len(seznam) == 0: self.message_user( request, u"Není definován seznam pro aktuální soustředění, " u"nic se neprovedlo", messages.ERROR ) return seznam = seznam[0] for prednaska in queryset: prednaska.seznamy.add(seznam) prednaska.save() self.message_user( request, u"Vybrané přednášky ({}) přidány jako návrhy na nejbližší " u"soustředění".format(len(queryset)) )
move_to_soustredeni.short_description = ( u"Přidat přednášky do návrhu na nejbližší soustředění" )
admin.site.register(Prednaska, PrednaskaAdmin)