modularisierung von app.py und app.js - erster versuch
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# app/routes/main.py
|
||||
from flask import Blueprint, render_template, redirect, url_for, request, jsonify
|
||||
from .. import current_config
|
||||
from app.utils.helpers import load_configs, load_default_sounds
|
||||
|
||||
main_bp = Blueprint('main', __name__)
|
||||
|
||||
@main_bp.route('/')
|
||||
def index():
|
||||
configs = load_configs()
|
||||
return render_template('index.html', configs=configs)
|
||||
|
||||
"""
|
||||
@app.route('/')
|
||||
def index():
|
||||
return render_template('index.html', configs=load_configs())
|
||||
"""
|
||||
|
||||
@app.route('/load_config/<filename>')
|
||||
def load_config(filename):
|
||||
global current_config
|
||||
path = os.path.join(app.config['CONFIG_DIR'], filename)
|
||||
|
||||
if not os.path.exists(path):
|
||||
logger.error(f"Config nicht gefunden: {path}")
|
||||
return "Konfiguration nicht gefunden", 404
|
||||
|
||||
try:
|
||||
with open(path, 'r', encoding='utf-8') as f:
|
||||
current_config = json.load(f)
|
||||
current_config['filename'] = filename
|
||||
logger.info(f"Config erfolgreich geladen: {filename} mit {len(current_config.get('channels', []))} Kanälen")
|
||||
return redirect(url_for('main.control_page'))
|
||||
except json.JSONDecodeError as e:
|
||||
logger.error(f"Ungültiges JSON in {filename}: {e}")
|
||||
return "Ungültiges JSON-Format in der Konfigurationsdatei", 500
|
||||
except Exception as e:
|
||||
logger.error(f"Ladefehler {filename}: {e}")
|
||||
return "Fehler beim Laden der Konfiguration", 500
|
||||
|
||||
|
||||
@app.route('/control')
|
||||
def control_page():
|
||||
if current_config is None:
|
||||
logger.warning("current_config ist None → Redirect zu index")
|
||||
return redirect(url_for('main.index'))
|
||||
|
||||
# Globale Sounds immer laden
|
||||
global_sounds = load_default_sounds()
|
||||
|
||||
logger.info(f"Übergebe config an Template: {current_config}")
|
||||
print("DEBUG: config hat channels?", 'channels' in current_config, len(current_config.get('channels', [])))
|
||||
|
||||
return render_template(
|
||||
'control.html',
|
||||
config=current_config,
|
||||
global_sounds=global_sounds
|
||||
)
|
||||
|
||||
|
||||
@app.route('/soundboard')
|
||||
def soundboard():
|
||||
if current_config is None or 'sounds' not in current_config:
|
||||
return redirect(url_for('index'))
|
||||
|
||||
sounds = current_config.get('sounds', [])
|
||||
return render_template('soundboard.html', sounds=sounds, config=current_config)
|
||||
pass
|
||||
Reference in New Issue
Block a user