Relink – post, asi done?
This commit is contained in:
parent
cdc1472595
commit
e3771f865d
16 changed files with 209 additions and 241 deletions
20
galerie/migrations/0012_soustredeni_relink.py
Normal file
20
galerie/migrations/0012_soustredeni_relink.py
Normal file
|
@ -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'),
|
||||||
|
),
|
||||||
|
]
|
14
galerie/migrations/0013_post_split_soustredeni.py
Normal file
14
galerie/migrations/0013_post_split_soustredeni.py
Normal file
|
@ -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 = [
|
||||||
|
]
|
|
@ -7,7 +7,7 @@ from imagekit.processors import ResizeToFit, Transpose
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from seminar.models import Soustredeni
|
from soustredeni.models import Soustredeni
|
||||||
|
|
||||||
VZDY=0
|
VZDY=0
|
||||||
ORG=1
|
ORG=1
|
||||||
|
|
20
prednasky/migrations/0017_soustredeni_relink.py
Normal file
20
prednasky/migrations/0017_soustredeni_relink.py
Normal file
|
@ -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'),
|
||||||
|
),
|
||||||
|
]
|
14
prednasky/migrations/0018_post_split_soustredeni.py
Normal file
14
prednasky/migrations/0018_post_split_soustredeni.py
Normal file
|
@ -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 = [
|
||||||
|
]
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
from seminar.models import Soustredeni
|
from soustredeni.models import Soustredeni
|
||||||
from personalni.models import Organizator
|
from personalni.models import Organizator
|
||||||
|
|
||||||
STAV_NAVRH = 1
|
STAV_NAVRH = 1
|
||||||
|
|
67
seminar/migrations/0124_remove_sous_from_seminar.py
Normal file
67
seminar/migrations/0124_remove_sous_from_seminar.py
Normal file
|
@ -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',
|
||||||
|
),
|
||||||
|
]
|
14
seminar/migrations/0125_post_split_soustredeni.py
Normal file
14
seminar/migrations/0125_post_split_soustredeni.py
Normal file
|
@ -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 .tvorba import *
|
||||||
from .odevzdavatko import *
|
from .odevzdavatko import *
|
||||||
from .base import *
|
from .base import *
|
||||||
from .soustredeni import *
|
|
||||||
from .pomocne import *
|
from .pomocne import *
|
||||||
from .treenode import *
|
from .treenode import *
|
||||||
from .novinky import *
|
from .novinky import *
|
||||||
|
|
||||||
from various.models import Nastaveni
|
from various.models import Nastaveni
|
||||||
from personalni.models import Organizator, Resitel, Skola, Prijemce, Osoba
|
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
|
||||||
|
|
|
@ -1,231 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
from django.urls import reverse
|
|
||||||
from reversion import revisions as reversion
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
from personalni.models import Resitel, Organizator
|
|
||||||
|
|
||||||
from .base import SeminarModelBase
|
|
||||||
from seminar.models import tvorba as am
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicates=True)
|
|
||||||
class Soustredeni(SeminarModelBase):
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_soustredeni'
|
|
||||||
verbose_name = 'Soustředění'
|
|
||||||
verbose_name_plural = 'Soustředění'
|
|
||||||
ordering = ['-rocnik__rocnik', '-datum_zacatku']
|
|
||||||
|
|
||||||
# Interní ID
|
|
||||||
id = models.AutoField(primary_key = True)
|
|
||||||
|
|
||||||
rocnik = models.ForeignKey(am.Rocnik, verbose_name='ročník', related_name='soustredeni_old',
|
|
||||||
on_delete=models.PROTECT)
|
|
||||||
|
|
||||||
datum_zacatku = models.DateField('datum začátku', blank=True, null=True,
|
|
||||||
help_text='První den soustředění')
|
|
||||||
|
|
||||||
datum_konce = models.DateField('datum konce', blank=True, null=True,
|
|
||||||
help_text='Poslední den soustředění')
|
|
||||||
|
|
||||||
verejne_db = models.BooleanField('soustředění zveřejněno', db_column='verejne', default=False)
|
|
||||||
|
|
||||||
misto = models.CharField('místo soustředění', max_length=256, blank=True, default='',
|
|
||||||
help_text='Místo (název obce, volitelně též objektu')
|
|
||||||
|
|
||||||
ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci soustředění',
|
|
||||||
related_name='soustredeni_old',
|
|
||||||
help_text='Seznam účastníků soustředění', through='Soustredeni_Ucastnici')
|
|
||||||
|
|
||||||
organizatori = models.ManyToManyField(Organizator,
|
|
||||||
related_name='soustredeni_old',
|
|
||||||
verbose_name='Organizátoři soustředění',
|
|
||||||
help_text='Seznam organizátorů soustředění',
|
|
||||||
through='Soustredeni_Organizatori')
|
|
||||||
|
|
||||||
text = models.TextField('text k soustředění (HTML)', blank=True, default='')
|
|
||||||
|
|
||||||
TYP_JARNI = 'jarni'
|
|
||||||
TYP_PODZIMNI = 'podzimni'
|
|
||||||
TYP_VIKEND = 'vikend'
|
|
||||||
TYP_VYLET = 'vylet'
|
|
||||||
TYP_CHOICES = [
|
|
||||||
(TYP_JARNI, 'Jarní soustředění'),
|
|
||||||
(TYP_PODZIMNI, 'Podzimní soustředění'),
|
|
||||||
(TYP_VIKEND, 'Víkendový sraz'),
|
|
||||||
(TYP_VYLET, 'Výlet'),
|
|
||||||
]
|
|
||||||
typ = models.CharField('typ akce', max_length=16, choices=TYP_CHOICES, blank=False, default=TYP_PODZIMNI)
|
|
||||||
|
|
||||||
exportovat = models.BooleanField('export do AESOPa', db_column='exportovat', default=False,
|
|
||||||
help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)')
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return '{} ({})'.format(self.misto, self.datum_zacatku)
|
|
||||||
|
|
||||||
def verejne(self):
|
|
||||||
return self.verejne_db
|
|
||||||
verejne.boolean = True
|
|
||||||
|
|
||||||
def verejne_url(self):
|
|
||||||
#return reverse('seminar_soustredeni', kwargs={'pk': self.id})
|
|
||||||
return reverse('seminar_seznam_soustredeni')
|
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicates=True)
|
|
||||||
class Soustredeni_Ucastnici(SeminarModelBase):
|
|
||||||
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_soustredeni_ucastnici'
|
|
||||||
verbose_name = 'Účast na soustředění'
|
|
||||||
verbose_name_plural = 'Účasti na soustředění'
|
|
||||||
ordering = ['soustredeni', 'resitel']
|
|
||||||
|
|
||||||
# Interní ID
|
|
||||||
id = models.AutoField(primary_key = True)
|
|
||||||
|
|
||||||
resitel = models.ForeignKey(Resitel, verbose_name='řešitel',
|
|
||||||
related_name='sous_ucastnici',
|
|
||||||
on_delete=models.PROTECT)
|
|
||||||
|
|
||||||
soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění',
|
|
||||||
related_name='sous_ucastnici',
|
|
||||||
on_delete=models.PROTECT)
|
|
||||||
|
|
||||||
poznamka = models.TextField('neveřejná poznámka', blank=True,
|
|
||||||
help_text='Neveřejná poznámka k účasti (plain text)')
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return '{} na {}'.format(self.resitel, self.soustredeni)
|
|
||||||
# NOTE: Poteciální DB HOG bez select_related
|
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicates=True)
|
|
||||||
class Soustredeni_Organizatori(SeminarModelBase):
|
|
||||||
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_soustredeni_organizatori'
|
|
||||||
verbose_name = 'Účast organizátorů na soustředění'
|
|
||||||
verbose_name_plural = 'Účasti organizátorů na soustředění'
|
|
||||||
ordering = ['soustredeni', 'organizator']
|
|
||||||
|
|
||||||
# Interní ID
|
|
||||||
id = models.AutoField(primary_key = True)
|
|
||||||
|
|
||||||
organizator = models.ForeignKey(Organizator, verbose_name='organizátor',
|
|
||||||
related_name='sous_orgove',
|
|
||||||
on_delete=models.PROTECT)
|
|
||||||
|
|
||||||
soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění',
|
|
||||||
related_name='sous_orgove',
|
|
||||||
on_delete=models.PROTECT)
|
|
||||||
|
|
||||||
poznamka = models.TextField('neveřejná poznámka', blank=True,
|
|
||||||
help_text='Neveřejná poznámka k účasti organizátora (plain text)')
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return '{} na {}'.format(self.organizator, self.soustredeni)
|
|
||||||
# NOTE: Poteciální DB HOG bez select_related
|
|
||||||
|
|
||||||
|
|
||||||
# FIXME cycle import
|
|
||||||
|
|
||||||
|
|
||||||
# Django neumí jednoduše serializovat partial nebo třídu s __call__
|
|
||||||
# (https://docs.djangoproject.com/en/1.8/topics/migrations/),
|
|
||||||
# neprojdou pak migrace. Takže rozlišení funkcí generujících názvy souboru
|
|
||||||
# podle adresáře řešíme takto.
|
|
||||||
|
|
||||||
##
|
|
||||||
def generate_filename_konfera(self, filename):
|
|
||||||
return os.path.join(
|
|
||||||
settings.SEMINAR_KONFERY_DIR,
|
|
||||||
am.aux_generate_filename(self, filename)
|
|
||||||
)
|
|
||||||
|
|
||||||
##
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicates=True)
|
|
||||||
class Konfera(am.Problem):
|
|
||||||
class Meta:
|
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_konfera'
|
|
||||||
verbose_name = 'Konfera'
|
|
||||||
verbose_name_plural = 'Konfery'
|
|
||||||
|
|
||||||
problem_ptr_old = models.OneToOneField(am.Problem, parent_link=True, related_name='konfera_old', on_delete=models.PROTECT, primary_key=True)
|
|
||||||
|
|
||||||
anotace = models.TextField('anotace', blank=True,
|
|
||||||
help_text='Popis, o čem bude konfera.')
|
|
||||||
|
|
||||||
abstrakt = models.TextField('abstrakt', blank=True,
|
|
||||||
help_text='Abstrakt konfery tak, jak byl uveden ve sborníku')
|
|
||||||
|
|
||||||
# FIXME: Umíme omezit jen na účastníky daného soustřeďka?
|
|
||||||
ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci konfery',
|
|
||||||
related_name='konfera_old',
|
|
||||||
help_text='Seznam účastníků konfery', through='Konfery_Ucastnici')
|
|
||||||
|
|
||||||
soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění',
|
|
||||||
related_name='konfery_old', on_delete = models.SET_NULL, null=True)
|
|
||||||
|
|
||||||
TYP_VELETRH = 'veletrh'
|
|
||||||
TYP_PREZENTACE = 'prezentace'
|
|
||||||
TYP_CHOICES = [
|
|
||||||
(TYP_VELETRH, 'Veletrh (postery)'),
|
|
||||||
(TYP_PREZENTACE, 'Prezentace (přednáška)'),
|
|
||||||
]
|
|
||||||
typ_prezentace = models.CharField('typ prezentace', max_length=16, choices=TYP_CHOICES,
|
|
||||||
blank=False, default=TYP_VELETRH)
|
|
||||||
|
|
||||||
prezentace = models.FileField('prezentace',help_text = 'Prezentace nebo fotka posteru',
|
|
||||||
upload_to = generate_filename_konfera, blank=True)
|
|
||||||
|
|
||||||
materialy = models.FileField('materialy',
|
|
||||||
help_text = 'Další materiály ke konfeře zabalené do jednoho souboru',
|
|
||||||
upload_to = generate_filename_konfera, blank=True)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return "{}: ({})".format(self.nazev, self.soustredeni)
|
|
||||||
|
|
||||||
def cislo_node(self):
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicates=True)
|
|
||||||
class Konfery_Ucastnici(models.Model):
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_konfery_ucastnici'
|
|
||||||
verbose_name = 'Účast na konfeře'
|
|
||||||
verbose_name_plural = 'Účasti na konfeře'
|
|
||||||
ordering = ['konfera', 'resitel']
|
|
||||||
|
|
||||||
# Interní ID
|
|
||||||
id = models.AutoField(primary_key = True)
|
|
||||||
|
|
||||||
resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT, related_name='konf_uc')
|
|
||||||
|
|
||||||
konfera = models.ForeignKey(Konfera, verbose_name='konfera', on_delete=models.CASCADE, related_name='konf_uc')
|
|
||||||
|
|
||||||
poznamka = models.TextField('neveřejná poznámka', blank=True,
|
|
||||||
help_text='Neveřejná poznámka k účasti (plain text)')
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return '{} na {}'.format(self.resitel, self.konfera)
|
|
||||||
# NOTE: Poteciální DB HOG bez select_related
|
|
|
@ -2,7 +2,7 @@ from django.contrib import admin
|
||||||
from django.forms import widgets
|
from django.forms import widgets
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
from seminar.models import soustredeni as m
|
import soustredeni.models as m
|
||||||
|
|
||||||
|
|
||||||
class SoustredeniUcastniciInline(admin.TabularInline):
|
class SoustredeniUcastniciInline(admin.TabularInline):
|
||||||
|
|
|
@ -37,7 +37,8 @@ class Migration(migrations.Migration):
|
||||||
('typ_prezentace', models.CharField(choices=[('veletrh', 'Veletrh (postery)'), ('prezentace', 'Prezentace (přednáška)')], default='veletrh', max_length=16, verbose_name='typ prezentace')),
|
('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')),
|
('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')),
|
('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.PROTECT)),
|
('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={
|
options={
|
||||||
'verbose_name': 'Konfera',
|
'verbose_name': 'Konfera',
|
||||||
|
@ -75,6 +76,8 @@ class Migration(migrations.Migration):
|
||||||
('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')),
|
('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')),
|
('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)),
|
('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={
|
options={
|
||||||
'verbose_name': 'Soustředění',
|
'verbose_name': 'Soustředění',
|
||||||
|
|
34
soustredeni/migrations/0002_manage_soustredeni.py
Normal file
34
soustredeni/migrations/0002_manage_soustredeni.py
Normal file
|
@ -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í'},
|
||||||
|
),
|
||||||
|
]
|
13
soustredeni/migrations/0003_post_split_soustredeni.py
Normal file
13
soustredeni/migrations/0003_post_split_soustredeni.py
Normal file
|
@ -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 = [
|
||||||
|
]
|
|
@ -20,7 +20,6 @@ logger = logging.getLogger(__name__)
|
||||||
class Soustredeni(SeminarModelBase):
|
class Soustredeni(SeminarModelBase):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_soustredeni'
|
db_table = 'seminar_soustredeni'
|
||||||
verbose_name = 'Soustředění'
|
verbose_name = 'Soustředění'
|
||||||
verbose_name_plural = 'Soustředění'
|
verbose_name_plural = 'Soustředění'
|
||||||
|
@ -85,7 +84,6 @@ class Soustredeni_Ucastnici(SeminarModelBase):
|
||||||
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
|
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_soustredeni_ucastnici'
|
db_table = 'seminar_soustredeni_ucastnici'
|
||||||
verbose_name = 'Účast na soustředění'
|
verbose_name = 'Účast na soustředění'
|
||||||
verbose_name_plural = 'Účasti na soustředění'
|
verbose_name_plural = 'Účasti na soustředění'
|
||||||
|
@ -112,7 +110,6 @@ class Soustredeni_Organizatori(SeminarModelBase):
|
||||||
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
|
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_soustredeni_organizatori'
|
db_table = 'seminar_soustredeni_organizatori'
|
||||||
verbose_name = 'Účast organizátorů na soustředění'
|
verbose_name = 'Účast organizátorů na soustředění'
|
||||||
verbose_name_plural = 'Účasti organizátorů na soustředění'
|
verbose_name_plural = 'Účasti organizátorů na soustředění'
|
||||||
|
@ -155,7 +152,6 @@ def generate_filename_konfera(self, filename):
|
||||||
@reversion.register(ignore_duplicates=True)
|
@reversion.register(ignore_duplicates=True)
|
||||||
class Konfera(am.Problem):
|
class Konfera(am.Problem):
|
||||||
class Meta:
|
class Meta:
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_konfera'
|
db_table = 'seminar_konfera'
|
||||||
verbose_name = 'Konfera'
|
verbose_name = 'Konfera'
|
||||||
verbose_name_plural = 'Konfery'
|
verbose_name_plural = 'Konfery'
|
||||||
|
@ -200,7 +196,6 @@ class Konfera(am.Problem):
|
||||||
class Konfery_Ucastnici(models.Model):
|
class Konfery_Ucastnici(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
managed = False
|
|
||||||
db_table = 'seminar_konfery_ucastnici'
|
db_table = 'seminar_konfery_ucastnici'
|
||||||
verbose_name = 'Účast na konfeře'
|
verbose_name = 'Účast na konfeře'
|
||||||
verbose_name_plural = 'Účasti na konfeře'
|
verbose_name_plural = 'Účasti na konfeře'
|
||||||
|
|
|
@ -3,5 +3,7 @@ Prostě zkopírovat vedle, s původními (=správnými) related names.
|
||||||
makemigrations
|
makemigrations
|
||||||
! Doplnit hack kolem content-types (jako první operace při migraci)
|
! Doplnit hack kolem content-types (jako první operace při migraci)
|
||||||
! 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.)
|
! 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
|
doplnit závislost na unmanage
|
||||||
migrate
|
migrate
|
||||||
|
|
Loading…
Reference in a new issue