Lehreransicht aufräumen: Sim-Labels + Logistik-Spalten + assessment-Skip-Fix
- SIM_LABELS: EIN Wort + eindeutiges 3-Buchstaben-Kürzel je App (zentrale Quelle simWord()/simCode()). Tages-Balken nutzt jetzt Kürzel (eng) → Wort (mittel) → Wort+Lektion (breit) statt kryptischem "Log L1". - LIVE_PRIMARY_FIELDS['logistik'] ergänzt (Stufe · Budget · Geliefert/Gesamt · Unterwegs · Offen · Verspätet · Fortschritt) — vorher Roh-Dump aller Keys. - Aktuell-Fallback (uncurated Sims): interne __-Heartbeat-Keys + simId/ timestamp/screen ausgeblendet, nicht mehr als Spalten. - assessment.php: Skip-Bug gefixt — las phase aus $body['processLog']['phase'], gesendet wird $body['phase']. Dadurch landeten alle 'started'/'running'-Pings als LEERE Zeilen in assessments und verschmutzten Ergebnisse/Tag. Jetzt greift der Skip; nur echte 'completed'-Abschlüsse werden gespeichert. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -29,8 +29,13 @@ $durationMs = max(0, min($rawDuration, GGS_MAX_SESSION_MS));
|
||||
// Der Live-Zustand für das Lehrer-Cockpit kommt über den Heartbeat (live_sessions);
|
||||
// diese 30-s-Pings (phase 'running'/'started') haben früher die Tabelle zugemüllt
|
||||
// (~96 % der Zeilen). Nur echte Abschlüsse/Ergebnisse werden gespeichert.
|
||||
// phase steht auf oberster Body-Ebene (alle Sims senden {simId, phase, …}).
|
||||
// Früher wurde fälschlich $body['processLog']['phase'] gelesen → der Skip
|
||||
// griff nie, und JEDER 'started'/'running'-Ping landete als leere Zeile in
|
||||
// assessments (verschmutzt Ergebnisse/Tag). Robust: oberste Ebene, Fallback nested.
|
||||
$pl = $body['processLog'] ?? [];
|
||||
$phase = (is_array($pl) && isset($pl['phase'])) ? $pl['phase'] : null;
|
||||
$phase = $body['phase']
|
||||
?? ((is_array($pl) && isset($pl['phase'])) ? $pl['phase'] : null);
|
||||
if ($phase === 'running' || $phase === 'started') {
|
||||
Response::ok(['skipped' => true]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user