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 | ||||
| 	filter_horizontal = ("informovani_orgove", "tagy",) | ||||
| 
 | ||||
| 
 | ||||
| class KorekturaTagAdmin(admin.ModelAdmin): | ||||
| 	model = KorekturaTag | ||||
| 	filter_horizontal = ("informovani_orgove", ) | ||||
| 
 | ||||
| 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, | ||||
| 				) | ||||
| 
 | ||||
| 			Komentar.objects.create(oprava=oprava, autor=autor, text=text) | ||||
| 			send_email_notification_komentar(oprava, autor, request) | ||||
| 
 | ||||
| 		tagy_raw = q.get('tagy') | ||||
| 		if tagy_raw is not None: | ||||
| 			oprava.tagy.clear() | ||||
|  | @ -128,6 +125,11 @@ def opravy_a_komentare_view(request, pdf_id: int, **kwargs): | |||
| 				tagy = list(map(int, tagy_raw.split(","))) | ||||
| 				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() | ||||
| 	# 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ů") | ||||
| 	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): | ||||
| 		return self.nazev | ||||
| 
 | ||||
|  |  | |||
|  | @ -40,6 +40,13 @@ def send_email_notification_komentar(oprava: Oprava, autor: Organizator, request | |||
| 		if 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 | ||||
| 	email = autor.osoba.email | ||||
| 	if email: | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue