update
This commit is contained in:
@@ -14,6 +14,7 @@ from fastapi.staticfiles import StaticFiles
|
||||
from pydantic import BaseModel
|
||||
|
||||
import agents
|
||||
import artefakte
|
||||
import db
|
||||
import guide
|
||||
import ledger
|
||||
@@ -156,11 +157,17 @@ def state(topic: str):
|
||||
raise HTTPException(404, "unbekanntes Topic")
|
||||
run = db.one("SELECT * FROM runs WHERE topic=? ORDER BY id DESC", (topic,))
|
||||
atome = db.query("SELECT * FROM atome WHERE topic=? ORDER BY id", (topic,))
|
||||
# Nenner = SOLL je Atom (2 Karten + 1 Beispiel + 4 Aussagen), Zähler =
|
||||
# Verifizierte, je Typ aufs Ziel gekappt — so liest sich die Karte als
|
||||
# Fortschritt Richtung Vollständigkeit, nicht als Zeilenzählung.
|
||||
ziel_gesamt = sum(artefakte.ZIEL_ZEILEN.values())
|
||||
fuer_atom = {}
|
||||
for a in db.query(
|
||||
"SELECT atom_id, SUM(status='verifiziert') AS ok, COUNT(*) AS n FROM artefakte"
|
||||
" WHERE atom_id IN (SELECT id FROM atome WHERE topic=?) GROUP BY atom_id", (topic,)):
|
||||
fuer_atom[a["atom_id"]] = {"verifiziert": a["ok"], "gesamt": a["n"]}
|
||||
"SELECT atom_id, typ, SUM(status='verifiziert') AS ok FROM artefakte"
|
||||
" WHERE atom_id IN (SELECT id FROM atome WHERE topic=?)"
|
||||
" GROUP BY atom_id, typ", (topic,)):
|
||||
e = fuer_atom.setdefault(a["atom_id"], {"verifiziert": 0, "gesamt": ziel_gesamt})
|
||||
e["verifiziert"] += min(a["ok"], artefakte.ZIEL_ZEILEN.get(a["typ"], 0))
|
||||
return {
|
||||
"topic": t, "run": run,
|
||||
"ebenen": _ebenen_info(t, run),
|
||||
@@ -171,7 +178,8 @@ def state(topic: str):
|
||||
"soll": db.query("SELECT * FROM soll WHERE topic=? AND status='bestaetigt'"
|
||||
" ORDER BY id", (topic,))
|
||||
or db.query("SELECT * FROM soll WHERE topic=? ORDER BY id", (topic,)),
|
||||
"atome": [{**a, "artefakte": fuer_atom.get(a["id"], {"verifiziert": 0, "gesamt": 0})}
|
||||
"atome": [{**a, "artefakte": fuer_atom.get(a["id"],
|
||||
{"verifiziert": 0, "gesamt": ziel_gesamt})}
|
||||
for a in atome],
|
||||
"lernziele": db.query("SELECT * FROM lernziele WHERE topic=? ORDER BY id", (topic,)),
|
||||
"bausteine": db.query(
|
||||
|
||||
Reference in New Issue
Block a user