99 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Generated by Django 4.2.13 on 2024-10-22 22:51
 | |
| 
 | |
| from django.db import migrations, models
 | |
| import django.utils.timezone
 | |
| import odevzdavatko.models
 | |
| 
 | |
| def nastav_nove_contenttypes(apps, schema_editor):
 | |
|     ContentType = apps.get_model('contenttypes', 'ContentType')
 | |
|     for m in ('reseni', 'hodnoceni', 'reseni_resitele', 'prilohareseni'):
 | |
|         ContentType.objects.filter(app_label='seminar', model=m).update(app_label='odevzdavatko')
 | |
| 
 | |
| def nastav_stare_contenttypes(apps, schema_editor):
 | |
|     ContentType = apps.get_model('contenttypes', 'ContentType')
 | |
|     for m in ('reseni', 'hodnoceni', 'reseni_resitele', 'prilohareseni'):
 | |
|         ContentType.objects.filter(app_label='odevzdavatko', model=m).update(app_label='seminar')
 | |
| 
 | |
| class Migration(migrations.Migration):
 | |
| 
 | |
|     initial = True
 | |
| 
 | |
|     dependencies = [
 | |
|         ('seminar', '0132_unmanage_odevzdavatko'),
 | |
|     ]
 | |
| 
 | |
|     operations = [
 | |
|         migrations.CreateModel(
 | |
|             name='Hodnoceni',
 | |
|             fields=[
 | |
|                 ('id', models.AutoField(primary_key=True, serialize=False)),
 | |
|                 ('body', models.DecimalField(blank=True, decimal_places=1, max_digits=8, null=True, verbose_name='body')),
 | |
|                 ('feedback', models.TextField(blank=True, default='', help_text='Zpětná vazba řešiteli (plain text)', verbose_name='zpětná vazba')),
 | |
|                 ('cislo_body', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='hodnoceni', to='seminar.cislo', verbose_name='číslo pro body')),
 | |
|                 ('deadline_body', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='hodnoceni', to='seminar.deadline', verbose_name='deadline pro body')),
 | |
|                 ('problem', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='hodnoceni', to='seminar.problem', verbose_name='problém')),
 | |
|                 ('reseni', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='odevzdavatko.reseni', verbose_name='řešení')),
 | |
|             ],
 | |
|             options={
 | |
|                 'verbose_name': 'Hodnocení',
 | |
|                 'verbose_name_plural': 'Hodnocení',
 | |
|                 'db_table': 'seminar_hodnoceni',
 | |
|                 'managed': False,
 | |
|             },
 | |
|         ),
 | |
|         migrations.CreateModel(
 | |
|             name='PrilohaReseni',
 | |
|             fields=[
 | |
|                 ('id', models.AutoField(primary_key=True, serialize=False)),
 | |
|                 ('vytvoreno', models.DateTimeField(blank=True, default=django.utils.timezone.now, editable=False, verbose_name='vytvořeno')),
 | |
|                 ('soubor', models.FileField(upload_to=odevzdavatko.models.generate_filename, verbose_name='soubor')),
 | |
|                 ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k příloze řešení (plain text), např. o původu', verbose_name='neveřejná poznámka')),
 | |
|                 ('res_poznamka', models.TextField(blank=True, help_text='Poznámka k příloze řešení, např. co daný soubor obsahuje', verbose_name='poznámka řešitele')),
 | |
|                 ('reseni', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='prilohy', to='odevzdavatko.reseni', verbose_name='řešení')),
 | |
|             ],
 | |
|             options={
 | |
|                 'verbose_name': 'Příloha řešení',
 | |
|                 'verbose_name_plural': 'Přílohy řešení',
 | |
|                 'db_table': 'seminar_priloha_reseni',
 | |
|                 'ordering': ['reseni', 'vytvoreno'],
 | |
|                 'managed': False,
 | |
|             },
 | |
|         ),
 | |
|         migrations.CreateModel(
 | |
|             name='Reseni',
 | |
|             fields=[
 | |
|                 ('id', models.AutoField(primary_key=True, serialize=False)),
 | |
|                 ('cas_doruceni', models.DateTimeField(blank=True, default=django.utils.timezone.now, verbose_name='čas_doručení')),
 | |
|                 ('forma', models.CharField(choices=[('papir', 'Papírové řešení'), ('email', 'Emailem'), ('upload', 'Upload přes web')], default='email', max_length=16, verbose_name='forma řešení')),
 | |
|                 ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k řešení (plain text)', verbose_name='neveřejná poznámka')),
 | |
|                 ('zverejneno', models.BooleanField(default=False, help_text='Udává, zda je řešení zveřejněno', verbose_name='řešení zveřejněno')),
 | |
|                 ('problem', models.ManyToManyField(help_text='Problém', through='odevzdavatko.Hodnoceni', to='seminar.problem', verbose_name='problém')),
 | |
|                 ('resitele', models.ManyToManyField(help_text='Seznam autorů řešení', through='odevzdavatko.Reseni_Resitele', to='personalni.resitel', verbose_name='autoři řešení')),
 | |
|                 ('text_cely', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='reseni_cely_set', to='seminar.reseninode', verbose_name='Plná verze textu řešení')),
 | |
|             ],
 | |
|             options={
 | |
|                 'verbose_name': 'Řešení',
 | |
|                 'verbose_name_plural': 'Řešení',
 | |
|                 'db_table': 'seminar_reseni',
 | |
|                 'ordering': ['-cas_doruceni'],
 | |
|                 'managed': False,
 | |
|             },
 | |
|         ),
 | |
|         migrations.CreateModel(
 | |
|             name='Reseni_Resitele',
 | |
|             fields=[
 | |
|                 ('id', models.AutoField(primary_key=True, serialize=False)),
 | |
|                 ('reseni', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='odevzdavatko.reseni', verbose_name='řešení')),
 | |
|                 ('resitele', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='personalni.resitel', verbose_name='řešitel')),
 | |
|             ],
 | |
|             options={
 | |
|                 'verbose_name': 'Řešení řešitelů',
 | |
|                 'verbose_name_plural': 'Řešení řešitelů',
 | |
|                 'db_table': 'seminar_reseni_resitele',
 | |
|                 'ordering': ['reseni', 'resitele'],
 | |
|                 'managed': False,
 | |
|             },
 | |
|         ),
 | |
|         migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes),
 | |
| 
 | |
|     ]
 | 
