/** * 🎓 OFFIZIELLES LEISTUNGS-ZERTIFIKAT 🎓 * ======================================= * Generiert ein ausdruckbares Abschlusszertifikat nach Abschluss eines Lehrpfads. */ (function () { function escapeHtml(text) { if (!text) return ""; return String(text) .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } window.zeigeZertifikatModal = async function (lehrpfadNummer) { const data = window.GAMIFICATION_DATA || { spieler_name: "Python-Entwickler", level: 1 }; const user = window.AUTH ? window.AUTH.user : null; const studentName = (user && user.name) ? user.name : (data.spieler_name || "Python-Entwickler"); const dateStr = new Date().toLocaleDateString("de-DE", { day: "2-digit", month: "long", year: "numeric" }); let titel = "Grundlagen der Python-Programmierung"; let moduleDesc = "10 Module: Zahlen & Rechnen, Datentypen, f-Strings, Kontrollstrukturen, Funktionen, Listen, Strings, Dictionaries, Sets & Comprehensions"; let trackKey = "lehrpfad_1"; if (lehrpfadNummer === 2 || lehrpfadNummer === "lehrpfad_2") { titel = "Einstieg in die Objektorientierung (OOP) & Entwickler-Tools"; moduleDesc = "9 Module: Klassen, Konstruktor __init__, self, Methoden, UML-Diagramme, VS Code, Git-Versionskontrolle, Komposition & Tamagotchi-Projekt"; trackKey = "lehrpfad_2"; } else if (lehrpfadNummer === 3 || lehrpfadNummer === "lehrpfad_3") { titel = "Fortgeschrittenes OOP, Softwarequalität & Desktop-GUIs"; moduleDesc = "10 Module: Speicher-Referenzen, Dunder-Methoden, TDD Unit Testing, Vererbung, Polymorphie, Exceptions, JSON-Persistenz, Tkinter GUIs, Container & Masterprojekt"; trackKey = "lehrpfad_3"; } else if (lehrpfadNummer === 4 || lehrpfadNummer === "lehrpfad_4") { titel = "Python Professional & Data Engineering"; moduleDesc = "6 Master-Module: Reguläre Ausdrücke (re), Functional Programming (lambda, zip, map), Generatoren & itertools, Dataclasses & Type Hints, Relationale DBs mit SQLite, REST-APIs & JSON-Feeds"; trackKey = "lehrpfad_4"; } else if (lehrpfadNummer === "master") { titel = "Grandmaster of Python Software Engineering"; moduleDesc = "Vollständiger Abschluss aller 4 Lehrpfade (33 Module, über 220 bestandene automatisierte Unittests, SQLite-Persistenz, REST-APIs & MVC-Desktop-App)"; trackKey = "master"; } let certUuid = "CERT-" + Math.random().toString(36).substring(2, 10).toUpperCase(); // Registriere Zertifikat im Backend falls angemeldet const token = localStorage.getItem("auth_token"); if (token) { try { const res = await fetch("/api/certificates/create", { method: "POST", headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` }, body: JSON.stringify({ track_id: trackKey, student_name: studentName }) }); const resData = await res.json(); if (resData.uuid) certUuid = resData.uuid; } catch (e) {} } const modal = document.createElement("div"); modal.className = "certificate-overlay"; modal.innerHTML = `
🎓 OFFIZIELLES ZERTIFIKAT 🎓

Erfolgreicher Abschluss

Hiermit wird bescheinigt, dass

${escapeHtml(studentName)}

den anspruchsvollen Lehrpfad

${escapeHtml(titel)}

${escapeHtml(moduleDesc)}

Erreichtes Level: Level ${data.level || 1} (${escapeHtml(data.titel || "Entwickler")})
Datum: ${dateStr}
Zertifikats-ID: ${escapeHtml(certUuid)}
🏆 EXZELLENZ-SIEGEL
`; document.body.appendChild(modal); }; // Alias für index.html Buttons window.openCertificate = window.zeigeZertifikatModal; })();