You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.8 KiB

# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-05-29 03:26
from __future__ import unicode_literals
from django.db import migrations
def pridej_potomka(rodic, potomek):
# Daný vrchol bude posledním potomkem rodiče
uz_ma_deti = False
posledni = None
# Najdeme aktuálně posledního potomka:
if rodic.first_child:
uz_ma_deti = True
posledni = rodic.first_child
while posledni.succ:
posledni = posledni.succ
# Nastavíme kořen:
potomek.root = rodic.root
potomek.save()
# Připojíme vrchol:
if uz_ma_deti:
posledni.succ = potomek
posledni.save()
else:
rodic.first_child = potomek
rodic.save()
def pokacej_les(apps, schema_editor):
# Teď je potřeba všechny TreeNody příslušející k zadaným problémům připojit
# do hlavního stromu
# Tohle je jednoduchá verze: nejdřív témátka a seriály, pak úložky a pohádky,
# pak články a konfery, pak vzoráky, všechno setříděné podle kódu (FIXME?)
# Kopírování je častým zdrojem chyb!
CisloNode = apps.get_model('seminar', 'CisloNode')
TemaVCisleNode = apps.get_model('seminar', 'TemaVCisleNode')
KonferaNode = apps.get_model('seminar', 'KonferaNode')
ClanekNode = apps.get_model('seminar', 'ClanekNode')
UlohaZadaniNode = apps.get_model('seminar', 'UlohaZadaniNode')
UlohaVzorakNode = apps.get_model('seminar', 'UlohaVzorakNode')
Tema = apps.get_model('seminar', 'Tema')
Konfera = apps.get_model('seminar', 'Konfera')
Clanek = apps.get_model('seminar', 'Clanek')
Uloha = apps.get_model('seminar', 'Uloha')
Problem = apps.get_model('seminar', 'Problem')
#TODO!
raise NotYetImplemented("Ještě než se smaže Franken-model, je potřeba spojit stromečky správně!")
class Migration(migrations.Migration):
dependencies = [
('seminar', '0058_problem_to_uloha_tema_clanek'),
]
operations = [
migrations.RunPython(pokacej_les),
]