This commit is contained in:
team3
2026-06-29 15:35:41 +02:00
parent 753b95b689
commit 87fc9b209a
6 changed files with 597 additions and 78 deletions

View File

@@ -764,14 +764,18 @@ async def list_bausteine(topic: str, status: str | None = None) -> list[dict]:
return out
async def set_baustein_status(topic: str, titel_norm: str, status: str, titel: str | None = None, beschreibung: str | None = None) -> None:
"""Status setzen; optional Titel/Beschreibung aktualisieren (z.B. nach semantischem Merge)."""
async def set_baustein_status(topic: str, titel_norm: str, status: str, titel: str | None = None, beschreibung: str | None = None, neu_norm: str | None = None) -> None:
"""Status setzen; optional Titel/Beschreibung aktualisieren (z.B. nach semantischem Merge).
`neu_norm` benennt den Norm-Schlüssel um (Klärung: Verweis-Titel → sprechender Name). Nur
sicher, solange noch keine Subbausteine/Fakten am alten `titel_norm` hängen."""
db = await get_db()
fields = {"status": status, "updated_at": _now()}
if titel is not None:
fields["titel"] = titel
if beschreibung is not None:
fields["beschreibung"] = beschreibung
if neu_norm is not None and neu_norm != titel_norm:
fields["titel_norm"] = neu_norm
sets = ", ".join(f"{k} = :{k}" for k in fields)
await db.execute(
f"UPDATE bausteine SET {sets} WHERE topic = :topic AND titel_norm = :titel_norm",