Einstellungen ausgelagert: eigene Seite für Druckerabschreibung, Arbeitskosten, Gewinnmarge

- Neue /settings-Route mit eigener Seite (Einstellungen für Drucker, Arbeit, Marge)
- Settings-Cards aus index.html entfernt
- /save_config merged mit bestehenden Werten (kein Überschreiben)
- Navigation im Header: Kalkulation ↔ Einstellungen (alle Seiten)
- Port auf 5001 geändert (macOS AirPlay blockiert 5000)
This commit is contained in:
Erik Thiele
2026-07-02 14:29:03 +02:00
parent 44e63c8cd6
commit 4eb2c9e71d
4 changed files with 149 additions and 48 deletions

27
app.py
View File

@@ -124,19 +124,32 @@ def index():
return render_template('index.html', config=config, calc=calc)
@app.route('/settings')
def settings():
"""Einstellungsseite fuer Druckerabschreibung, Arbeitskosten und Marge."""
config = load_config()
return render_template('settings.html', config=config)
@app.route('/calculate', methods=['POST'])
def calc_json():
"""AJAX-Endpunkt: Nimmt Formular-JSON entgegen, gibt Berechnung zurueck."""
"""AJAX-Endpunkt: Nimmt Formular-JSON entgegen, gibt Berechnung zurueck.
Fehlende Werte werden aus der gespeicherten Config ergaenzt."""
data = request.get_json()
calc = calculate(data)
config = load_config()
merged = {**config, **data}
calc = calculate(merged)
return jsonify(calc)
@app.route('/save_config', methods=['POST'])
def save_config_route():
"""AJAX-Endpunkt: Speichert aktuelle Formularwerte in YAML."""
"""AJAX-Endpunkt: Speichert aktuelle Formularwerte in YAML.
Vorhandene Werte (z.B. aus Einstellungen) werden nicht ueberschrieben."""
data = request.get_json()
save_config(data)
existing = load_config()
existing.update(data)
save_config(existing)
return jsonify({'status': 'ok'})
@@ -210,7 +223,9 @@ def invoice_pdf():
def export():
"""Exportiert die Kalkulation als TXT-Datei."""
data = request.get_json()
calc = calculate(data)
config = load_config()
merged = {**config, **data}
calc = calculate(merged)
lines = [
"3D-DRUCK KOSTENKALKULATION",
@@ -239,4 +254,4 @@ def export():
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
app.run(host='0.0.0.0', port=5001, debug=True)