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():