Füge Backend-internes Frontend für API- und Druckertests hinzu
Implementiere eine Weboberfläche zur Verwaltung von Druckern, Druckaufträgen und Benutzern mit folgenden Funktionen: - Login/Registrierungsseiten - Dashboard mit Überblick - Drucker-Verwaltung (Hinzufügen, Bearbeiten, Löschen) - Auftrags-Verwaltung (Erstellen, Abbrechen, Verlängern) - Benutzer-Verwaltung (nur Admin) - Statistik-Dashboard 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
62
backend/app.py
Normal file → Executable file
62
backend/app.py
Normal file → Executable file
@@ -1,4 +1,4 @@
|
||||
from flask import Flask, request, jsonify, g, redirect, url_for, session as flask_session
|
||||
from flask import Flask, request, jsonify, g, redirect, url_for, session as flask_session, render_template, flash
|
||||
from flask_cors import CORS
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
from flask_migrate import Migrate
|
||||
@@ -725,6 +725,66 @@ def server_error(error):
|
||||
app.logger.error(f'Serverfehler: {error}')
|
||||
return jsonify({'message': 'Interner Serverfehler!'}), 500
|
||||
|
||||
# Web UI Routen
|
||||
@app.route('/')
|
||||
def index():
|
||||
current_user = get_current_user()
|
||||
if current_user:
|
||||
return render_template('dashboard.html', current_user=current_user, active_page='home')
|
||||
return redirect(url_for('login_page'))
|
||||
|
||||
@app.route('/login')
|
||||
def login_page():
|
||||
return render_template('login.html', active_page='login')
|
||||
|
||||
@app.route('/register')
|
||||
def register_page():
|
||||
return render_template('register.html', active_page='register')
|
||||
|
||||
@app.route('/logout')
|
||||
def logout_page():
|
||||
session_id = flask_session.get('session_id')
|
||||
if session_id:
|
||||
session = Session.query.get(session_id)
|
||||
if session:
|
||||
db.session.delete(session)
|
||||
db.session.commit()
|
||||
|
||||
flask_session.pop('session_id', None)
|
||||
|
||||
flash('Sie wurden erfolgreich abgemeldet.', 'success')
|
||||
return redirect(url_for('login_page'))
|
||||
|
||||
@app.route('/admin/printers')
|
||||
def printers_page():
|
||||
current_user = get_current_user()
|
||||
if not current_user:
|
||||
return redirect(url_for('login_page'))
|
||||
return render_template('printers.html', current_user=current_user, active_page='printers')
|
||||
|
||||
@app.route('/admin/jobs')
|
||||
def jobs_page():
|
||||
current_user = get_current_user()
|
||||
if not current_user:
|
||||
return redirect(url_for('login_page'))
|
||||
return render_template('jobs.html', current_user=current_user, active_page='jobs')
|
||||
|
||||
@app.route('/admin/users')
|
||||
def users_page():
|
||||
current_user = get_current_user()
|
||||
if not current_user or current_user.role != 'admin':
|
||||
flash('Sie haben keine Berechtigung, diese Seite zu besuchen.', 'danger')
|
||||
return redirect(url_for('index'))
|
||||
return render_template('users.html', current_user=current_user, active_page='users')
|
||||
|
||||
@app.route('/admin/stats')
|
||||
def stats_page():
|
||||
current_user = get_current_user()
|
||||
if not current_user or current_user.role != 'admin':
|
||||
flash('Sie haben keine Berechtigung, diese Seite zu besuchen.', 'danger')
|
||||
return redirect(url_for('index'))
|
||||
return render_template('stats.html', current_user=current_user, active_page='stats')
|
||||
|
||||
# Server starten
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True, host='0.0.0.0')
|
Reference in New Issue
Block a user