Browse Source

Merge branch 'master' into podezrele-seminare

pull/65/head
Jonas Havelka 2 weeks ago
parent
commit
c0825691a6
  1. 43
      seminar/migrations/0144_post_odstrel_vseho.py
  2. 10
      treenode/models.py

43
seminar/migrations/0144_post_odstrel_vseho.py

@ -0,0 +1,43 @@
# Generated by Django 4.2.16 on 2024-11-03 01:55
from django.db import migrations
# Myšlenka: Tahle migrace o sobě prohlašuje, že závisí na všem, co se do téhle chvíle stalo. To má dva důsledky:
# 1. V okamžiku, kdy tahle migrace proběhne, tak už máme model ve stavu který očekáváme. IOW slouží jako bariéra, za kterou nemůžou přetéct úpravy ostatních aplikací (hlavně těch našich)
# 2. Zároveň ale tvrdíme, že k tomu, aby tahle migrace proběhla, potřebujeme (potenciálně relativně staré) verze cizích aplikací, což způsobí uspořádání opačným směrem: DB změny cizích aplikací naopak proběhnou až po této migraci
# Vzhledem k tomu, že by i naše předchozí aplikace měly záviset na těchto změnách, tak tím efektivně vynucujeme zachování stavu pro ty mezilehlé migrace, které možná (chybou) nedokumentovaně spoléhají na to, jak vypadají cizí aplikace.
# Plán do budoucna: Jakmile tahle migrace proběhne na všech myslitelných databázích, můžeme její předchůdce prostě smazat a nahradit nějakou výrazně snazší sadou migrací, která jen vygeneruje správně tabulky a závislosti podle aktuálního modelu.
# - To se ve skutečnosti vesměs už stalo, v odstřelených aplikacích jsou modely stejně všechny „nové s daty spadlými z nebe“. Je moc pozdě v noci, ale myslím si, že prostě bude stačit smazat závislosti na migracích v `seminar`i a celou aplikaci `seminar` zrušit. (Největší problém je to při nasazování DB z nuly např. u generování testdat…)
# Je otázka, jestli tahle migrace nemá bydlet ve `various` či jinde, aby se dala smazat celá složka `seminar`.
class Migration(migrations.Migration):
dependencies = [
('admin', '0003_logentry_add_action_flag_choices'),
('auth', '0012_alter_user_first_name_max_length'),
('authtoken', '0004_alter_tokenproxy_options'),
('contenttypes', '0002_remove_content_type_name'),
('flatpages', '0001_initial'),
('galerie', '0013_post_split_soustredeni'),
('header_fotky', '0001_initial'),
('korektury', '0024_vic_orgu_k_pdf'),
('novinky', '0004_alter_novinky_id'),
('odevzdavatko', '0009_odstrel_treenode_post'),
('personalni', '0017_odstrel_treenode_post'),
('prednasky', '0018_post_split_soustredeni'),
('reversion', '0002_add_index_on_version_for_content_type_and_db'),
('seminar', '0143_odstrel_treenode_post'),
('sessions', '0001_initial'),
('sifrovacka', '0006_personalni_post_migrate'),
('sites', '0002_alter_domain_unique'),
('sitetree', '0002_alter_treeitem_parent_alter_treeitem_tree'),
('soustredeni', '0010_tvorba_post'),
('taggit', '0006_rename_taggeditem_content_type_object_id_taggit_tagg_content_8fc721_idx'),
('treenode', '0003_odstrel_treenode_post'),
('tvorba', '0005_odstrel_treenode_post'),
('various', '0006_tvorba_post'),
('vyroci', '0001_initial'),
]
operations = [
]

10
treenode/models.py

@ -249,6 +249,16 @@ class ReseniNode(TreeNode):
def getOdkazStr(self):
return str(self.reseni)
# LEdoian: Můžu prostě odstřelit Text a Obrázek do aplikace `treenode`, kam podle mě
# stejně patří? (Myšlenka, proč by tam měly patřit: tak, jak teď jsou je stejně
# využívají jen TreeNody a žádné rozhraní k nim stejně není, takže aktuálně
# použít nejdou (jako zbytek TN) a jejich sémantika pro „společnou tvorbu čísla
# na web a PDF“ je ze stejné školy. A taky kvůli nemíchání – pokud vbrzku bude
# potřeba nějaký podobný model, navrhuji ho udělat znovu a klidně úplně stejně,
# staré věci pak buď zůstanou skryté, nebo je datově namigrujeme – taková
# migrace bude snadná.) – Jidáš: jo, a napiš tam tyhle myšlenky do komentáře.
# (zhruba přepis diskuse ve web-dev, 2024-10-30.)
class Text(SeminarModelBase):
class Meta:
db_table = 'seminar_texty'

Loading…
Cancel
Save