diff --git a/client/ayon_maya/api/pipeline.py b/client/ayon_maya/api/pipeline.py index 71937860..5b34a40a 100644 --- a/client/ayon_maya/api/pipeline.py +++ b/client/ayon_maya/api/pipeline.py @@ -45,6 +45,7 @@ is_workfile_locked, is_workfile_lock_enabled ) + from ayon_maya import MAYA_ROOT_DIR from ayon_maya.lib import create_workspace_mel diff --git a/client/ayon_maya/api/workfile_template_builder.py b/client/ayon_maya/api/workfile_template_builder.py index f4f9a349..dac8452d 100644 --- a/client/ayon_maya/api/workfile_template_builder.py +++ b/client/ayon_maya/api/workfile_template_builder.py @@ -246,9 +246,9 @@ def read(self, node): return data -def build_workfile_template(*args): +def build_workfile_template(*args, **kwargs): builder = MayaTemplateBuilder(registered_host()) - builder.build_template() + builder.build_template(*args, **kwargs) def update_workfile_template(*args): diff --git a/client/ayon_maya/startup/userSetup.py b/client/ayon_maya/startup/userSetup.py index 600864fd..bc6b1abe 100644 --- a/client/ayon_maya/startup/userSetup.py +++ b/client/ayon_maya/startup/userSetup.py @@ -2,7 +2,10 @@ from ayon_core.settings import get_project_settings from ayon_core.pipeline import install_host, get_current_project_name -from ayon_maya.api import MayaHost +from ayon_maya.api import MayaHost, workfile_template_builder +from ayon_core.pipeline.workfile.workfile_template_builder import ( + TemplateProfileNotFound +) from maya import cmds @@ -39,8 +42,19 @@ def _explicit_load_plugins(): if bool(int(os.environ.get(key, "0"))): def _log_and_open(): path = os.environ["AYON_LAST_WORKFILE"] - print("Opening \"{}\"".format(path)) - cmds.file(path, open=True, force=True) + if os.path.exists(path): + print("Opening \"{}\"".format(path)) + cmds.file(path, open=True, force=True) + else: + try: + workfile_template_builder.build_workfile_template( + workfile_creation_enabled=True) + except TemplateProfileNotFound: + print( + "No workfile template profile enabled for current context. " + "Skipping workfile creation." + ) + cmds.evalDeferred( _log_and_open, lowestPriority=True diff --git a/server/settings/templated_workfile_settings.py b/server/settings/templated_workfile_settings.py index 1baa2c89..e7025471 100644 --- a/server/settings/templated_workfile_settings.py +++ b/server/settings/templated_workfile_settings.py @@ -16,6 +16,13 @@ class WorkfileBuildProfilesModel(BaseSettingsModel): default_factory=list, title="Task names" ) path: str = SettingsField("", title="Path to template") + keep_placeholder: bool = SettingsField( + False, + title="Keep placeholders") + create_first_version: bool = SettingsField( + True, + title="Create first version" + ) class TemplatedProfilesModel(BaseSettingsModel):