Umožnění rozdílu mezi autory komentářů a orgy informovanými při přidání komentáře
This commit is contained in:
parent
befb013e58
commit
6bfeab0a5a
4 changed files with 49 additions and 5 deletions
|
@ -62,4 +62,10 @@ Korekturovátko
|
||||||
).send()
|
).send()
|
||||||
|
|
||||||
admin.site.register(KorekturovanePDF, KorekturovanePDFAdmin)
|
admin.site.register(KorekturovanePDF, KorekturovanePDFAdmin)
|
||||||
admin.site.register(Oprava)
|
|
||||||
|
|
||||||
|
class OpravaAdmin(admin.ModelAdmin):
|
||||||
|
model = Oprava
|
||||||
|
filter_horizontal = ("informovani_orgove", )
|
||||||
|
|
||||||
|
admin.site.register(Oprava, OpravaAdmin)
|
||||||
|
|
29
korektury/migrations/0026_oprava_informovani_orgove.py
Normal file
29
korektury/migrations/0026_oprava_informovani_orgove.py
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# Generated by Django 4.2.16 on 2025-02-11 14:28
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
def pridani_orgu(apps, _schema_editor):
|
||||||
|
Komentar = apps.get_model('korektury','Komentar')
|
||||||
|
for komentar in Komentar.objects.all():
|
||||||
|
org = komentar.autor
|
||||||
|
if org is not None:
|
||||||
|
# Tohle jde asi udělat lépe než .all(…). Ale nejhorší na tom je, že .add(…) funguje jinak tady v migracích.
|
||||||
|
if org not in komentar.oprava.informovani_orgove.all():
|
||||||
|
komentar.oprava.informovani_orgove.add(org)
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('personalni', '0019_rename_upozorneni_resitel_upozornovat_na_opravy_reseni'),
|
||||||
|
('korektury', '0025_remove_oprava_autor_remove_oprava_text'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='oprava',
|
||||||
|
name='informovani_orgove',
|
||||||
|
field=models.ManyToManyField(blank=True, default=None, help_text='Orgové informovaní při přidání komentáře ke korektuře', related_name='informovan_o_opravach', to='personalni.organizator', verbose_name='Informovaní organizátoři'),
|
||||||
|
),
|
||||||
|
migrations.RunPython(pridani_orgu, migrations.RunPython.noop),
|
||||||
|
]
|
|
@ -157,6 +157,13 @@ class Oprava(models.Model):
|
||||||
|
|
||||||
status = models.CharField(u'stav opravy',max_length=16, choices=STATUS.choices, blank=False, default = STATUS.K_OPRAVE)
|
status = models.CharField(u'stav opravy',max_length=16, choices=STATUS.choices, blank=False, default = STATUS.K_OPRAVE)
|
||||||
|
|
||||||
|
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",
|
||||||
|
related_name='informovan_o_opravach',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicates=True)
|
@reversion.register(ignore_duplicates=True)
|
||||||
class Komentar(models.Model):
|
class Komentar(models.Model):
|
||||||
|
@ -181,5 +188,7 @@ class Komentar(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '{} od {}: {}'.format(self.cas,self.autor,self.text)
|
return '{} od {}: {}'.format(self.cas,self.autor,self.text)
|
||||||
|
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
super().save(*args, **kwargs)
|
||||||
|
if self.autor is not None:
|
||||||
|
self.oprava.informovani_orgove.add(self.autor)
|
||||||
|
|
|
@ -29,8 +29,8 @@ def send_email_notification_komentar(oprava: Oprava, autor: Organizator, request
|
||||||
emails = set()
|
emails = set()
|
||||||
|
|
||||||
# nalezeni e-mailu na autory komentaru
|
# nalezeni e-mailu na autory komentaru
|
||||||
for komentar in oprava.komentar_set.all():
|
for org in oprava.informovani_orgove.all():
|
||||||
email_komentujiciho = komentar.autor.osoba.email
|
email_komentujiciho = org.osoba.email
|
||||||
if email_komentujiciho:
|
if email_komentujiciho:
|
||||||
emails.add(email_komentujiciho)
|
emails.add(email_komentujiciho)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue