You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.9 KiB

# -*- 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)