Korektura s tagy pošle e-mail i orgům, kteří mají zájem o daný tag
This commit is contained in:
parent
9a50805a69
commit
44fbf6832d
5 changed files with 44 additions and 4 deletions
|
@ -68,5 +68,10 @@ class OpravaAdmin(admin.ModelAdmin):
|
||||||
model = Oprava
|
model = Oprava
|
||||||
filter_horizontal = ("informovani_orgove", "tagy",)
|
filter_horizontal = ("informovani_orgove", "tagy",)
|
||||||
|
|
||||||
|
|
||||||
|
class KorekturaTagAdmin(admin.ModelAdmin):
|
||||||
|
model = KorekturaTag
|
||||||
|
filter_horizontal = ("informovani_orgove", )
|
||||||
|
|
||||||
admin.site.register(Oprava, OpravaAdmin)
|
admin.site.register(Oprava, OpravaAdmin)
|
||||||
admin.site.register(KorekturaTag)
|
admin.site.register(KorekturaTag, KorekturaTagAdmin)
|
||||||
|
|
|
@ -118,9 +118,6 @@ def opravy_a_komentare_view(request, pdf_id: int, **kwargs):
|
||||||
y=y,
|
y=y,
|
||||||
)
|
)
|
||||||
|
|
||||||
Komentar.objects.create(oprava=oprava, autor=autor, text=text)
|
|
||||||
send_email_notification_komentar(oprava, autor, request)
|
|
||||||
|
|
||||||
tagy_raw = q.get('tagy')
|
tagy_raw = q.get('tagy')
|
||||||
if tagy_raw is not None:
|
if tagy_raw is not None:
|
||||||
oprava.tagy.clear()
|
oprava.tagy.clear()
|
||||||
|
@ -128,6 +125,11 @@ def opravy_a_komentare_view(request, pdf_id: int, **kwargs):
|
||||||
tagy = list(map(int, tagy_raw.split(",")))
|
tagy = list(map(int, tagy_raw.split(",")))
|
||||||
oprava.tagy.add(*KorekturaTag.objects.filter(id__in=tagy))
|
oprava.tagy.add(*KorekturaTag.objects.filter(id__in=tagy))
|
||||||
|
|
||||||
|
# Pokud je korektura/komentář nová/-ý
|
||||||
|
if komentar_id == -1:
|
||||||
|
Komentar.objects.create(oprava=oprava, autor=autor, text=text)
|
||||||
|
send_email_notification_komentar(oprava, autor, request)
|
||||||
|
|
||||||
|
|
||||||
opravy = Oprava.objects.filter(pdf=pdf_id).all()
|
opravy = Oprava.objects.filter(pdf=pdf_id).all()
|
||||||
# Serializovat list je prý security vulnerability, tedy je přidán slovník pro bezpečnost
|
# Serializovat list je prý security vulnerability, tedy je přidán slovník pro bezpečnost
|
||||||
|
|
19
korektury/migrations/0029_korekturatag_informovani_orgove.py
Normal file
19
korektury/migrations/0029_korekturatag_informovani_orgove.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Generated by Django 4.2.16 on 2025-06-04 17:17
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('personalni', '0019_rename_upozorneni_resitel_upozornovat_na_opravy_reseni'),
|
||||||
|
('korektury', '0028_alter_korekturovanepdf_options_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='korekturatag',
|
||||||
|
name='informovani_orgove',
|
||||||
|
field=models.ManyToManyField(blank=True, default=None, help_text='Orgové informovaní při přidání komentáře ke korektuře s daným tagem', related_name='informovan_o_tagu', to='personalni.organizator', verbose_name='Informovaní organizátoři'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -138,6 +138,13 @@ class KorekturaTag(models.Model):
|
||||||
nazev = models.CharField("název tagu", blank = False, max_length=20, help_text="Název daného tagu, <20 znaků")
|
nazev = models.CharField("název tagu", blank = False, max_length=20, help_text="Název daného tagu, <20 znaků")
|
||||||
barva = ColorField("barva daného tagu", default="#FFFFFF")
|
barva = ColorField("barva daného tagu", default="#FFFFFF")
|
||||||
|
|
||||||
|
informovani_orgove = models.ManyToManyField(
|
||||||
|
Organizator, blank=True, default=None,
|
||||||
|
verbose_name='Informovaní organizátoři',
|
||||||
|
help_text="Orgové informovaní při přidání komentáře ke korektuře s daným tagem",
|
||||||
|
related_name='informovan_o_tagu',
|
||||||
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.nazev
|
return self.nazev
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,13 @@ def send_email_notification_komentar(oprava: Oprava, autor: Organizator, request
|
||||||
if email_zobpovedny:
|
if email_zobpovedny:
|
||||||
emails.add(email_zobpovedny)
|
emails.add(email_zobpovedny)
|
||||||
|
|
||||||
|
# orgove informovaní při korektuře
|
||||||
|
for tag in oprava.tagy.all():
|
||||||
|
for org in tag.informovani_orgove.all():
|
||||||
|
email_informovany = org.osoba.email
|
||||||
|
if email_informovany:
|
||||||
|
emails.add(email_informovany)
|
||||||
|
|
||||||
# odstran e-mail autora opravy
|
# odstran e-mail autora opravy
|
||||||
email = autor.osoba.email
|
email = autor.osoba.email
|
||||||
if email:
|
if email:
|
||||||
|
|
Loading…
Reference in a new issue