mamweb/seminar/migrations/0056_vrcholy_pro_rocniky_a_cisla.py

48 lines
1.2 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-05-23 21:54
from __future__ import unicode_literals
from django.db import migrations
def generuj_RocnikNody_a_CisloNody(apps,schema_editor):
Rocnik = apps.get_model('seminar', 'Rocnik')
RocnikNode = apps.get_model('seminar', 'RocnikNode')
Cislo = apps.get_model('seminar', 'Cislo')
CisloNode = apps.get_model('seminar', 'CisloNode')
last_rn = None # last_* slouží k navázání následníků
for r in Rocnik.objects.all():
rn = RocnikNode.objects.create(rocnik=r)
rn.save()
rn.root = rn
rn.save()
if last_rn:
last_rn.succ = rn
last_rn.save()
last_rn = rn
last_cn = None
for c in Cislo.objects.filter(rocnik=r):
cn = CisloNode.objects.create(cislo=c, root=rn)
cn.save()
if last_cn: # Jsme něčí následník
last_cn.succ = cn
last_cn.save()
else: # Jsme první v řadě, takže se musíme přidat jako first_child RočníkNodu
rn.first_child = cn
rn.save()
last_cn = cn
class Migration(migrations.Migration):
dependencies = [
('seminar', '0055_smazat_nemigrovane_zastarale_veci'),
]
operations = [
migrations.RunPython(generuj_RocnikNody_a_CisloNody),
]