A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.
This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).
Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
91 lines
2.8 KiB
HTML
91 lines
2.8 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Korrektur - {{ data.exam_title }}</title>
|
|
</head>
|
|
<body>
|
|
<div class="exam-header">
|
|
<h1 style="margin: 0; color: white;">{{ data.exam_title }}</h1>
|
|
<div>{{ data.subject }} | {{ data.date }}</div>
|
|
</div>
|
|
|
|
<div class="student-info">
|
|
<strong>{{ data.student.name }}</strong> | Klasse {{ data.student.class_name }}
|
|
</div>
|
|
|
|
<div class="result-box">
|
|
<div class="result-grade" style="color: {{ data.grade | grade_color }};">
|
|
Note: {{ data.grade }}
|
|
</div>
|
|
<div class="result-points">
|
|
{{ data.achieved_points }} von {{ data.max_points }} Punkten
|
|
{% if data.max_points > 0 %}
|
|
({{ data.percentage | round(1) }}%)
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<h3>Detaillierte Auswertung</h3>
|
|
<div class="corrections-list">
|
|
{% for item in data.corrections %}
|
|
<div class="correction-item">
|
|
<div class="correction-question">
|
|
Aufgabe {{ loop.index }}: {{ item.question }}
|
|
</div>
|
|
<div>
|
|
<strong>Punkte:</strong> {{ item.points }}
|
|
</div>
|
|
{% if item.feedback %}
|
|
<div class="correction-feedback">
|
|
{{ item.feedback }}
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
{% if data.teacher_notes %}
|
|
<div style="background: #e3f2fd; padding: 15px; border-radius: 5px; margin-bottom: 20px;">
|
|
<strong>Lehrerkommentar:</strong><br>
|
|
{{ data.teacher_notes }}
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if data.ai_feedback %}
|
|
<div style="background: #f3e5f5; padding: 15px; border-radius: 5px; margin-bottom: 20px;">
|
|
<strong>KI-Feedback:</strong><br>
|
|
{{ data.ai_feedback }}
|
|
</div>
|
|
{% endif %}
|
|
|
|
<h3>Klassenstatistik</h3>
|
|
<table class="stats-table">
|
|
{% if data.class_average %}
|
|
<tr>
|
|
<td><strong>Klassendurchschnitt:</strong></td>
|
|
<td>{{ data.class_average }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% if data.grade_distribution %}
|
|
<tr>
|
|
<td><strong>Notenverteilung:</strong></td>
|
|
<td>
|
|
{% for grade, count in data.grade_distribution.items() %}
|
|
Note {{ grade }}: {{ count }}x{% if not loop.last %}, {% endif %}
|
|
{% endfor %}
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
|
|
<div class="signature" style="margin-top: 40px;">
|
|
<p style="font-size: 9pt; color: #666;">Datum: {{ data.date }}</p>
|
|
</div>
|
|
|
|
<div style="font-size: 8pt; color: #999; margin-top: 30px; text-align: center;">
|
|
Erstellt mit BreakPilot | {{ generated_at }}
|
|
</div>
|
|
</body>
|
|
</html>
|