From 6eea0c7ab6b899f6b4ed08f9c68ff32a7ed041d1 Mon Sep 17 00:00:00 2001 From: Zainab2604 Date: Fri, 6 Jun 2025 20:12:06 +0200 Subject: [PATCH] Add Inline Bearbeitung --- project/backend/coordinator/app.py | 4 + .../coordinator/controller/kennzahlen.py | 61 ++++ project/backend/coordinator/model/kennzahl.py | 26 ++ project/docker-compose.yml | 4 +- .../src/components/KennzahlenTable.tsx | 302 +++++++++++------- 5 files changed, 277 insertions(+), 120 deletions(-) create mode 100644 project/backend/coordinator/controller/kennzahlen.py create mode 100644 project/backend/coordinator/model/kennzahl.py diff --git a/project/backend/coordinator/app.py b/project/backend/coordinator/app.py index 4b734ff..f810143 100644 --- a/project/backend/coordinator/app.py +++ b/project/backend/coordinator/app.py @@ -5,6 +5,7 @@ from dotenv import load_dotenv from controller import register_routes from model.database import init_db from controller.socketIO import socketio +from controller.kennzahlen import kennzahlen_bp app = Flask(__name__) CORS(app) @@ -20,6 +21,9 @@ app.config["MAX_CONTENT_LENGTH"] = 100 * 1024 * 1024 # 100 MB init_db(app) register_routes(app) +# Register blueprints +app.register_blueprint(kennzahlen_bp) + @app.route("/health") def health_check(): return "OK" diff --git a/project/backend/coordinator/controller/kennzahlen.py b/project/backend/coordinator/controller/kennzahlen.py new file mode 100644 index 0000000..f01f72c --- /dev/null +++ b/project/backend/coordinator/controller/kennzahlen.py @@ -0,0 +1,61 @@ +from flask import Blueprint, jsonify, request +from model.kennzahl import Kennzahl +from model.database import db + +kennzahlen_bp = Blueprint('kennzahlen', __name__) + +# Beispieldaten +EXAMPLE_DATA = [ + {"pdf_id": "example", "label": "Fondsname", "value": "Fund Real Estate Prime Europe", "page": 1, "status": "ok"}, + {"pdf_id": "example", "label": "Fondsmanager", "value": "", "page": 1, "status": "error"}, + {"pdf_id": "example", "label": "Risikoprofil", "value": "Core/Core+", "page": 10, "status": "warning"}, + {"pdf_id": "example", "label": "LTV", "value": "30-35 %", "page": 8, "status": "ok"}, + {"pdf_id": "example", "label": "Ausschüttungsrendite", "value": "4%", "page": 34, "status": "ok"} +] + + +@kennzahlen_bp.route('/api/kennzahlen/init', methods=['POST']) +def init_kennzahlen(): + try: + # Lösche existierende Beispieldaten + Kennzahl.query.filter_by(pdf_id='example').delete() + + # Füge Beispieldaten ein + for data in EXAMPLE_DATA: + kennzahl = Kennzahl( + pdf_id=data['pdf_id'], + label=data['label'], + value=data['value'], + page=data['page'], + status=data['status'] + ) + db.session.add(kennzahl) + + db.session.commit() + return jsonify({"message": "Kennzahlen erfolgreich initialisiert"}) + + except Exception as e: + db.session.rollback() + return jsonify({"error": str(e)}), 500 + + +@kennzahlen_bp.route('/api/kennzahlen', methods=['GET']) +def get_kennzahlen(): + pdf_id = request.args.get('pdf_id', 'example') # Default zu 'example' für Beispieldaten + kennzahlen = Kennzahl.query.filter_by(pdf_id=pdf_id).all() + return jsonify([k.to_dict() for k in kennzahlen]) + + +@kennzahlen_bp.route('/api/kennzahlen/