1e51ef7def
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/ - 12 code-workspace-Files - STATUS-*.md - viele M/D/R-Änderungen an bereits getrackten Files - .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
68 lines
3.5 KiB
SQL
68 lines
3.5 KiB
SQL
-- Test-User für V2-Plattform-Test (LOKAL).
|
|
-- Idempotent: nutzt INSERT IGNORE und alte Inserts werden bei zweitem Lauf einfach übersprungen.
|
|
--
|
|
-- Lehrperson: username "v2admin" email "v2admin@local" password "geheim" is_admin=1
|
|
-- Klasse: name "V2-Demo 1A" join_code "V2DEMO"
|
|
-- Schüler*innen in V2-Demo 1A:
|
|
-- lina / password "kind" / avatar fuchs-explorer
|
|
-- yusuf / password "kind" / avatar eule-prof / easy_language=1
|
|
-- sofia / password "kind" / avatar astronaut / nachteilsausgleich=1 + voll-A11y
|
|
--
|
|
-- Passwort-Hashes wurden mit PHP password_hash(..., PASSWORD_DEFAULT) generiert
|
|
-- am 2026-05-18. Bcrypt — niemand sollte sie auf Prod kopieren.
|
|
|
|
INSERT IGNORE INTO teachers (username, email, password, display_name, school_name, is_admin)
|
|
VALUES (
|
|
'v2admin', 'v2admin@local',
|
|
'$2y$10$ilqIFLGZvvjQIi9Y8/lXIOuO6.AlucfOFOSCr.hosm0sb/qZ0kweG',
|
|
'V2 Admin', 'Lokale V2-Test-Schule', 1
|
|
);
|
|
|
|
INSERT IGNORE INTO classes (teacher_id, name, school_year, join_code)
|
|
SELECT id, 'V2-Demo 1A', '2025/26', 'V2DEMO' FROM teachers WHERE username = 'v2admin';
|
|
|
|
-- Schüler*innen — gleicher Passwort-Hash für alle drei
|
|
INSERT IGNORE INTO students (class_id, username, password, display_name, avatar_slug, easy_language)
|
|
SELECT c.id, 'lina', '$2y$10$5zP6BcyoCDzXQBfjZ01WCOtfYIUh6TKeuz5Fe3Sl45xAEJYfjwuo.', 'Lina', 'fuchs-explorer', 0
|
|
FROM classes c WHERE c.join_code = 'V2DEMO';
|
|
|
|
INSERT IGNORE INTO students (class_id, username, password, display_name, avatar_slug, easy_language)
|
|
SELECT c.id, 'yusuf', '$2y$10$5zP6BcyoCDzXQBfjZ01WCOtfYIUh6TKeuz5Fe3Sl45xAEJYfjwuo.', 'Yusuf', 'eule-prof', 1
|
|
FROM classes c WHERE c.join_code = 'V2DEMO';
|
|
|
|
INSERT IGNORE INTO students (class_id, username, password, display_name, avatar_slug, easy_language,
|
|
high_contrast, reduced_motion, screen_reader, nachteilsausgleich, text_scale)
|
|
SELECT c.id, 'sofia', '$2y$10$5zP6BcyoCDzXQBfjZ01WCOtfYIUh6TKeuz5Fe3Sl45xAEJYfjwuo.', 'Sofia', 'astronaut',
|
|
0, 1, 1, 1, 1, 'large'
|
|
FROM classes c WHERE c.join_code = 'V2DEMO';
|
|
|
|
-- Beispiel-Modul-Registrierung (damit Cockpit nicht leer ist)
|
|
INSERT IGNORE INTO module_info_v2
|
|
(slug, display_name, display_name_easy, version, spec_version, icon,
|
|
short_description, short_description_easy, long_description, long_description_easy,
|
|
estimated_duration_min, entry_url, maintainer_instance, status)
|
|
VALUES (
|
|
'hallo-welt', 'Hallo Welt', 'Erste Aufgabe', '1.0.0', '1.0', '👋',
|
|
'Beispiel-Modul: zeigt wie ein V2-Modul die Spec erfüllt.',
|
|
'Ein erstes Beispiel zum Anschauen.',
|
|
'Mini-Modul mit drei Schritten: Begrüßung, eine Multiple-Choice-Frage, Geschafft-Screen.',
|
|
'Eine kleine Aufgabe zum Schauen.',
|
|
2, '/v2beta/sims/hallo-welt/public/game.html', 'atlas', 'stable'
|
|
);
|
|
|
|
INSERT IGNORE INTO module_levels_v2 (module_slug, level_id, label, label_easy, display_order)
|
|
VALUES ('hallo-welt', 'L1', 'Einsteiger', 'Leicht', 0);
|
|
|
|
INSERT IGNORE INTO module_milestones_v2 (module_slug, milestone_id, label, display_order)
|
|
VALUES
|
|
('hallo-welt', 'welcome-shown', 'Begrüßung gesehen', 0),
|
|
('hallo-welt', 'question-answered', 'Frage beantwortet', 1),
|
|
('hallo-welt', 'module-completed', 'Modul abgeschlossen', 2);
|
|
|
|
-- V1-Freigabe in class_modules: damit das Modul im freien Modus auftaucht.
|
|
-- Wenn class_modules-Tabelle nicht existiert, ignoriert MySQL den Insert-Fehler nicht selber —
|
|
-- deshalb in try/catch-Manier separat ausführen (siehe Skript-Aufruf).
|
|
|
|
INSERT IGNORE INTO class_modules (class_id, module_id, enabled)
|
|
SELECT c.id, 'hallo-welt', 1 FROM classes c WHERE c.join_code = 'V2DEMO';
|