Web M&M
https://mam.matfyz.cz
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.
61 lines
1.8 KiB
61 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),
|
|
]
|
|
|