This commit is contained in:
team3
2026-09-07 07:44:00 +02:00
parent 5d42b4cfc5
commit c6bbed4049
250 changed files with 13372 additions and 6203 deletions

View File

@@ -81,35 +81,9 @@ def speichern(projekt: str, id: str, roh: str) -> dict:
titel = parser.zerlege(roh)["titel"]
if not titel:
raise ValueError("Titel fehlt")
vorher = datei.read_text()
datei.write_text(roh)
neu = _folge_titel(datei, titel)
# Ein neuer Titel benennt die Datei um. Der Rückschritt muss beides kennen:
# die neue Datei fällt weg, die alte kommt mit ihrem alten Inhalt zurück.
schritt = {datei.stem: vorher}
if neu.stem != datei.stem:
schritt[neu.stem] = None
return _eintrag(neu)
return _eintrag(_folge_titel(datei, titel))
def loeschen(projekt: str, id: str):
datei = _datei(projekt, id)
titel = parser.zerlege(datei.read_text())["titel"] or id
datei.unlink()
def verschieben(projekt: str, id: str, ziel: str) -> dict:
"""Ein Feature in ein anderes Projekt umhängen.
Kein Kopieren: die Datei wandert, damit es sie nur einmal gibt. Der Verlauf
hält beide Seiten fest — sonst ließe sich der Schritt nicht zurücknehmen.
"""
if ziel == projekt:
raise ValueError("Feature liegt schon in diesem Projekt")
datei = _datei(projekt, id)
roh = datei.read_text()
titel = parser.zerlege(roh)["titel"] or id
# Erst das Ziel auflösen: gibt es das Projekt nicht, ist noch nichts passiert
neu = _frei(projekte.wurzel(ziel), _slug(titel))
datei.rename(neu)
return _eintrag(neu)
_datei(projekt, id).unlink()