Oddělení soustředění do vlastní aplikace #47
Merged
ledoian
merged 5 commits from split-soustredeni
into master
7 months ago
22 changed files with 441 additions and 26 deletions
@ -0,0 +1,13 @@ |
|||
# Generated by Django 4.2.11 on 2024-04-30 21:53 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('galerie', '0010_auto_20200819_0947'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,20 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:07 |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('soustredeni', '0001_split_from_seminar'), |
|||
('galerie', '0011_pre_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='galerie', |
|||
name='soustredeni', |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='soustredeni.soustredeni'), |
|||
), |
|||
] |
@ -0,0 +1,14 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:35 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('galerie', '0012_soustredeni_relink'), |
|||
('soustredeni', '0003_post_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,13 @@ |
|||
# Generated by Django 4.2.11 on 2024-04-30 21:53 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('personalni', '0005_personalni_post_migrate'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,13 @@ |
|||
# Generated by Django 4.2.11 on 2024-04-30 21:53 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('prednasky', '0015_personalni_post_migrate'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,20 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:07 |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('soustredeni', '0001_split_from_seminar'), |
|||
('prednasky', '0016_pre_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='seznam', |
|||
name='soustredeni', |
|||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, to='soustredeni.soustredeni'), |
|||
), |
|||
] |
@ -0,0 +1,14 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:35 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('prednasky', '0017_soustredeni_relink'), |
|||
('soustredeni', '0003_post_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,16 @@ |
|||
# Generated by Django 4.2.11 on 2024-04-30 21:54 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('seminar', '0121_personalni_post_migrate'), |
|||
('personalni', '0006_pre_split_soustredeni'), |
|||
('galerie', '0011_pre_split_soustredeni'), |
|||
('prednasky', '0016_pre_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,33 @@ |
|||
# Generated by Django 4.2.11 on 2024-04-30 22:17 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('seminar', '0122_pre_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterModelOptions( |
|||
name='konfera', |
|||
options={'managed': False, 'verbose_name': 'Konfera', 'verbose_name_plural': 'Konfery'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='konfery_ucastnici', |
|||
options={'managed': False, 'ordering': ['konfera', 'resitel'], 'verbose_name': 'Účast na konfeře', 'verbose_name_plural': 'Účasti na konfeře'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='soustredeni', |
|||
options={'managed': False, 'ordering': ['-rocnik__rocnik', '-datum_zacatku'], 'verbose_name': 'Soustředění', 'verbose_name_plural': 'Soustředění'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='soustredeni_organizatori', |
|||
options={'managed': False, 'ordering': ['soustredeni', 'organizator'], 'verbose_name': 'Účast organizátorů na soustředění', 'verbose_name_plural': 'Účasti organizátorů na soustředění'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='soustredeni_ucastnici', |
|||
options={'managed': False, 'ordering': ['soustredeni', 'resitel'], 'verbose_name': 'Účast na soustředění', 'verbose_name_plural': 'Účasti na soustředění'}, |
|||
), |
|||
] |
@ -0,0 +1,67 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:13 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('seminar', '0123_soustredeni_unmanage'), |
|||
('soustredeni', '0001_split_from_seminar'), |
|||
('galerie', '0012_soustredeni_relink'), |
|||
('prednasky', '0017_soustredeni_relink'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.RemoveField( |
|||
model_name='konfery_ucastnici', |
|||
name='konfera', |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='konfery_ucastnici', |
|||
name='resitel', |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='soustredeni', |
|||
name='organizatori', |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='soustredeni', |
|||
name='rocnik', |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='soustredeni', |
|||
name='ucastnici', |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='soustredeni_organizatori', |
|||
name='organizator', |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='soustredeni_organizatori', |
|||
name='soustredeni', |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='soustredeni_ucastnici', |
|||
name='resitel', |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='soustredeni_ucastnici', |
|||
name='soustredeni', |
|||
), |
|||
migrations.DeleteModel( |
|||
name='Konfera', |
|||
), |
|||
migrations.DeleteModel( |
|||
name='Konfery_Ucastnici', |
|||
), |
|||
migrations.DeleteModel( |
|||
name='Soustredeni', |
|||
), |
|||
migrations.DeleteModel( |
|||
name='Soustredeni_Organizatori', |
|||
), |
|||
migrations.DeleteModel( |
|||
name='Soustredeni_Ucastnici', |
|||
), |
|||
] |
@ -0,0 +1,14 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:35 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('seminar', '0124_remove_sous_from_seminar'), |
|||
('soustredeni', '0003_post_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -1,10 +1,13 @@ |
|||
from .tvorba import * |
|||
from .odevzdavatko import * |
|||
from .base import * |
|||
from .soustredeni import * |
|||
from .pomocne import * |
|||
from .treenode import * |
|||
from .novinky import * |
|||
|
|||
from various.models import Nastaveni |
|||
from personalni.models import Organizator, Resitel, Skola, Prijemce, Osoba |
|||
from soustredeni.models import Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Konfera, Konfery_Ucastnici |
|||
|
|||
# Kvůli migr. 0041 |
|||
from soustredeni.models import generate_filename_konfera |
|||
|
@ -0,0 +1,122 @@ |
|||
# Generated by Django 4.2.11 on 2024-04-30 22:53 |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
import soustredeni.models |
|||
|
|||
def nastav_nove_contenttypes(apps, schema_editor): |
|||
ContentType = apps.get_model('contenttypes', 'ContentType') |
|||
for m in ('konfera', 'soustredeni', 'soustredeni_ucastnici', 'soustredeni_organizatori', 'konfery_ucastnici'): |
|||
oct = ContentType.objects.filter(app_label='seminar', model=m) |
|||
oct.update(app_label='soustredeni') |
|||
|
|||
def nastav_stare_contenttypes(apps, schema_editor): |
|||
ContentType = apps.get_model('contenttypes', 'ContentType') |
|||
for m in ('konfera', 'soustredeni', 'soustredeni_ucastnici', 'soustredeni_organizatori', 'konfery_ucastnici'): |
|||
nct = ContentType.objects.filter(app_label='soustredeni', model=m) |
|||
nct.update(app_label='seminar') |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
('seminar', '0123_soustredeni_unmanage'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes), |
|||
|
|||
migrations.CreateModel( |
|||
name='Konfera', |
|||
fields=[ |
|||
('problem_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='seminar.problem')), |
|||
('anotace', models.TextField(blank=True, help_text='Popis, o čem bude konfera.', verbose_name='anotace')), |
|||
('abstrakt', models.TextField(blank=True, help_text='Abstrakt konfery tak, jak byl uveden ve sborníku', verbose_name='abstrakt')), |
|||
('typ_prezentace', models.CharField(choices=[('veletrh', 'Veletrh (postery)'), ('prezentace', 'Prezentace (přednáška)')], default='veletrh', max_length=16, verbose_name='typ prezentace')), |
|||
('prezentace', models.FileField(blank=True, help_text='Prezentace nebo fotka posteru', upload_to=soustredeni.models.generate_filename_konfera, verbose_name='prezentace')), |
|||
('materialy', models.FileField(blank=True, help_text='Další materiály ke konfeře zabalené do jednoho souboru', upload_to=soustredeni.models.generate_filename_konfera, verbose_name='materialy')), |
|||
('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.SET_NULL, null=True, related_name='konfery')), |
|||
('ucastnici', models.ManyToManyField(help_text='Seznam účastníků konfery', through='soustredeni.Konfery_Ucastnici', to='personalni.resitel', verbose_name='účastníci konfery')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Konfera', |
|||
'verbose_name_plural': 'Konfery', |
|||
'db_table': 'seminar_konfera', |
|||
'managed': False, |
|||
}, |
|||
bases=('seminar.problem',), |
|||
), |
|||
migrations.CreateModel( |
|||
name='Konfery_Ucastnici', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, serialize=False)), |
|||
('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti (plain text)', verbose_name='neveřejná poznámka')), |
|||
('resitel', models.ForeignKey(to='personalni.resitel', verbose_name='řešitel', on_delete=models.PROTECT)), |
|||
('konfera', models.ForeignKey(to='soustredeni.konfera', verbose_name='konfera', on_delete=models.CASCADE)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Účast na konfeře', |
|||
'verbose_name_plural': 'Účasti na konfeře', |
|||
'db_table': 'seminar_konfery_ucastnici', |
|||
'ordering': ['konfera', 'resitel'], |
|||
'managed': False, |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Soustredeni', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, serialize=False)), |
|||
('datum_zacatku', models.DateField(blank=True, help_text='První den soustředění', null=True, verbose_name='datum začátku')), |
|||
('datum_konce', models.DateField(blank=True, help_text='Poslední den soustředění', null=True, verbose_name='datum konce')), |
|||
('verejne_db', models.BooleanField(db_column='verejne', default=False, verbose_name='soustředění zveřejněno')), |
|||
('misto', models.CharField(blank=True, default='', help_text='Místo (název obce, volitelně též objektu', max_length=256, verbose_name='místo soustředění')), |
|||
('text', models.TextField(blank=True, default='', verbose_name='text k soustředění (HTML)')), |
|||
('typ', models.CharField(choices=[('jarni', 'Jarní soustředění'), ('podzimni', 'Podzimní soustředění'), ('vikend', 'Víkendový sraz'), ('vylet', 'Výlet')], default='podzimni', max_length=16, verbose_name='typ akce')), |
|||
('exportovat', models.BooleanField(db_column='exportovat', default=False, help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)', verbose_name='export do AESOPa')), |
|||
('rocnik', models.ForeignKey(to='seminar.rocnik', verbose_name='ročník', related_name='soustredeni', on_delete=models.PROTECT)), |
|||
('organizatori', models.ManyToManyField(help_text='Seznam organizátorů soustředění', through='soustredeni.Soustredeni_Organizatori', to='personalni.organizator', verbose_name='Organizátoři soustředění')), |
|||
('ucastnici', models.ManyToManyField(help_text='Seznam účastníků soustředění', through='soustredeni.Soustredeni_Ucastnici', to='personalni.resitel', verbose_name='účastníci soustředění')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Soustředění', |
|||
'verbose_name_plural': 'Soustředění', |
|||
'db_table': 'seminar_soustredeni', |
|||
'ordering': ['-rocnik__rocnik', '-datum_zacatku'], |
|||
'managed': False, |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Soustredeni_Organizatori', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, serialize=False)), |
|||
('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti organizátora (plain text)', verbose_name='neveřejná poznámka')), |
|||
('organizator', models.ForeignKey(to='personalni.organizator', verbose_name='organizátor', on_delete=models.PROTECT)), |
|||
('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.PROTECT)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Účast organizátorů na soustředění', |
|||
'verbose_name_plural': 'Účasti organizátorů na soustředění', |
|||
'db_table': 'seminar_soustredeni_organizatori', |
|||
'ordering': ['soustredeni', 'organizator'], |
|||
'managed': False, |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Soustredeni_Ucastnici', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, serialize=False)), |
|||
('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti (plain text)', verbose_name='neveřejná poznámka')), |
|||
('resitel', models.ForeignKey(to='personalni.resitel', verbose_name='řešitel', on_delete=models.PROTECT)), |
|||
('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.PROTECT)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Účast na soustředění', |
|||
'verbose_name_plural': 'Účasti na soustředění', |
|||
'db_table': 'seminar_soustredeni_ucastnici', |
|||
'ordering': ['soustredeni', 'resitel'], |
|||
'managed': False, |
|||
}, |
|||
), |
|||
] |
@ -0,0 +1,34 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:18 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('soustredeni', '0001_split_from_seminar'), |
|||
('seminar', '0124_remove_sous_from_seminar'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterModelOptions( |
|||
name='konfera', |
|||
options={'verbose_name': 'Konfera', 'verbose_name_plural': 'Konfery'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='konfery_ucastnici', |
|||
options={'ordering': ['konfera', 'resitel'], 'verbose_name': 'Účast na konfeře', 'verbose_name_plural': 'Účasti na konfeře'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='soustredeni', |
|||
options={'ordering': ['-rocnik__rocnik', '-datum_zacatku'], 'verbose_name': 'Soustředění', 'verbose_name_plural': 'Soustředění'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='soustredeni_organizatori', |
|||
options={'ordering': ['soustredeni', 'organizator'], 'verbose_name': 'Účast organizátorů na soustředění', 'verbose_name_plural': 'Účasti organizátorů na soustředění'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='soustredeni_ucastnici', |
|||
options={'ordering': ['soustredeni', 'resitel'], 'verbose_name': 'Účast na soustředění', 'verbose_name_plural': 'Účasti na soustředění'}, |
|||
), |
|||
] |
@ -0,0 +1,13 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:35 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('soustredeni', '0002_manage_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -1,6 +1,9 @@ |
|||
Prostě zkopírovat vedle, s původními (=správnými) related names. |
|||
(Případně opravit *všechny* relativní importy) |
|||
makemigrations |
|||
! Doplnit hack kolem content-types (jako první operace při migraci) |
|||
! Doplnit ForeignKeys (TODO: jak? Já jsem je ukradl až zpětně…) |
|||
! Doplnit ForeignKeys (Vypadá to, že se dá vesměs zkopírovat předpis z models.py, jen místo prvního fieldu dát `to='app.model'. Dokonce asi funguje použít už novou aplikaci pro vazby v rámci aplikace.) |
|||
To samé s ManyToManyFieldy (through= musí taky být 'app.model') |
|||
(Zdá se, že jde dobastlit tuhle migraci polozpětně – doplnit co chybělo až podle toho, co vygeneruje migrace po zamanagování nového modelu.) |
|||
doplnit závislost na unmanage |
|||
migrate |
|||
|
Loading…
Reference in new issue