Compare commits
	
		
			1 commit
		
	
	
		
			master
			...
			orgove_u_t
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 44fbf6832d | 
					 7 changed files with 45 additions and 21 deletions
				
			
		|  | @ -91,7 +91,7 @@ TODO: tabulka není úplná. Pokud na něco narazíte, tak ji prosím doplňte. | |||
| 
 | ||||
|    Ubuntu 22.10, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "Je potřeba zapnout zdroj ``universe`` a nainstalovat kompilátor C (``gcc``)?" | ||||
|    Linux Mint 21, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "" | ||||
|    Archlinux 2022.11.01, AUR, vestavěný, vestavěné, ``postgresql-libs``, "Je potřeba céčkový kompilátor (``gcc``); nezapomenout vygenerovat locale ``cs_CZ.UTF-8``" | ||||
|    Archlinux 2022.11.01, AUR, vestavěný, vestavěné, ``postgresql-libs``, "Je potřeba céčkový kompilátor (``gcc``)" | ||||
|    openSUSE Leap 15.4, oficiální (``python39``), předinstalovaný?, ``python39-devel``, ??FIXME!!, "Výchozí verze pythonu je 3.6 a ta je moc stará, potřeba instalovat ``gcc``. Nevím jak sehnat pg_config." | ||||
|    Debian 11, "oficiální, výchozí", ??, ??, ??, "Určitě to tam rozběhat jde, protože Gimli. Nejspíš bude relativně podobné Ubuntu." | ||||
| 
 | ||||
|  |  | |||
|  | @ -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: | ||||
|  |  | |||
|  | @ -12,22 +12,6 @@ POZOR! Kolize jmen! Dva řešitelé mají stejné makro! | |||
| {% autoescape off %} | ||||
| {% load tex %} | ||||
| 
 | ||||
| \ExplSyntaxOn | ||||
| \char_set_catcode_other:n{32}% Odsud dál do \char_set_catcode_space:n{32} nesmí být za žádnou cenu jiná mezera (tj. i zlom řádku) než ty mezi jménem a příjmením | ||||
| \prop_const_from_keyval:Nn\g_tituly% | ||||
| {% | ||||
| {% for r in resitele %}{{r|sloz}}={% if r.titul == '' %}{}{% else %}{\titul{{r.titul|sloz}}}{% endif %},% | ||||
| {% endfor %}}% | ||||
| \char_set_catcode_space:n{32} | ||||
| 
 | ||||
| \DeclareDocumentCommand\Titul{mO{#1}}{% | ||||
| \prop_if_in:NnTF\g_tituly{#1}% | ||||
| {\prop_item:Nn\g_tituly{#1}}% | ||||
| {\ClassError{mam}{Titul pro #1 nenalezen!}{}}% | ||||
| #2% | ||||
| } | ||||
| \ExplSyntaxOff | ||||
| 
 | ||||
| {% for r in resitele %} | ||||
|   {% if r.titul == '' %} | ||||
|   	{% spaceless %} | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue