Browse Source

Merge branch 'matej-seznam-prednasek-inline' into stable

remotes/origin/dev
Matěj Kocián 8 years ago
parent
commit
b01c137d48
  1. 107
      prednasky/admin.py

107
prednasky/admin.py

@ -1,59 +1,100 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.contrib import admin from django.contrib import admin
from django.contrib import messages from django.contrib import messages
from django import forms
from reversion.admin import VersionAdmin from reversion.admin import VersionAdmin
from autocomplete_light import shortcuts as autocomplete_light from django.utils.safestring import mark_safe
from django.db import models from django.utils.html import escape
from models import Prednaska, Seznam, STAV_NAVRH from models import Prednaska, Seznam, STAV_NAVRH
from seminar.models import Soustredeni from seminar.models import Soustredeni
class Seznam_PrednaskaInline(admin.TabularInline): class Seznam_PrednaskaInline(admin.TabularInline):
# form = autocomplete_light.modelform_factory(Prednaska, autocomplete_fields=['nazev'], fields=['nazev'])
model = Prednaska.seznamy.through model = Prednaska.seznamy.through
# fields = ['nazev', 'org', 'obor' ] extra = 0
# extra = 0
# formfield_overrides = { def prednaska__nazev(self, obj):
# models.TextField: {'widget': forms.TextInput}, return mark_safe(
# } u"<a href='/admin/prednasky/prednaska/{}'>{}</a>".format(
obj.prednaska.id,
escape(obj.prednaska.nazev)
)
)
def prednaska__popis(self, obj):
return mark_safe(
u"<div style='width: 200px'>{}</div>".format(
escape(obj.prednaska.popis)
)
)
def prednaska__anotace(self, obj):
return obj.prednaska.anotace
def prednaska__org(self, obj):
return obj.prednaska.org
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']
def has_add_permission(self, req): return False
# def get_queryset(self, request):
# qs = super(Seznam_PrednaskaInline, self).get_queryset(request)
# return qs.select_related('seznam', 'prednaska')
class SeznamAdmin(VersionAdmin): class SeznamAdmin(VersionAdmin):
list_display = ['soustredeni','stav'] list_display = ['soustredeni', 'stav']
inlines = [Seznam_PrednaskaInline] inlines = [Seznam_PrednaskaInline]
admin.site.register(Seznam,SeznamAdmin) admin.site.register(Seznam, SeznamAdmin)
class PrednaskaAdmin(VersionAdmin): class PrednaskaAdmin(VersionAdmin):
list_display = ['nazev', 'org', 'obor'] list_display = ['nazev', 'org', 'obor']
list_filter = ['org','obor'] list_filter = ['org', 'obor']
search_fields = [] search_fields = []
filter_horizontal = ('seznamy', )
actions = ['move_to_soustredeni'] actions = ['move_to_soustredeni']
def move_to_soustredeni(self,request,queryset): def move_to_soustredeni(self, request, queryset):
sous = Soustredeni.objects.first() sous = Soustredeni.objects.first()
seznam = Seznam.objects.filter(soustredeni=sous,stav=STAV_NAVRH) seznam = Seznam.objects.filter(soustredeni=sous, stav=STAV_NAVRH)
if len(seznam) == 0: if len(seznam) == 0:
self.message_user(request,u"Není definován seznam pro aktuální soustředění, nic se neprovedlo",messages.ERROR) self.message_user(
return request,
seznam = seznam[0] u"Není definován seznam pro aktuální soustředění, "
for prednaska in queryset: u"nic se neprovedlo",
prednaska.seznamy.add(seznam) messages.ERROR
prednaska.save() )
return
self.message_user(request,u"Vybrané přednášky ({}) přidány jako návrhy na nejbližší soustředění".format(len(queryset))) seznam = seznam[0]
for prednaska in queryset:
move_to_soustredeni.short_description=u"Přidat přednášky do návrhu na nejbližší soustředění" 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) admin.site.register(Prednaska, PrednaskaAdmin)

Loading…
Cancel
Save