feat: Update frontend and backend configurations for development environment

- Downgrade PyP100 version in requirements.txt for compatibility.
- Add new frontend routes for index, login, dashboard, printers, jobs, and profile pages.
- Modify docker-compose files for development setup, including environment variables and service names.
- Update Caddyfile for local development with Raspberry Pi backend.
- Adjust health check route to use updated backend URL.
- Enhance setup-backend-url.sh for development environment configuration.
"""
This commit is contained in:
2025-05-24 18:58:17 +02:00
parent ead75ae451
commit 62e131c02f
19 changed files with 3433 additions and 105 deletions

View File

@@ -7,7 +7,7 @@ from datetime import datetime, timedelta
from typing import Dict, List, Optional, Tuple, Any, Union
from functools import wraps
from flask import Flask, request, jsonify, session
from flask import Flask, request, jsonify, session, render_template, redirect, url_for
from flask_login import LoginManager, UserMixin, login_user, logout_user, current_user, login_required
import sqlalchemy.exc
from PyP100 import PyP110
@@ -972,6 +972,81 @@ def stop_scheduler_api():
"running": scheduler.is_running()
})
# Frontend-Routen
@app.route("/")
def index():
"""Hauptseite - Weiterleitung zum Dashboard oder Login."""
if current_user.is_authenticated:
return redirect(url_for('dashboard'))
return redirect(url_for('login_page'))
@app.route("/login")
def login_page():
"""Login-Seite."""
if current_user.is_authenticated:
return redirect(url_for('dashboard'))
return render_template('login.html')
@app.route("/dashboard")
@login_required
def dashboard():
"""Dashboard-Seite."""
return render_template('dashboard.html')
@app.route("/printers")
@login_required
def printers_page():
"""Drucker-Übersichtsseite."""
return render_template('printers.html')
@app.route("/jobs")
@login_required
def jobs_page():
"""Jobs-Übersichtsseite."""
return render_template('jobs.html')
@app.route("/jobs/new")
@login_required
def new_job_page():
"""Neuen Job erstellen."""
return render_template('job_create.html')
@app.route("/jobs/<int:job_id>")
@login_required
@job_owner_required
def job_detail_page(job_id):
"""Job-Detailseite."""
return render_template('job_detail.html', job_id=job_id)
@app.route("/stats")
@login_required
def stats_page():
"""Statistiken-Seite."""
return render_template('stats.html')
@app.route("/admin")
@login_required
@admin_required
def admin_page():
"""Admin-Panel."""
return render_template('admin.html')
@app.route("/profile")
@login_required
def profile_page():
"""Benutzerprofil."""
return render_template('profile.html')
# Scheduler starten
def start_scheduler():
"""Initialisiert und startet den Scheduler mit den erforderlichen Tasks."""