# -*- 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): # form = autocomplete_light.modelform_factory(Prednaska, autocomplete_fields=['nazev'], fields=['nazev']) model = Prednaska.seznamy.through # fields = ['nazev', 'org', 'obor' ] # extra = 0 # formfield_overrides = { # models.TextField: {'widget': forms.TextInput}, # } # def get_queryset(self, request): # qs = super(Seznam_PrednaskaInline, self).get_queryset(request) # return qs.select_related('seznam', 'prednaska') 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)