Zdrojový kód pro korektury.admin

"""
Soubor sloužící k definici toho, co bude v adminu. Většinou pouhým zavoláním
funkce :func:`django.contrib.admin.site.register`, v případě, že chceme něco
upravit, tak jako třída rozšiřující :class:`django.contrib.admin.ModelAdmin`
s dekorátorem :func:`django.contrib.admin.register`.

Zde se definuje admin pro:

- :class:`korektury.models.KorekturovanePDF`
"""
from django.contrib import admin
from reversion.admin import VersionAdmin
from korektury.models import KorekturovanePDF

from django.core.mail import send_mail
from django.urls import reverse

# Register your models here.
[dokumentace]class KorekturovanePDFAdmin(VersionAdmin): """ nastaví čas vložení (:attr:`~koretkury.models.KorekturovanePDF.cas`) a počet stran (:attr:`~koretkury.models.KorekturovanePDF.stran`) jako readonly = neměnitelný Při prvním uložení pošle e-mail. """ readonly_fields = ['cas', 'stran']
[dokumentace] def get_readonly_fields(self, request, obj=None): """ Když pdf existuje, tak nedovolím měnit ani pdf.""" if obj: return self.readonly_fields + ['pdf'] return self.readonly_fields
fieldsets = [ (None, {'fields': ['pdf', 'cas', 'org', 'stran', 'nazev', 'komentar', 'poslat_mail']}), # (u'PDF', {'fields': ['pdf']}), ] list_display = ['nazev', 'cas', 'stran', 'org'] list_filter = [] search_fields = []
[dokumentace] def save_model(self, request, obj, form, change): """ Pokud je soubor nový a má se poslat e-mail, tak pošle e-mail o novém pdf. """ super().save_model(request, obj, form, change) if not change and obj.poslat_mail: # Je nový a má se poslat mail odkaz = request.build_absolute_uri(reverse('korektury', kwargs={'pdf': obj.id})) odesilatel = 'korekturovatko-nove-pdf@mam.mff.cuni.cz' prijemce = 'org@mam.mff.cuni.cz' predmet = f'Nové korektury: {obj.nazev}' text = f'''\ V korekturovátku se objevil nový soubor: {obj.nazev} {odkaz} Popis souboru: {obj.komentar} --- S pozdravem a korekturám zdar! Korekturovátko ''' send_mail(predmet,text,odesilatel,[prijemce])
admin.site.register(KorekturovanePDF, KorekturovanePDFAdmin)