# -*- coding: utf-8 -*- from django.contrib import admin from django.contrib import messages from django import forms from reversion.admin import VersionAdmin from autocomplete_light import shortcuts as autocomplete_light from django.db import models from models import Prednaska, Seznam, STAV_NAVRH from seminar.models import Soustredeni class Seznam_PrednaskaInline(admin.TabularInline): model = Prednaska.seznamy.through fields = ('nazev','obor','org') readonly_fields = ('nazev','obor','org') can_delete = True def nazev(self,obj): print self,obj return obj.prednaska.nazev def obor(self,obj): print self,obj return obj.prednaska.obor def org(self,obj): print self,obj return obj.prednaska.org def get_queryset(self, request): qs = super(Seznam_PrednaskaInline, self).get_queryset(request) return qs.select_related('prednaska', 'prednaska__org') class SeznamAdmin(VersionAdmin): list_display = ['soustredeni','stav'] inlines = [Seznam_PrednaskaInline] admin.site.register(Seznam,SeznamAdmin) class PrednaskaAdmin(VersionAdmin): list_display = ['nazev', 'org', 'obor'] list_filter = ['org','obor'] search_fields = [] actions = ['move_to_soustredeni'] 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í, 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žší 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)