update
This commit is contained in:
@@ -10,7 +10,6 @@ import agents
|
||||
import artefakte
|
||||
import auto_loop
|
||||
import db
|
||||
import diagramme
|
||||
import guide
|
||||
import inventar
|
||||
import korpus
|
||||
@@ -27,11 +26,10 @@ EBENEN = [
|
||||
("inventar", inventar, "inventar_fertig"),
|
||||
("artefakte", artefakte, "artefakte_fertig"),
|
||||
("struktur", struktur, "struktur_fertig"),
|
||||
("diagramme", diagramme, "diagramme_fertig"),
|
||||
("guide", guide, "fertig"),
|
||||
]
|
||||
_ORDNUNG = ["neu", "korpus", "korpus_fertig", "inventar_fertig",
|
||||
"artefakte_fertig", "struktur_fertig", "diagramme_fertig", "fertig"]
|
||||
"artefakte_fertig", "struktur_fertig", "fertig"]
|
||||
_laeufe: dict[str, asyncio.Task] = {}
|
||||
|
||||
|
||||
@@ -65,7 +63,7 @@ def lauf_stoppen(topic: str) -> None:
|
||||
db.update("runs", "id", run["id"], status="stopped", beendet=db.now())
|
||||
|
||||
|
||||
_ROLLBACK = {"guide": "diagramme_fertig", "diagramme": "struktur_fertig",
|
||||
_ROLLBACK = {"guide": "struktur_fertig",
|
||||
"struktur": "artefakte_fertig", "artefakte": "inventar_fertig",
|
||||
"inventar": "korpus_fertig", "korpus": "neu"}
|
||||
|
||||
@@ -77,25 +75,23 @@ def ebenen_entfernen(topic: str, ebene: str) -> None:
|
||||
if ebene not in _ROLLBACK:
|
||||
raise ValueError(f"unbekannte Ebene: {ebene}")
|
||||
lauf_stoppen(topic)
|
||||
stufe = ["guide", "diagramme", "struktur", "artefakte", "inventar", "korpus"].index(ebene)
|
||||
stufe = ["guide", "struktur", "artefakte", "inventar", "korpus"].index(ebene)
|
||||
db.execute("DELETE FROM sections WHERE baustein_id IN"
|
||||
" (SELECT id FROM bausteine WHERE topic=?)", (topic,))
|
||||
db.execute("UPDATE bausteine SET status='neu' WHERE topic=?", (topic,))
|
||||
db.execute("UPDATE kapitel SET intro='' WHERE topic=?", (topic,)) # Intro ist Guide-Text
|
||||
if stufe >= 1: # diagramme
|
||||
db.execute("DELETE FROM diagramme WHERE topic=?", (topic,))
|
||||
if stufe >= 2: # struktur
|
||||
if stufe >= 1: # struktur
|
||||
db.execute("DELETE FROM bausteine WHERE topic=?", (topic,))
|
||||
db.execute("DELETE FROM kapitel WHERE topic=?", (topic,))
|
||||
db.execute("DELETE FROM lernziele WHERE topic=?", (topic,))
|
||||
db.execute("UPDATE atome SET ziel_id=NULL, baustein_id=NULL, ord=0 WHERE topic=?",
|
||||
(topic,))
|
||||
if stufe >= 3: # artefakte
|
||||
if stufe >= 2: # artefakte
|
||||
db.execute("DELETE FROM leitner WHERE artefakt_id IN (SELECT ar.id FROM artefakte ar"
|
||||
" JOIN atome a ON ar.atom_id=a.id WHERE a.topic=?)", (topic,))
|
||||
db.execute("DELETE FROM artefakte WHERE atom_id IN"
|
||||
" (SELECT id FROM atome WHERE topic=?)", (topic,))
|
||||
if stufe >= 4: # inventar
|
||||
if stufe >= 3: # inventar
|
||||
db.execute("DELETE FROM anker WHERE atom_id IN (SELECT id FROM atome WHERE topic=?)",
|
||||
(topic,))
|
||||
db.execute("DELETE FROM kanten WHERE topic=?", (topic,))
|
||||
@@ -103,7 +99,7 @@ def ebenen_entfernen(topic: str, ebene: str) -> None:
|
||||
# atome_stand mit-nullen — sonst überspringt der Resume-Guard die Neu-Extraktion
|
||||
db.execute("UPDATE quellen SET status='extrahiert', atome_stand='' WHERE topic=?",
|
||||
(topic,))
|
||||
if stufe >= 5: # korpus
|
||||
if stufe >= 4: # korpus
|
||||
db.execute("DELETE FROM soll WHERE topic=?", (topic,))
|
||||
db.execute("DELETE FROM quellen WHERE topic=?", (topic,))
|
||||
import shutil
|
||||
@@ -118,7 +114,7 @@ def ebenen_entfernen(topic: str, ebene: str) -> None:
|
||||
# append-only), aber die Zählung beginnt hinter dem Reset-Marker neu.
|
||||
letzte = db.one("SELECT MAX(id) AS m FROM events")["m"] or 0
|
||||
resets = db.uj(db.one("SELECT resets FROM topics WHERE name=?", (topic,))["resets"], {})
|
||||
for name in ["guide", "diagramme", "struktur", "artefakte", "inventar", "korpus"][:stufe + 1]:
|
||||
for name in ["guide", "struktur", "artefakte", "inventar", "korpus"][:stufe + 1]:
|
||||
resets[name] = letzte
|
||||
db.update("topics", "name", topic, status=_ROLLBACK[ebene], resets=db.j(resets))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user