diff --git a/seminar/migrations/0132_alter_hodnoceni_options_alter_prilohareseni_options_and_more.py b/seminar/migrations/0132_alter_hodnoceni_options_alter_prilohareseni_options_and_more.py new file mode 100644 index 00000000..75575b0a --- /dev/null +++ b/seminar/migrations/0132_alter_hodnoceni_options_alter_prilohareseni_options_and_more.py @@ -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ů'}, + ), + ] diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index 0c106df7..bebc74f8 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -26,15 +26,18 @@ class Reseni(bm.SeminarModelBase): verbose_name_plural = 'Řešení' #ordering = ['-problem', 'resitele'] # FIXME: Takhle to chceme, ale nefunguje to. ordering = ['-cas_doruceni'] + managed = False # Interní ID id = models.AutoField(primary_key = True) # 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', + related_name='problem_old', through='Hodnoceni') resitele = models.ManyToManyField(Resitel, verbose_name='autoři řešení', + related_name='resitele_old', 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, default=FORMA_EMAIL) - text_cely = models.OneToOneField('ReseniNode', verbose_name='Plná verze textu řešení', - blank=True, null=True, related_name="reseni_cely_set", + text_cely = models.OneToOneField('seminar.ReseniNode', verbose_name='Plná verze textu řešení', + blank=True, null=True, related_name="reseni_cely_set_old", on_delete=models.PROTECT) poznamka = models.TextField('neveřejná poznámka', blank=True, @@ -95,6 +98,7 @@ class Hodnoceni(bm.SeminarModelBase): db_table = 'seminar_hodnoceni' verbose_name = 'Hodnocení' verbose_name_plural = 'Hodnocení' + managed = False # Interní ID id = models.AutoField(primary_key = True) @@ -104,16 +108,16 @@ class Hodnoceni(bm.SeminarModelBase): blank=True, null=True) 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 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', - 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)') @@ -190,11 +194,12 @@ class PrilohaReseni(bm.SeminarModelBase): verbose_name = 'Příloha řešení' verbose_name_plural = 'Přílohy řešení' ordering = ['reseni', 'vytvoreno'] + managed = False # Interní ID 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) 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_plural = 'Řešení řešitelů' ordering = ['reseni', 'resitele'] + managed = False # Interní ID 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 # - pouziti v budoucnu, pokud by resitele nemeli dostat vsichni stejne bodu za spolecne reseni