unm
This commit is contained in:
		
							parent
							
								
									792a8fa4dc
								
							
						
					
					
						commit
						d1172b9d38
					
				
					 2 changed files with 44 additions and 9 deletions
				
			
		|  | @ -0,0 +1,29 @@ | ||||||
|  | # Generated by Django 4.2.13 on 2024-10-22 22:31 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('seminar', '0131_odstrel_odevzdavatka_pre'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='hodnoceni', | ||||||
|  |             options={'managed': False, 'verbose_name': 'Hodnocení', 'verbose_name_plural': 'Hodnocení'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='prilohareseni', | ||||||
|  |             options={'managed': False, 'ordering': ['reseni', 'vytvoreno'], 'verbose_name': 'Příloha řešení', 'verbose_name_plural': 'Přílohy řešení'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='reseni', | ||||||
|  |             options={'managed': False, 'ordering': ['-cas_doruceni'], 'verbose_name': 'Řešení', 'verbose_name_plural': 'Řešení'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='reseni_resitele', | ||||||
|  |             options={'managed': False, 'ordering': ['reseni', 'resitele'], 'verbose_name': 'Řešení řešitelů', 'verbose_name_plural': 'Řešení řešitelů'}, | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | @ -26,15 +26,18 @@ class Reseni(bm.SeminarModelBase): | ||||||
| 		verbose_name_plural = 'Řešení' | 		verbose_name_plural = 'Řešení' | ||||||
| 		#ordering = ['-problem', 'resitele']	# FIXME: Takhle to chceme, ale nefunguje to. | 		#ordering = ['-problem', 'resitele']	# FIXME: Takhle to chceme, ale nefunguje to. | ||||||
| 		ordering = ['-cas_doruceni'] | 		ordering = ['-cas_doruceni'] | ||||||
|  | 		managed = False | ||||||
| 
 | 
 | ||||||
| 	# Interní ID | 	# Interní ID | ||||||
| 	id = models.AutoField(primary_key = True) | 	id = models.AutoField(primary_key = True) | ||||||
| 
 | 
 | ||||||
| 	# Ke každé dvojici řešní a problém existuje nanejvýš jedno hodnocení, doplnění vazby. | 	# Ke každé dvojici řešní a problém existuje nanejvýš jedno hodnocení, doplnění vazby. | ||||||
| 	problem = models.ManyToManyField(am.Problem, verbose_name='problém', help_text='Problém', | 	problem = models.ManyToManyField(am.Problem, verbose_name='problém', help_text='Problém', | ||||||
|  | 									 related_name='problem_old', | ||||||
| 									 through='Hodnoceni') | 									 through='Hodnoceni') | ||||||
| 
 | 
 | ||||||
| 	resitele = models.ManyToManyField(Resitel, verbose_name='autoři řešení', | 	resitele = models.ManyToManyField(Resitel, verbose_name='autoři řešení', | ||||||
|  | 									 related_name='resitele_old', | ||||||
| 									  help_text='Seznam autorů řešení', through='Reseni_Resitele') | 									  help_text='Seznam autorů řešení', through='Reseni_Resitele') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -51,8 +54,8 @@ class Reseni(bm.SeminarModelBase): | ||||||
| 	forma = models.CharField('forma řešení', max_length=16, choices=FORMA_CHOICES, blank=False, | 	forma = models.CharField('forma řešení', max_length=16, choices=FORMA_CHOICES, blank=False, | ||||||
| 							 default=FORMA_EMAIL) | 							 default=FORMA_EMAIL) | ||||||
| 
 | 
 | ||||||
| 	text_cely = models.OneToOneField('ReseniNode', verbose_name='Plná verze textu řešení', | 	text_cely = models.OneToOneField('seminar.ReseniNode', verbose_name='Plná verze textu řešení', | ||||||
| 									 blank=True, null=True, related_name="reseni_cely_set", | 									 blank=True, null=True, related_name="reseni_cely_set_old", | ||||||
| 									 on_delete=models.PROTECT) | 									 on_delete=models.PROTECT) | ||||||
| 
 | 
 | ||||||
| 	poznamka = models.TextField('neveřejná poznámka', blank=True, | 	poznamka = models.TextField('neveřejná poznámka', blank=True, | ||||||
|  | @ -95,6 +98,7 @@ class Hodnoceni(bm.SeminarModelBase): | ||||||
| 		db_table = 'seminar_hodnoceni' | 		db_table = 'seminar_hodnoceni' | ||||||
| 		verbose_name = 'Hodnocení' | 		verbose_name = 'Hodnocení' | ||||||
| 		verbose_name_plural = 'Hodnocení' | 		verbose_name_plural = 'Hodnocení' | ||||||
|  | 		managed = False | ||||||
| 
 | 
 | ||||||
| 	# Interní ID | 	# Interní ID | ||||||
| 	id = models.AutoField(primary_key = True) | 	id = models.AutoField(primary_key = True) | ||||||
|  | @ -104,16 +108,16 @@ class Hodnoceni(bm.SeminarModelBase): | ||||||
| 							   blank=True, null=True) | 							   blank=True, null=True) | ||||||
| 
 | 
 | ||||||
| 	cislo_body = models.ForeignKey(am.Cislo, verbose_name='číslo pro body', | 	cislo_body = models.ForeignKey(am.Cislo, verbose_name='číslo pro body', | ||||||
| 								   related_name='hodnoceni', blank=True, null=True, on_delete=models.PROTECT) | 								   related_name='hodnoceni_old', blank=True, null=True, on_delete=models.PROTECT) | ||||||
| 
 | 
 | ||||||
| 	# V ročníku < 26 nastaveno na deadline vygenerovaný pro původní cislo_body | 	# V ročníku < 26 nastaveno na deadline vygenerovaný pro původní cislo_body | ||||||
| 	deadline_body = models.ForeignKey(am.Deadline, verbose_name='deadline pro body', | 	deadline_body = models.ForeignKey(am.Deadline, verbose_name='deadline pro body', | ||||||
| 								   related_name='hodnoceni', blank=True, null=True, on_delete=models.PROTECT) | 								   related_name='hodnoceni_old', blank=True, null=True, on_delete=models.PROTECT) | ||||||
| 
 | 
 | ||||||
| 	reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE) | 	reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE, related_name='hodnoceni_old') | ||||||
| 
 | 
 | ||||||
| 	problem = models.ForeignKey(am.Problem, verbose_name='problém', | 	problem = models.ForeignKey(am.Problem, verbose_name='problém', | ||||||
| 								related_name='hodnoceni', on_delete=models.PROTECT) | 								related_name='hodnoceni_old', on_delete=models.PROTECT) | ||||||
| 
 | 
 | ||||||
| 	feedback = models.TextField('zpětná vazba', blank=True, default='', help_text='Zpětná vazba řešiteli (plain text)') | 	feedback = models.TextField('zpětná vazba', blank=True, default='', help_text='Zpětná vazba řešiteli (plain text)') | ||||||
| 
 | 
 | ||||||
|  | @ -190,11 +194,12 @@ class PrilohaReseni(bm.SeminarModelBase): | ||||||
| 		verbose_name = 'Příloha řešení' | 		verbose_name = 'Příloha řešení' | ||||||
| 		verbose_name_plural = 'Přílohy řešení' | 		verbose_name_plural = 'Přílohy řešení' | ||||||
| 		ordering = ['reseni', 'vytvoreno'] | 		ordering = ['reseni', 'vytvoreno'] | ||||||
|  | 		managed = False | ||||||
| 
 | 
 | ||||||
| 	# Interní ID | 	# Interní ID | ||||||
| 	id = models.AutoField(primary_key = True) | 	id = models.AutoField(primary_key = True) | ||||||
| 
 | 
 | ||||||
| 	reseni = models.ForeignKey(Reseni, verbose_name='řešení', related_name='prilohy', | 	reseni = models.ForeignKey(Reseni, verbose_name='řešení', related_name='prilohy_old', | ||||||
| 							   on_delete=models.CASCADE) | 							   on_delete=models.CASCADE) | ||||||
| 
 | 
 | ||||||
| 	vytvoreno = models.DateTimeField('vytvořeno', default=timezone.now, blank=True, editable=False) | 	vytvoreno = models.DateTimeField('vytvořeno', default=timezone.now, blank=True, editable=False) | ||||||
|  | @ -225,13 +230,14 @@ class Reseni_Resitele(models.Model): | ||||||
| 		verbose_name = 'Řešení řešitelů' | 		verbose_name = 'Řešení řešitelů' | ||||||
| 		verbose_name_plural = 'Řešení řešitelů' | 		verbose_name_plural = 'Řešení řešitelů' | ||||||
| 		ordering = ['reseni', 'resitele'] | 		ordering = ['reseni', 'resitele'] | ||||||
|  | 		managed = False | ||||||
| 
 | 
 | ||||||
| 	# Interní ID | 	# Interní ID | ||||||
| 	id = models.AutoField(primary_key = True) | 	id = models.AutoField(primary_key = True) | ||||||
| 
 | 
 | ||||||
| 	resitele = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT) | 	resitele = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT, related_name='rere_old') | ||||||
| 
 | 
 | ||||||
| 	reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE) | 	reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE, related_name='rere_old') | ||||||
| 
 | 
 | ||||||
| 	# podil - jakou merou se ktery resitel podilel na danem reseni | 	# podil - jakou merou se ktery resitel podilel na danem reseni | ||||||
| 	#	- pouziti v budoucnu, pokud by resitele nemeli dostat vsichni stejne bodu za spolecne reseni | 	#	- pouziti v budoucnu, pokud by resitele nemeli dostat vsichni stejne bodu za spolecne reseni | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky