Jonas Havelka
3 weeks ago
2 changed files with 60 additions and 54 deletions
@ -0,0 +1,57 @@ |
|||||
|
from django.core.mail import EmailMessage |
||||
|
from django.http import HttpRequest |
||||
|
from django.urls import reverse |
||||
|
|
||||
|
from korektury.models import Komentar, Oprava |
||||
|
from personalni.models import Organizator |
||||
|
|
||||
|
|
||||
|
def send_email_notification_komentar(oprava: Oprava, autor: Organizator, request: HttpRequest): |
||||
|
''' Rozesle e-mail pri pridani komentare / opravy, |
||||
|
ktery obsahuje text vlakna opravy. |
||||
|
''' |
||||
|
|
||||
|
# parametry e-mailu |
||||
|
#odkaz = "https://mam.mff.cuni.cz/korektury/{}/".format(oprava.pdf.pk) |
||||
|
odkaz = request.build_absolute_uri(reverse('korektury', kwargs={'pdf': oprava.pdf.pk})) |
||||
|
odkaz = f"{odkaz}#op{oprava.id}-pointer" |
||||
|
from_email = 'korekturovatko@mam.mff.cuni.cz' |
||||
|
subject = 'Nová korektura od {} v {}'.format(autor, oprava.pdf.nazev) |
||||
|
texty = [(oprava.autor.osoba.plne_jmeno(),oprava.text)] |
||||
|
for kom in Komentar.objects.filter(oprava=oprava): |
||||
|
texty.append((kom.autor.osoba.plne_jmeno(),kom.text)) |
||||
|
optext = "\n\n\n".join([": ".join(t) for t in texty]) |
||||
|
text = u"Text komentáře:\n\n{}\n\n=== Konec textu komentáře ===\n\ |
||||
|
\nodkaz do korekturovátka: {}\n\ |
||||
|
\nVaše korekturovátko\n".format(optext, odkaz) |
||||
|
|
||||
|
# Prijemci e-mailu |
||||
|
emails = set() |
||||
|
# e-mail autora korektury |
||||
|
email = oprava.autor.osoba.email |
||||
|
if email: |
||||
|
emails.add(email) |
||||
|
|
||||
|
# nalezeni e-mailu na autory komentaru |
||||
|
for komentar in oprava.komentar_set.all(): |
||||
|
email_komentujiciho = komentar.autor.osoba.email |
||||
|
if email_komentujiciho: |
||||
|
emails.add(email_komentujiciho) |
||||
|
|
||||
|
# zodpovedni orgove |
||||
|
for org in oprava.pdf.orgove.all(): |
||||
|
email_zobpovedny = org.osoba.email |
||||
|
if email_zobpovedny: |
||||
|
emails.add(email_zobpovedny) |
||||
|
|
||||
|
# odstran e-mail autora opravy |
||||
|
email = autor.osoba.email |
||||
|
if email: |
||||
|
emails.discard(email) |
||||
|
|
||||
|
EmailMessage( |
||||
|
subject=subject, |
||||
|
body=text, |
||||
|
from_email=from_email, |
||||
|
to=list(emails), |
||||
|
).send() |
Loading…
Reference in new issue