This commit is contained in:
team3
2026-06-17 11:09:28 +02:00
parent c00580c261
commit d6b748cb94
2 changed files with 16 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
.PHONY: install dev prod stop logs remove auth sync sync-projects projects searxng ollama .PHONY: install dev prod stop logs remove auth sync sync-projects sync-all projects searxng ollama
COMPOSE = docker compose COMPOSE = docker compose
@@ -58,17 +58,22 @@ ollama:
ollama pull qwen3.5:9b ollama pull qwen3.5:9b
@echo "Ollama bereit — Provider 'Lokal' ist aktiv (Modelle anpassen: backend/config.py + dev-ops/opencode.json)." @echo "Ollama bereit — Provider 'Lokal' ist aktiv (Modelle anpassen: backend/config.py + dev-ops/opencode.json)."
sync: sync: stop
@mkdir -p storage/themen @mkdir -p storage/themen
@rm -f storage/creator.db-shm storage/creator.db-wal
rsync -avz --progress root@178.104.67.87:/var/www/creator/storage/creator.db storage/ rsync -avz --progress root@178.104.67.87:/var/www/creator/storage/creator.db storage/
rsync -avz --progress root@178.104.67.87:/var/www/creator/storage/creator.db-wal storage/
rsync -avz --progress --delete root@178.104.67.87:/var/www/creator/storage/themen/ storage/themen/ rsync -avz --progress --delete root@178.104.67.87:/var/www/creator/storage/themen/ storage/themen/
@echo "Sync abgeschlossen." @echo "Sync abgeschlossen."
# Projekte vom Server holen: `make sync-projects` (auch: `make sync projects`). # Projekte vom Server holen: `make sync-projects` (auch: `make sync projects`).
# Ohne --delete — lokale Projekte, die es auf dem Server nicht gibt, bleiben. # Mit --delete — exakter Spiegel: lokale Projekte ohne Server-Pendant werden gelöscht.
sync-projects: sync-projects:
@mkdir -p projects @mkdir -p projects
rsync -avz --progress root@178.104.67.87:/var/www/creator/projects/ projects/ rsync -avz --progress --delete root@178.104.67.87:/var/www/creator/projects/ projects/
@echo "Projekt-Sync abgeschlossen." @echo "Projekt-Sync abgeschlossen."
sync-all: sync sync-projects
@echo "Voller Sync (Themen + Projekte) abgeschlossen."
projects: sync-projects projects: sync-projects

View File

@@ -256,9 +256,14 @@ async function verdictPruefen() {
provider: props.provider, messages: pruefDialog(), ...antwortPayload(), aktion: 'antwort_pruefen', provider: props.provider, messages: pruefDialog(), ...antwortPayload(), aktion: 'antwort_pruefen',
}) })
if (meine !== pruefenRun) return // eine neuere Bewertung läuft → diese verwerfen if (meine !== pruefenRun) return // eine neuere Bewertung läuft → diese verwerfen
// Streak driftfrei aus streakVorFrage neu setzen; Reset beim ersten Erreichen von 3/10. // Streak driftfrei aus streakVorFrage neu setzen; Reset nur am Deckel der
// aktiven Stufe (Tier 1 → absolviert/3, Tier 2 → verstanden/10). Bei Tier 3
// läuft die Streak durch 3/10 durch; bei 25 ist eh gemeistert (Score frozen).
let neu = res.bewertung === 'gut' ? streakVorFrage.value + 1 : 0 let neu = res.bewertung === 'gut' ? streakVorFrage.value + 1 : 0
if ((res.absolviert && !warAbsolviert) || (res.verstanden && !warVerstanden)) neu = 0 const deckelErreicht =
(!props.tier2 && res.absolviert && !warAbsolviert) ||
(props.tier2 && !props.tier3 && res.verstanden && !warVerstanden)
if (deckelErreicht) neu = 0
streak.value = neu streak.value = neu
applyPruefung(res) applyPruefung(res)
if (ziel) { if (ziel) {