diff --git a/app/flask-postgres/app/app.py b/app/flask-postgres/app/app.py index 3f39c8f..215c4f2 100644 --- a/app/flask-postgres/app/app.py +++ b/app/flask-postgres/app/app.py @@ -1,5 +1,6 @@ import logging import os +import re from datetime import datetime from logging.handlers import RotatingFileHandler @@ -414,10 +415,49 @@ def admin_mandanten(): kontakt_email = request.form.get("kontakt_email", "").strip() level = request.form.get("level", "0").strip() + email_pattern = r"^[^@\s]+@[^@\s]+\.[^@\s]+$" + + error_message = None + + if not kuerzel: + error_message = "Kürzel ist ein Pflichtfeld." + elif not name: + error_message = "Name ist ein Pflichtfeld." + elif not kontakt_email: + error_message = "Kontakt E-Mail ist ein Pflichtfeld." + elif not re.match(email_pattern, kontakt_email): + error_message = "Bitte eine gültige Kontakt-E-Mail eingeben." + + if error_message: + cur.execute(""" + SELECT id, kuerzel, name, kontakt_email, level + FROM mandant + ORDER BY id + """) + mandanten = fetchall_dict(cur) + + cur.close() + conn.close() + + return render_template( + "admin_mandanten.html", + page_title="Admin - Mandanten", + active_page="admin", + mandanten=mandanten, + form_error=error_message, + form_values={ + "kuerzel": kuerzel, + "name": name, + "kontakt_email": kontakt_email, + "level": level, + }, + **get_current_user() + ) + cur.execute(""" INSERT INTO mandant (kuerzel, name, kontakt_email, level) VALUES (%s, %s, %s, %s) - """, (kuerzel, name, kontakt_email or None, int(level or 0))) + """, (kuerzel, name, kontakt_email, int(level or 0))) conn.commit() elif action == "update": diff --git a/app/flask-postgres/app/templates/admin_mandanten.html b/app/flask-postgres/app/templates/admin_mandanten.html index d29f29f..34c1fe2 100644 --- a/app/flask-postgres/app/templates/admin_mandanten.html +++ b/app/flask-postgres/app/templates/admin_mandanten.html @@ -14,26 +14,49 @@