# -*- 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), ]