From cc59f0b79a1e3ec87407a897acdc3bc95b97b8a7 Mon Sep 17 00:00:00 2001 From: David Zhang Date: Wed, 3 Jul 2024 14:56:44 -0400 Subject: [PATCH] Add a checkbox to the submission interface to submit the job in `paused` status. Internally this translates the boolean value of the checkbox to the desired state (`queued` or `paused`). A checkbox was chosen to simplify the user interface; technically a drop-down could have been used to select the initial state, but this would require more clicks to get the same result. Pull Request: https://projects.blender.org/studio/flamenco/pulls/104323 --- addon/flamenco/__init__.py | 6 ++++++ addon/flamenco/gui.py | 1 + addon/flamenco/job_submission.py | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/addon/flamenco/__init__.py b/addon/flamenco/__init__.py index 9bd29191..744e90aa 100644 --- a/addon/flamenco/__init__.py +++ b/addon/flamenco/__init__.py @@ -156,6 +156,12 @@ def register() -> None: max=100, ) + bpy.types.Scene.flamenco_job_submit_as_paused = bpy.props.BoolProperty( + name="Flamenco Job Submit as Paused", + description="Whether the job is paused initially; Checked sets the job to `paused`, and Unchecked sets the job to `queued`", + default=False, + ) + preferences.register() worker_tags.register() operators.register() diff --git a/addon/flamenco/gui.py b/addon/flamenco/gui.py index f1850021..0fef1f3d 100644 --- a/addon/flamenco/gui.py +++ b/addon/flamenco/gui.py @@ -42,6 +42,7 @@ class FLAMENCO_PT_job_submission(bpy.types.Panel): col = layout.column(align=True) col.prop(context.scene, "flamenco_job_name", text="Job Name") col.prop(context.scene, "flamenco_job_priority", text="Priority") + col.prop(context.scene, "flamenco_job_submit_as_paused", text="Submit as Paused") # Refreshables: col = layout.column(align=True) diff --git a/addon/flamenco/job_submission.py b/addon/flamenco/job_submission.py index 21273399..95a7820b 100644 --- a/addon/flamenco/job_submission.py +++ b/addon/flamenco/job_submission.py @@ -33,6 +33,7 @@ log = logging.getLogger(__name__) def job_for_scene(scene: bpy.types.Scene) -> Optional[_SubmittedJob]: from flamenco.manager.models import SubmittedJob, JobMetadata + from flamenco.manager.model.job_status import JobStatus propgroup = getattr(scene, "flamenco_job_settings", None) assert isinstance(propgroup, JobTypePropertyGroup), "did not expect %s" % ( @@ -44,6 +45,12 @@ def job_for_scene(scene: bpy.types.Scene) -> Optional[_SubmittedJob]: priority = getattr(scene, "flamenco_job_priority", 50) + submit_as_paused = getattr(scene, "flamenco_job_submit_as_paused", False) + if submit_as_paused: + initial_status = JobStatus("paused") + else: + initial_status = JobStatus("queued") + job: SubmittedJob = SubmittedJob( name=scene.flamenco_job_name, type=propgroup.job_type.name, @@ -52,6 +59,7 @@ def job_for_scene(scene: bpy.types.Scene) -> Optional[_SubmittedJob]: metadata=metadata, submitter_platform=platform.system().lower(), type_etag=propgroup.job_type.etag, + initial_status=initial_status, ) worker_tag: str = getattr(scene, "flamenco_worker_tag", "") -- 2.30.2