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