feat: enhance video generation responses with database ID and update dashboard to display pending and completed videos

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-04-29 16:39:46 +02:00
parent 8e36f48527
commit cc96d26b08
4 changed files with 92 additions and 32 deletions
+19 -4
View File
@@ -217,11 +217,16 @@ def dashboard():
images = img_resp.json() if img_resp.status_code == 200 else []
gen_resp = _api("GET", "/generate/images", token=token)
generated_images = gen_resp.json() if gen_resp.status_code == 200 else []
vid_resp = _api("GET", "/generate/videos", token=token)
generated_videos = vid_resp.json() if vid_resp.status_code == 200 else []
videos = vid_resp.json() if vid_resp.status_code == 200 else []
pending_videos = [v for v in videos if v.get("status") not in ("completed", "failed")]
completed_videos = [v for v in videos if v.get("status") == "completed"]
return render_template("dashboard.html", user=user, images=images,
generated_images=generated_images,
generated_videos=generated_videos)
pending_videos=pending_videos,
completed_videos=completed_videos)
@app.get("/gallery")
@@ -405,7 +410,7 @@ def generate_image():
@app.route("/generate/video", methods=["GET", "POST"])
@login_required
def generate_video():
result = error = None
error = None
token = session["access_token"]
if request.method == "POST":
mode = request.form.get("mode", "text")
@@ -413,6 +418,7 @@ def generate_video():
duration = int(
duration_raw) if duration_raw.strip().isdigit() else None
resolution = request.form.get("resolution", "").strip() or None
if mode == "image":
resp = _api("POST", "/generate/video/from-image", token=token, json={
"model": request.form.get("model", "").strip(),
@@ -430,12 +436,21 @@ def generate_video():
"duration_seconds": duration,
"resolution": resolution,
})
if resp.status_code == 200:
result = resp.json()
# On success, redirect to the detail page to monitor progress
db_id = result.get("db_id")
if db_id:
return redirect(url_for("video_detail", video_id=db_id))
# Fallback for older backend versions
flash("Video job started.", "success")
return redirect(url_for("gallery"))
else:
error = resp.json().get("detail", "Generation failed.")
models = _load_models(token, "video")
return render_template("generate_video.html", result=result, error=error, models=models)
return render_template("generate_video.html", error=error, models=models)
@app.get("/generate/video/status")