Merge branch 'bug/OP-2402_Webpublisher-Progress-bar-with-better-statuses' into feature/OP-2427_Webpublisher-Add-endpoint-to-reprocess-batch-through-UI

This commit is contained in:
Petr Kalis 2022-01-19 16:56:17 +01:00
commit 94bf06bee6
2 changed files with 11 additions and 6 deletions

View file

@ -140,7 +140,7 @@ def reprocess_failed(upload_dir, webserver_url):
{
"finish_date": datetime.now(),
"status": "error",
"progress": 1,
"progress": 100,
"log": batch.get("log") + msg
}}
)
@ -162,6 +162,6 @@ def reprocess_failed(upload_dir, webserver_url):
{
"finish_date": datetime.now(),
"status": "sent_for_reprocessing",
"progress": 1
"progress": 100
}}
)

View file

@ -53,7 +53,7 @@ def start_webpublish_log(dbcon, batch_id, user):
"start_date": datetime.now(),
"user": user,
"status": "in_progress",
"progress": 0.0
"progress": 0 # integer 0-100, percentage
}).inserted_id
@ -104,10 +104,13 @@ def publish_and_log(dbcon, _id, log, close_plugin_name=None):
_id = ObjectId(_id)
log_lines = []
processed = 0
log_every = 5
for result in pyblish.util.publish_iter():
for record in result["records"]:
log_lines.append("{}: {}".format(
result["plugin"].label, record.msg))
processed += 1
if result["error"]:
log.error(error_format.format(**result))
@ -127,12 +130,14 @@ def publish_and_log(dbcon, _id, log, close_plugin_name=None):
context = pyblish.api.Context()
close_plugin().process(context)
sys.exit(1)
else:
elif processed % log_every == 0:
# pyblish returns progress in 0.0 - 2.0
progress = min(round(result["progress"] / 2 * 100), 99)
dbcon.update_one(
{"_id": _id},
{"$set":
{
"progress": max(result["progress"], 0.95),
"progress": progress,
"log": os.linesep.join(log_lines)
}}
)
@ -144,7 +149,7 @@ def publish_and_log(dbcon, _id, log, close_plugin_name=None):
{
"finish_date": datetime.now(),
"status": "finished_ok",
"progress": 1,
"progress": 100,
"log": os.linesep.join(log_lines)
}}
)