changes to the processing state

This commit is contained in:
2026-08-26 21:18:47 +02:00
parent 3387d97114
commit e30a9ac822
2 changed files with 122 additions and 63 deletions
+12 -6
View File
@@ -2517,27 +2517,33 @@ def booking_payment():
app_obj = current_app._get_current_object()
user_id = session.get("user_id")
username = session.get("username") # Hole Username für Übergabe
username = session.get("username")
user_email = session.get("email") or form_data.get("contact_email")
# Startet den asynchronen Provisioning-Thread
thread = threading.Thread(
target=background_booking_provisioning,
args=(app_obj, prov_id, subdomain, package_list, user_id, form_data["school_name"], user_email, username) # Username am Ende hinzugefügt
args=(app_obj, prov_id, subdomain, package_list, user_id, form_data["school_name"], user_email, username)
)
thread.start()
print(f"[INFO] Background Provisioning Trigger gestartet für Subdomain: {subdomain}")
# Antworte AJAX-Aufrufen direkt mit JSON
# ANPASSUNG FÜR BESSERE WARTEZEIT:
# Wir geben Metadaten mit, wie lange das Setup ca. dauern wird.
if is_json_request:
return jsonify({
"success": True,
"slug": subdomain,
"message": "Provisioning gestartet."
"message": "Instanz wird eingerichtet...",
"estimated_seconds": 45, # Erwartete Dauer in Sekunden (anpassbar)
"status_poll_interval_ms": 3000 # Wie oft soll das Frontend fragen? (3 Sek)
}), 200
flash(f"Buchung für {selected_package} wurde erfasst. Die Instanz wird jetzt eingerichtet.", "success")
return redirect(url_for("my_instance_management"))
# Falls es KEIN AJAX-Request war:
# Wir hängen den Parameter "wait_for_slug" an, damit die "my_instance_management"-Seite weiß,
# dass sie sofort ein Lade-Overlay für diesen spezifischen Tenant öffnen muss.
flash(f"Buchung für {selected_package} wurde erfasst. Deine Instanz wird jetzt automatisch eingerichtet.", "success")
return redirect(url_for("my_instance_management", wait_for_slug=subdomain))
except Exception as e:
print(f"[FATAL ERROR] In booking_payment Route:")