update
This commit is contained in:
@@ -186,23 +186,14 @@ def _laenge_band(n_atome: int) -> tuple[int, int]:
|
||||
|
||||
def _anknuepf_kontext(b: dict) -> str:
|
||||
"""Was der Leser aus früheren Durchgängen schon kennt: tieferstufige Atome
|
||||
desselben Ziels plus direkte braucht-Voraussetzungen. Der Writer knüpft an,
|
||||
statt neu zu erklären (Dopplungs-Schutz zwischen den Durchgängen)."""
|
||||
desselben Ziels. Der Writer knüpft an, statt neu zu erklären
|
||||
(Dopplungs-Schutz zwischen den Durchgängen)."""
|
||||
rang = LEVEL_RANG.get(b["level"], 1)
|
||||
atome = _atome_von(b["id"])
|
||||
ids = {a["id"] for a in atome}
|
||||
kontext: dict[int, dict] = {}
|
||||
for a in db.query("SELECT * FROM atome WHERE ziel_id=? AND status NOT IN"
|
||||
" ('gemerged','verworfen')", (b["ziel_id"],)):
|
||||
if LEVEL_RANG.get(a["level"], 1) < rang:
|
||||
kontext[a["id"]] = a
|
||||
if ids:
|
||||
marks = ",".join("?" * len(ids))
|
||||
for a in db.query(f"SELECT a.* FROM kanten k JOIN atome a ON a.id=k.zu_atom"
|
||||
f" WHERE k.art='braucht' AND k.status='aktiv'"
|
||||
f" AND k.von_atom IN ({marks})", tuple(ids)):
|
||||
if a["id"] not in ids and LEVEL_RANG.get(a["level"], 1) < rang:
|
||||
kontext[a["id"]] = a
|
||||
return "\n".join(f"- {a['titel']}: {a['definition']}" for a in kontext.values())
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user