From 6283ccff6d6ad0008ff499924310b1665dc696e7 Mon Sep 17 00:00:00 2001 From: elpatron Date: Fri, 21 Mar 2025 10:53:37 +0100 Subject: [PATCH] =?UTF-8?q?Version=201.2.14:=20Autovervollst=C3=A4ndigung?= =?UTF-8?q?=20f=C3=BCr=20Fachrichtungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ README.md | 2 +- app.py | 28 +++++++++++++++++++++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c64d7d..6fff1e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/), und dieses Projekt adhäriert zu [Semantic Versioning](https://semver.org/lang/de/). +## [1.2.14] - 2024-03-20 +### Hinzugefügt +- Autovervollständigung für das Fachrichtungsfeld +- Neue API-Route für Fachrichtungsvorschläge +- Optimierte SQL-Abfragen für die Fachrichtungssuche + ## [1.2.13] - 2024-03-20 ### Fixed - Korrektur der Parameteranzahl in der SQL-Abfrage für die allgemeine Suche diff --git a/README.md b/README.md index 9bb1b96..8fb7b7d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Eine moderne Webanwendung zur Suche und Verwaltung von Kundendaten, die MEDISOFT ## Version -Aktuelle Version: 1.2.13 +Aktuelle Version: 1.2.14 ## Installation diff --git a/app.py b/app.py index dfec69c..3b69056 100644 --- a/app.py +++ b/app.py @@ -18,7 +18,7 @@ logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) # Version der Anwendung -VERSION = "1.2.13" +VERSION = "1.2.14" # Pfad zur Datenbank DB_FILE = 'data/customers.db' @@ -348,6 +348,32 @@ def search(): logger.error(f"Fehler bei der Suche: {str(e)}") return jsonify({'error': str(e)}), 500 +@app.route('/api/fachrichtungen') +def get_fachrichtungen(): + try: + search_term = request.args.get('q', '').lower() + conn = get_db_connection() + c = conn.cursor() + + # Hole alle eindeutigen Fachrichtungen, die mit dem Suchbegriff übereinstimmen + c.execute(''' + SELECT DISTINCT fachrichtung + FROM customers + WHERE fachrichtung IS NOT NULL + AND fachrichtung != '' + AND LOWER(fachrichtung) LIKE ? + ORDER BY fachrichtung + LIMIT 10 + ''', (f'%{search_term}%',)) + + fachrichtungen = [row[0] for row in c.fetchall()] + conn.close() + + return jsonify(fachrichtungen) + except Exception as e: + logger.error(f"Fehler beim Abrufen der Fachrichtungen: {str(e)}") + return jsonify([]) + def init_app(app): """Initialisiert die Anwendung mit allen notwendigen Einstellungen.""" with app.app_context():