🎉 Feat(docs): Added new error handling documentation and roadmap images

This commit is contained in:
2025-05-31 23:23:53 +02:00
parent 5f1b0c63e1
commit cf21c1dbfa
20 changed files with 858 additions and 87 deletions

View File

@ -1,6 +1,6 @@
{% extends "base.html" %}
{% block title %}Admin Panel - Mercedes-Benz MYP Platform{% endblock %}
{% block title %}Ausbilder-Bereich - Mercedes-Benz TBA Marienfelde{% endblock %}
{% block head %}
{{ super() }}
@ -63,11 +63,11 @@
<h1 class="text-5xl md:text-6xl font-bold mb-4 tracking-tight">
<span class="bg-gradient-to-r from-white to-blue-200 bg-clip-text text-transparent">
Admin Control Center
TBA Ausbilder-Bereich
</span>
</h1>
<p class="text-xl md:text-2xl text-blue-100 max-w-3xl mx-auto leading-relaxed">
Echtzeit-Verwaltung Ihres MYP-Systems mit modernster Technologie und Mercedes-Benz Qualität
Verwaltung des Steckdosen-Steuerungssystems für die Technische Berufsausbildung Werk Marienfelde
</p>
<!-- Real-Time Quick Actions -->
@ -225,9 +225,9 @@
<a href="{{ url_for('admin_page', tab='printers') }}"
class="group flex items-center px-6 py-3 text-sm font-medium rounded-xl transition-all duration-300 {{ 'bg-gradient-to-r from-blue-500 to-blue-600 text-white shadow-lg' if active_tab == 'printers' else 'text-slate-600 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-700/50 hover:text-slate-900 dark:hover:text-white' }}">
<svg class="w-5 h-5 mr-2 {{ 'text-white' if active_tab == 'printers' else 'text-slate-400 group-hover:text-slate-600 dark:group-hover:text-slate-300' }}" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"/>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
</svg>
Drucker
Drucker-Steckdosen
</a>
<a href="{{ url_for('admin_page', tab='jobs') }}"
@ -235,7 +235,7 @@
<svg class="w-5 h-5 mr-2 {{ 'text-white' if active_tab == 'jobs' else 'text-slate-400 group-hover:text-slate-600 dark:group-hover:text-slate-300' }}" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"/>
</svg>
Druckaufträge
Reservierungen
</a>
<a href="{{ url_for('admin_guest_requests') }}"
@ -243,7 +243,7 @@
<svg class="w-5 h-5 mr-2 {{ 'text-white' if active_tab == 'guest_requests' else 'text-slate-400 group-hover:text-slate-600 dark:group-hover:text-slate-300' }}" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"/>
</svg>
Gastaufträge
TBA-Anträge
</a>
<a href="{{ url_for('admin_page', tab='system') }}"
@ -406,12 +406,12 @@
<!-- Drucker Tab -->
<div class="p-8">
<div class="flex items-center justify-between mb-6">
<h2 class="text-2xl font-bold text-slate-900 dark:text-white">Druckerverwaltung</h2>
<h2 class="text-2xl font-bold text-slate-900 dark:text-white">Drucker-Steckdosen-Verwaltung</h2>
<button id="add-printer-btn" class="inline-flex items-center px-4 py-2 bg-gradient-to-r from-green-500 to-green-600 text-white rounded-xl hover:from-green-600 hover:to-green-700 transition-all duration-300 shadow-lg hover:shadow-xl">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"/>
</svg>
Drucker hinzufügen
Steckdose hinzufügen
</button>
</div>

View File

@ -194,7 +194,7 @@
<!-- Brand Text -->
<div class="flex flex-col ml-3">
<span class="text-sm lg:text-base font-bold text-slate-900 dark:text-white transition-colors duration-300 tracking-tight">Mercedes-Benz</span>
<span class="text-xs font-medium text-slate-600 dark:text-slate-400 transition-colors duration-300">MYP 3D-Druck Reservierungsplatform -</span>
<span class="text-xs font-medium text-slate-600 dark:text-slate-400 transition-colors duration-300">Manage Your Printer - </span>
</div>
</a>
</div>

View File

@ -1,6 +1,6 @@
{% extends "base.html" %}
{% block title %}Gastanfrage - Mercedes-Benz MYP Platform{% endblock %}
{% block title %}TBA-Nutzungsantrag - Mercedes-Benz TBA Marienfelde{% endblock %}
{% block head %}
{{ super() }}
@ -303,13 +303,13 @@
</svg>
</div>
<div>
<h1 class="text-4xl font-bold text-mercedes-black dark:text-white tracking-tight">Gastanfrage</h1>
<p class="text-mercedes-gray dark:text-slate-400 mt-1 text-lg">3D-Druckauftrag Anfrage stellen</p>
<h1 class="text-4xl font-bold text-mercedes-black dark:text-white tracking-tight">TBA-Nutzungsantrag</h1>
<p class="text-mercedes-gray dark:text-slate-400 mt-1 text-lg">Antrag für Drucker-Steckdosen-Nutzung in der TBA</p>
<div class="flex items-center mt-2 text-sm text-mercedes-blue">
<svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
</svg>
<span>Anträge werden manuell genehmigt</span>
<span>Anträge werden von Ausbildern geprüft</span>
</div>
</div>
</div>
@ -319,7 +319,7 @@
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
</svg>
<span>Anträge Übersicht</span>
<span>Meine Anträge</span>
</a>
<a href="{{ url_for('index') if url_for else '/' }}"
class="btn-secondary flex items-center gap-2">
@ -346,7 +346,7 @@
</div>
<div class="flex items-center">
<div class="progress-step">2</div>
<span class="ml-2 text-sm font-medium text-mercedes-gray dark:text-slate-400">Prüfung</span>
<span class="ml-2 text-sm font-medium text-mercedes-gray dark:text-slate-400">Ausbilder-Prüfung</span>
</div>
<div class="flex-1 h-1 bg-gray-200 dark:bg-gray-700 mx-4 rounded-full"></div>
<div class="flex items-center">
@ -361,11 +361,11 @@
<div class="dashboard-card p-8">
<div class="mb-8">
<h2 class="text-2xl font-bold text-mercedes-black dark:text-white mb-3">
Druckantrag einreichen
Nutzungsantrag für Drucker-Steckdosen
</h2>
<p class="text-mercedes-gray dark:text-slate-400 text-lg">
Füllen Sie alle erforderlichen Felder aus, um Ihren Druckantrag zu stellen.
<strong>Alle Angaben werden vertraulich behandelt.</strong>
Füllen Sie alle erforderlichen Felder aus, um Ihren Antrag für die Nutzung der Drucker-Steckdosen zu stellen.
<strong>Der Antrag wird von den TBA-Ausbildern geprüft und genehmigt.</strong>
</p>
</div>
@ -452,20 +452,20 @@
<!-- Drucker -->
<div>
<label for="{{ form.printer_id.id if form else 'printer_id' }}" class="block text-sm font-medium text-mercedes-black dark:text-slate-300 mb-2">
Gewünschter Drucker
Gewünschte Drucker-Steckdose
</label>
{% if form %}
{{ form.printer_id(class="mercedes-form-input block w-full px-4 py-3") }}
{% else %}
<select id="printer_id" name="printer_id" class="mercedes-form-input block w-full px-4 py-3">
<option value="">Drucker auswählen...</option>
<option value="1">Prusa i3 MK3S+ (PLA/PETG)</option>
<option value="2">Ultimaker S3 (PLA/ABS/PETG)</option>
<option value="3">Formlabs Form 3 (Resin)</option>
<option value="">Steckdose auswählen...</option>
<option value="1">Steckdose 1 - Prusa i3 MK3S+ (Arbeitsplatz A)</option>
<option value="2">Steckdose 2 - Ultimaker S3 (Arbeitsplatz B)</option>
<option value="3">Steckdose 3 - Formlabs Form 3 (Arbeitsplatz C)</option>
</select>
{% endif %}
<p class="mt-1 text-xs text-mercedes-gray dark:text-slate-400">
Wählen Sie den für Ihr Material geeigneten Drucker
Wählen Sie die Steckdose für Ihren gewünschten Arbeitsplatz
</p>
{% if form and form.printer_id.errors %}
<div class="mt-2 text-sm text-mercedes-red">
@ -484,7 +484,7 @@
<!-- Geschätzte Dauer -->
<div>
<label for="{{ form.duration_min.id if form else 'duration_min' }}" class="block text-sm font-medium text-mercedes-black dark:text-slate-300 mb-2">
Geschätzte Druckdauer *
Geschätzte Nutzungsdauer *
</label>
<div class="relative">
{% if form %}
@ -681,7 +681,7 @@
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
</svg>
<span>Anträge Übersicht</span>
<span>Meine Anträge</span>
</a>
<button onclick="showStatusCheck()" class="btn-secondary flex items-center gap-2">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">

View File

@ -1,6 +1,6 @@
{% extends "base.html" %}
{% block title %}Druckaufträge - Mercedes-Benz MYP Platform{% endblock %}
{% block title %}Reservierungen - Mercedes-Benz TBA Marienfelde{% endblock %}
{% block extra_css %}
<style>
@ -465,13 +465,13 @@
</svg>
</div>
<div>
<h1 class="text-4xl font-bold text-mercedes-black dark:text-white tracking-tight">Druckaufträge</h1>
<p class="text-mercedes-gray dark:text-slate-400 mt-1 text-lg">Verwalten Sie Ihre 3D-Druckjobs mit höchster Präzision</p>
<h1 class="text-4xl font-bold text-mercedes-black dark:text-white tracking-tight">Reservierungen</h1>
<p class="text-mercedes-gray dark:text-slate-400 mt-1 text-lg">Steckdosen-Reservierungen für 3D-Drucker in der TBA</p>
<div class="flex items-center mt-2 text-sm text-mercedes-blue">
<svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
</svg>
Live-Updates alle 30 Sekunden
Echtzeit-Status der Steckdosen-Reservierungen
</div>
</div>
</div>
@ -481,7 +481,7 @@
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/>
</svg>
<span>Aktualisieren</span>
<span>Status aktualisieren</span>
</button>
<button onclick="toggleBatchMode()" id="batch-toggle"
class="btn-secondary flex items-center gap-2 relative group">
@ -492,13 +492,12 @@
<!-- Info-Tooltip für Batch-Planung -->
<div class="absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 w-80 bg-slate-900 dark:bg-slate-700 text-white text-xs rounded-lg p-3 opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 shadow-lg">
<div class="font-semibold mb-2">📦 Intelligente Batch-Planung</div>
<div class="font-semibold mb-2">📦 TBA-Reservierungsmanagement</div>
<ul class="space-y-1 text-left">
<li><strong>Mehrfachauswahl:</strong> Markieren Sie mehrere Jobs gleichzeitig</li>
<li><strong>Mehrfachauswahl:</strong> Markieren Sie mehrere Reservierungen</li>
<li><strong>Batch-Operationen:</strong> Starten, pausieren oder abbrechen</li>
<li><strong>Prioritäten setzen:</strong> Hoch/Normal für ausgewählte Jobs</li>
<li><strong>Gruppenlöschung:</strong> Mehrere abgeschlossene Jobs löschen</li>
<li><strong>Optimierte Planung:</strong> Intelligente Reihenfolge-Anpassung</li>
<li><strong>Prioritäten setzen:</strong> Hoch/Normal für Ausbildungsgruppen</li>
<li><strong>Ausbilder-Genehmigung:</strong> Genehmigungsstatus verfolgen</li>
</ul>
<div class="mt-2 text-xs text-slate-300">
Tastenkürzel: <kbd class="bg-slate-800 px-1 rounded">Ctrl+Alt+B</kbd>

View File

@ -1,6 +1,6 @@
{% extends "base.html" %}
{% block title %}3D-Drucker - Mercedes-Benz MYP Platform{% endblock %}
{% block title %}Drucker-Steckdosen - Mercedes-Benz TBA Marienfelde{% endblock %}
{% block extra_css %}
<style>
@ -465,18 +465,18 @@
<div class="flex items-center gap-6">
<div class="w-16 h-16 flex-shrink-0 bg-mercedes-blue text-white rounded-xl flex items-center justify-center">
<svg class="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"/>
</svg>
</div>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
</svg>
</div>
<div>
<h1 class="text-4xl font-bold text-mercedes-black dark:text-white tracking-tight">3D-Drucker</h1>
<p class="text-mercedes-gray dark:text-slate-400 mt-1 text-lg">Live-Überwachung und Verwaltung Ihrer Produktionseinheiten</p>
<h1 class="text-4xl font-bold text-mercedes-black dark:text-white tracking-tight">Drucker-Steckdosen</h1>
<p class="text-mercedes-gray dark:text-slate-400 mt-1 text-lg">Sichere Steckdosen-Steuerung für 3D-Drucker in der TBA</p>
<div class="flex items-center mt-2 text-sm text-mercedes-blue">
<div id="live-status-indicator" class="w-2 h-2 bg-green-500 rounded-full mr-2 animate-pulse"></div>
<svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
</svg>
<span id="last-update">Live-Updates aktiv</span>
<span id="last-update">Echtzeit-Status aktiv</span>
</div>
</div>
</div>
@ -486,15 +486,17 @@
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/>
</svg>
<span>Aktualisieren</span>
<span>Status aktualisieren</span>
</button>
{% if current_user.is_authenticated and current_user.is_admin %}
<button onclick="openAddPrinterModal()"
class="btn-primary flex items-center gap-2">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"/>
</svg>
<span>Drucker hinzufügen</span>
<span>Steckdose hinzufügen</span>
</button>
{% endif %}
</div>
</div>
</div>