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:
+19
-4
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user