Scene Manager: request publishes missing on this site
- Request (globe) on casting rows and loaded assets whose latest publish is not on this site, and Request Missing for all of them, through the new wtdcmds command wtd_request_revisions. Requested publishes show "requested, waiting for the download". - The version picker requests a version that is not on this site. - A 404 explains that the session is gone or wtdcmds is too old. - Fake server: car (vehicles) with a publish not on this site, wtd_request_revisions and /_test/download; 45 checks. - Tested live: car_paul modeling.blend v001 -> Requested. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9ee7710479
commit
9fe38ce58a
8 files changed
+197
-19
No files matched your search
+14
-3
@@ -384,6 +384,8 @@ class _SceneCastingPanel:
|
||||
row = layout.row(align=True)
|
||||
row.scale_y = 1.3
|
||||
row.operator(sm.WTD_OT_scene_load.bl_idname, text="Load Missing", icon="IMPORT")
|
||||
if sm.missing_files(context.scene):
|
||||
row.operator(sm.WTD_OT_scene_request.bl_idname, text="Request Missing", icon="URL")
|
||||
row.operator(sm.WTD_OT_scene_refresh.bl_idname, text="", icon="FILE_REFRESH")
|
||||
casting = sm.STATE.casting.get(oid)
|
||||
if casting is None:
|
||||
@@ -400,16 +402,23 @@ class _SceneCastingPanel:
|
||||
have = len(found.get(library.name, [])) if library else 0
|
||||
want = asset.get("nb_occurences") or 1
|
||||
error = asset.get("error")
|
||||
icon = "ERROR" if error else "CHECKMARK" if have >= want else "IMPORT"
|
||||
file = sm.file_data(asset["file"]["file_oid"], asset["file"]) if asset.get("file") else None
|
||||
latest = (file or {}).get("latest") or {}
|
||||
requested = bool(error) and latest.get("sync_status") == "Requested"
|
||||
if requested:
|
||||
error = f"{latest['name']} requested, waiting for the download"
|
||||
icon = "SORTTIME" if requested else "ERROR" if error else "CHECKMARK" if have >= want else "IMPORT"
|
||||
row = col.row(align=True)
|
||||
row.alert = bool(error)
|
||||
row.alert = bool(error) and not requested
|
||||
row.label(text=f"{asset['name']} ({asset.get('asset_type', '')})", icon=icon)
|
||||
row.label(text=f"{have}/{want}")
|
||||
if not error and have < want:
|
||||
row.operator(sm.WTD_OT_scene_load.bl_idname, text="", icon="IMPORT").asset_oid = asset["oid"]
|
||||
if sm.to_request(file):
|
||||
row.operator(sm.WTD_OT_scene_request.bl_idname, text="", icon="URL").file_oid = file["file_oid"]
|
||||
if error:
|
||||
sub = col.row()
|
||||
sub.alert = True
|
||||
sub.alert = not requested
|
||||
_wrapped_label(sub, context, error, icon="BLANK1")
|
||||
|
||||
cast = {asset["oid"] for asset in casting["assets"]}
|
||||
@@ -455,6 +464,8 @@ class _SceneLoadedPanel:
|
||||
version.label(text=library.get("wtd_revision", "?"))
|
||||
if state == "UPDATE":
|
||||
row.operator(sm.WTD_OT_scene_update.bl_idname, text="", icon="FILE_REFRESH").library = library.name
|
||||
elif state == "PENDING" and sm.to_request(sm.file_data(library["wtd_file_oid"])):
|
||||
row.operator(sm.WTD_OT_scene_request.bl_idname, text="", icon="URL").file_oid = library["wtd_file_oid"]
|
||||
row.operator(sm.WTD_OT_scene_pick_revision.bl_idname, text="", icon="COLLAPSEMENU").library = library.name
|
||||
row.operator(sm.WTD_OT_scene_remove.bl_idname, text="", icon="X").library = library.name
|
||||
if outdated:
|
||||
|
||||
Reference in new issue
Block a user