diff --git a/app.py b/app.py
index 88d6b1f..9566255 100755
--- a/app.py
+++ b/app.py
@@ -685,6 +685,7 @@ def add_customer():
success = None
logo_urls = [None, None, None]
customer_names = ["", "", ""]
+ contacts = ["", "", ""]
site = request.args.get("site") or request.form.get("site") or ""
# Fallback auf ersten für den User zugänglichen Standort
@@ -703,6 +704,11 @@ def add_customer():
request.form.get("customer_name_2", "").strip(),
request.form.get("customer_name_3", "").strip(),
]
+ contacts = [
+ request.form.get("contact_1", "").strip(),
+ request.form.get("contact_2", "").strip(),
+ request.form.get("contact_3", "").strip(),
+ ]
filled_names = [n for n in customer_names if n]
print(f"🔍 APP.PY - Suche nach Kunden: {filled_names} (site: {site})")
@@ -725,6 +731,14 @@ def add_customer():
else:
valid_names = [n for n, l in valid]
valid_urls = [l for n, l in valid]
+ valid_contacts = []
+ for name in valid_names:
+ for i, cn in enumerate(customer_names):
+ if cn == name:
+ valid_contacts.append(contacts[i] if i < len(contacts) else "")
+ break
+ else:
+ valid_contacts.append("")
for i, name in enumerate(customer_names):
for j, (vn, vu) in enumerate(zip(valid_names, valid_urls)):
if vn == name:
@@ -732,14 +746,14 @@ def add_customer():
break
bg_url = get_background_url(site)
- html_filename = generate_welcome_page.save_welcome_page(valid_names, valid_urls, site=site, background_url=bg_url)
+ html_filename = generate_welcome_page.save_welcome_page(valid_names, valid_urls, contacts=valid_contacts, site=site, background_url=bg_url)
if html_filename:
if generate_welcome_page.add_customer_to_lobby_playlist(html_filename, site=site):
# Letzte Kundendaten für Background-Update speichern
config = load_config()
site_cfg = config.setdefault("sites", {}).setdefault(site, {})
- site_cfg["welcome_data"] = {"names": valid_names, "logo_urls": valid_urls}
+ site_cfg["welcome_data"] = {"names": valid_names, "logo_urls": valid_urls, "contacts": valid_contacts}
save_config(config)
add_history_entry("customer_added", f"Kunden ({', '.join(valid_names)}) zur Willkommensseite an Standort '{site}' hinzugefügt", current_user.email)
success = f"✅ Willkommensseite mit {len(valid_names)} Kunden erstellt!"
@@ -755,12 +769,17 @@ def add_customer():
config = load_config()
site_list = get_site_list(config)
background_url = get_background_url(site)
+ welcome_data = config.get("sites", {}).get(site, {}).get("welcome_data", {})
+ saved_contacts = welcome_data.get("contacts", ["", "", ""])
+ if not contacts:
+ contacts = saved_contacts
return render_template(
"customer.html",
error=error,
success=success,
logo_urls=logo_urls,
customer_names=customer_names,
+ contacts=contacts,
site=site,
site_list=site_list,
current_site=site,
@@ -804,7 +823,9 @@ def api_add_customer():
if not logo_url:
return jsonify({"error": "Logo not found"}), 400
- html_filename = generate_welcome_page.save_welcome_page(customer_name, logo_url, site=site)
+ contact = data.get("contact", "").strip()
+
+ html_filename = generate_welcome_page.save_welcome_page([customer_name], [logo_url], contacts=[contact], site=site)
if not html_filename:
return jsonify({"error": "Failed to create welcome page"}), 500
diff --git a/generate_welcome_page.py b/generate_welcome_page.py
index f1f83be..626a51f 100644
--- a/generate_welcome_page.py
+++ b/generate_welcome_page.py
@@ -97,14 +97,26 @@ def search_customer_logo(customer_name):
# HTML-Generierung
# -------------------------------------------------
-def generate_welcome_html(customer_names, logo_urls, site="stuttgart", background_url=None):
+def md_to_html(text):
+ """Wandelt einfaches Markdown in HTML um (fett, kursiv, code, zeilenumbrüche)."""
+ import re
+ text = re.sub(r'\*\*(.+?)\*\*', r'\1', text)
+ text = re.sub(r'\*(.+?)\*', r'\1', text)
+ text = re.sub(r'`(.+?)`', r'\1', text)
+ lines = text.split('\n')
+ return '
'.join(line.strip() for line in lines)
+
+
+def generate_welcome_html(customer_names, logo_urls, contacts=None, site="stuttgart", background_url=None):
"""
Generiert den HTML-Code für die Willkommensseite.
- - Links oben: CANCOM-Logo + "meets" + Kundenlogos (280px Breite)
- - Rechts unten: "Herzlich Willkommen in unserer Niederlassung {Standort}"
+ - Links oben: CANCOM-Logo + "meets" + Kundenlogos
+ - Unter jedem Logo: Ansprechpartner-Kontaktdaten (Landscape)
+ - Portrait: Kontaktdaten links neben den Logos
customer_names: Liste der Kundennamen (max. 3)
logo_urls: Liste der Logo-URLs (gleiche Reihenfolge)
+ contacts: Liste der Ansprechpartner-Texte (Markdown, optional)
site: Standort-Name für die Anzeige
background_url: URLs zum Hintergrundbild (None → Standard-Wallpaper)
"""
@@ -113,15 +125,25 @@ def generate_welcome_html(customer_names, logo_urls, site="stuttgart", backgroun
print(f"✅ Generate - Willkommensseite wird generiert für: {names_str} (site: {site})")
site_display = site.capitalize()
+ if contacts is None:
+ contacts = [""] * len(customer_names)
+
bg_image = background_url if background_url else "/static/wallpaper.png"
cancom_svg = ''''''
logo_html = ""
for i, (name, url) in enumerate(zip(customer_names, logo_urls)):
if url:
+ contact_html = ""
+ if i < len(contacts) and contacts[i]:
+ contact_html = f'''
Das System sucht automatisch nach den Kundenlogos
und erstellt eine angepasste Willkommensseite für die Lobby-Playlist.
+Ansprechpartner unterstützen fett, kursiv und Code sowie Zeilenumbrüche.