diff --git a/Website/main.py b/Website/main.py index 59f737c..3830f84 100644 --- a/Website/main.py +++ b/Website/main.py @@ -3314,7 +3314,6 @@ def admin_invoices(): for item in invoices: item["id"] = str(item.get("_id")) - # Fehlerbehebung: Betrag für das Template in Float umwandeln amt = item.get("amount_eur", 0) if isinstance(amt, str): try: @@ -3322,6 +3321,9 @@ def admin_invoices(): except ValueError: amt = 0.0 item["amount_eur"] = amt + + if not isinstance(item.get("booking_data"), dict): + item["booking_data"] = {} except PyMongoError: flash("Rechnungen konnten nicht geladen werden.", "error") @@ -3329,22 +3331,15 @@ def admin_invoices(): if client: client.close() - # Load instance requests for admin review instance_requests = [] try: req_client, req_col = _get_collection("instance_requests") instance_requests = list(req_col.find().sort("created_at", -1)) - for item in instance_requests: - item["id"] = str(item.get("_id")) + for prov in instance_requests: + prov["id"] = str(prov.get("_id")) - # Fehlerbehebung: Betrag auch hier sicher in Float umwandeln - amt = item.get("amount_eur", 0) - if isinstance(amt, str): - try: - amt = float(amt.replace('.', '').replace(',', '.')) - except ValueError: - amt = 0.0 - item["amount_eur"] = amt + if not isinstance(prov.get("booking_data"), dict): + prov["booking_data"] = {} except PyMongoError: flash("Instanz-Anfragen konnten nicht geladen werden.", "error") diff --git a/Website/templates/admin_invoices.html b/Website/templates/admin_invoices.html index 0b55a6b..8713e5e 100644 --- a/Website/templates/admin_invoices.html +++ b/Website/templates/admin_invoices.html @@ -42,7 +42,7 @@
Buchung: {{ item.booking_package_label or item.booking_package }} | Flow: {{ item.booking_flow }}
Zugewiesener Admin: {{ item.assigned_admin_display_name or item.assigned_admin_username or 'Nicht gesetzt' }}{% if item.assigned_admin_email %} | E-Mail: {{ item.assigned_admin_email }}{% endif %}
Unterlagen: {{ item.paperwork_status or 'Offen' }}{% if item.consent_accepted %} | Einwilligung bestätigt{% endif %}
-Kontaktdaten: {{ item.booking_data.contact_person }} | {{ item.booking_data.contact_email }} | {{ item.booking_data.billing_city }}
+Kontaktdaten: {{ item.booking_data.get('contact_person', '-') }} | {{ item.booking_data.get('contact_email', '-') }} | {{ item.booking_data.get('billing_city', '-') }}
{% endif %} {% if item.pdf_path %}PDF: Ansehen @@ -78,7 +78,7 @@
Nutzer: {{ prov.username }} | Subdomain: {{ prov.subdomain }}
Paket: {{ prov.package_label or prov.package }} | Betrag: {{ '%.2f'|format(prov.amount_eur or 0) }} EUR
Status: {{ prov.provision_status or 'not_started' }}{% if prov.provision_error %} | Fehler: {{ prov.provision_error }}{% endif %}
-Kontaktdaten: {{ item.get('booking_data', {}).get('contact_person', '-') }} | {{ item.get('booking_data', {}).get('contact_email', '-') }} | {{ item.get('booking_data', {}).get('billing_city', '-') }}
+Kontaktdaten: {{ prov.booking_data.get('contact_person', '-') }} | {{ prov.booking_data.get('contact_email', '-') }} | {{ prov.booking_data.get('billing_city', '-') }}