PummelHummel/Alph in 3D-Druck-AG integriert
Quelle: D:/Claude-Projekte/PummelHummel/feedback_modul/ (Standard-Pattern, auch in arduino.lehrstun.de + meta.lehrstun.de erprobt). 1:1 nach 3d.lehrstun.de/feedback_modul/ kopiert. app.py erweitert: - init_feedback_modul-Aufruf mit unseren Adaptern - _alph_user_kontext: Lehrer = admin, SuS = profil mit Vorname+Tier, Anonym = kein Widget - _alph_widget_aktiv: liest einstellung.feedback_widget_aktiv - _alph_admin_unauthorized: Redirect zu admin.admin_login Hart-Aus via ENV ALPH_DEAKTIVIERT=1 weiterhin moeglich. Soft-Aus via einstellung.feedback_widget_aktiv='0' (per Admin-Inline-Edit). DB: - feedback-Tabelle via feedback_modul.schema.DDL angelegt (idempotent) - einstellung.feedback_widget_aktiv auf '1' gesetzt (Alpha-Test-Modus) Test: - Eingeloggter SuS sieht das Alph-Widget auf /lektion/1 - Anonym (kein Login) sieht es nicht (user_kontext gibt None) - Admin sieht es mit Rolle 'admin' Naechster Schritt: Deploy auf Hetzner (3d.lehrstun.de), Markus loggt sich als Test-Schueler ein und gibt Feedback zu den 14 Lektionen.
This commit is contained in:
37
feedback_modul/schema.py
Normal file
37
feedback_modul/schema.py
Normal file
@@ -0,0 +1,37 @@
|
||||
"""Schema-DDL fuer das Alph-Feedback-Modul.
|
||||
|
||||
Idempotent — kann mehrfach ausgefuehrt werden.
|
||||
"""
|
||||
|
||||
DDL = """
|
||||
CREATE TABLE IF NOT EXISTS feedback (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
app_name TEXT NOT NULL,
|
||||
kategorie TEXT NOT NULL,
|
||||
text TEXT NOT NULL,
|
||||
url_pfad TEXT NOT NULL,
|
||||
seitentitel TEXT,
|
||||
user_kontext TEXT, -- JSON: tier, kasten, kurs, gruppe_id, rolle
|
||||
technik_kontext TEXT, -- JSON: viewport, ua, sprache, referer
|
||||
element_selector TEXT,
|
||||
element_text TEXT,
|
||||
status TEXT NOT NULL DEFAULT 'neu', -- neu|triagiert|in_arbeit|erledigt|wontfix|spam
|
||||
cluster_hash TEXT,
|
||||
bearbeitet_von TEXT,
|
||||
bearbeitet_notiz TEXT,
|
||||
erstellt_am DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
aktualisiert_am DATETIME
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS feedback_status_idx ON feedback(status);
|
||||
CREATE INDEX IF NOT EXISTS feedback_app_idx ON feedback(app_name);
|
||||
CREATE INDEX IF NOT EXISTS feedback_cluster_idx ON feedback(cluster_hash);
|
||||
"""
|
||||
|
||||
KATEGORIEN = [
|
||||
("code", "Codefehler", "Sketch tut nicht, Compiler-Error"),
|
||||
("link", "Link kaputt", "Knopf oder Link fuehrt ins Leere"),
|
||||
("verstehen", "Versteh ich nicht", "Erklaerung unklar oder zu schwer"),
|
||||
("fehlt", "Etwas fehlt", "Information, Bauteil, Schritt ist nicht da"),
|
||||
("sonstiges", "Sonstiges", "Anderes Feedback / Idee / Lob"),
|
||||
]
|
||||
Reference in New Issue
Block a user