diff --git a/pype/ftrack/actions/action_prepare_project.py b/pype/ftrack/actions/action_prepare_project.py
index 0cdeab4004..427c34519b 100644
--- a/pype/ftrack/actions/action_prepare_project.py
+++ b/pype/ftrack/actions/action_prepare_project.py
@@ -6,6 +6,8 @@ from pype.ftrack import BaseAction
from pypeapp import config
from pype.ftrack.lib import get_avalon_attr
+from pype.vendor.ftrack_api import session as fa_session
+
class PrepareProject(BaseAction):
'''Edit meta data action.'''
@@ -22,6 +24,9 @@ class PrepareProject(BaseAction):
os.environ.get('PYPE_STATICS_SERVER', '')
)
+ # Key to store info about trigerring create folder structure
+ create_project_structure_key = "create_folder_structure"
+
def discover(self, session, entities, event):
''' Validation '''
if len(entities) != 1:
@@ -74,8 +79,29 @@ class PrepareProject(BaseAction):
str([key for key in attributes_to_set])
))
- title = "Set Attribute values"
+ item_splitter = {'type': 'label', 'value': '---'}
+ title = "Prepare Project"
items = []
+
+ # Ask if want to trigger Action Create Folder Structure
+ items.append({
+ "type": "label",
+ "value": "
Want to create basic Folder Structure?
"
+ })
+
+ items.append({
+ "name": self.create_project_structure_key,
+ "type": "boolean",
+ "value": False,
+ "label": "Check if Yes"
+ })
+
+ items.append(item_splitter)
+ items.append({
+ "type": "label",
+ "value": "Set basic Attributes:
"
+ })
+
multiselect_enumerators = []
# This item will be last (before enumerators)
@@ -88,8 +114,6 @@ class PrepareProject(BaseAction):
"label": "AutoSync to Avalon"
}
- item_splitter = {'type': 'label', 'value': '---'}
-
for key, in_data in attributes_to_set.items():
attr = in_data["object"]
@@ -195,6 +219,10 @@ class PrepareProject(BaseAction):
return
in_data = event['data']['values']
+
+ # pop out info about creating project structure
+ create_proj_struct = in_data.pop(self.create_project_structure_key)
+
# Find hidden items for multiselect enumerators
keys_to_process = []
for key in in_data:
@@ -228,6 +256,19 @@ class PrepareProject(BaseAction):
session.commit()
+ # Trigger Create Project Structure action
+ if create_proj_struct is True:
+ self.log.debug("Triggering Create Project Structure action")
+ event = fa_session.ftrack_api.event.base.Event(
+ topic="ftrack.action.launch",
+ data=dict(
+ actionIdentifier="create.project.structure",
+ selection=event["data"]["selection"]
+ ),
+ source=dict(user=event['source']['user'])
+ )
+ session.event_hub.publish(event, on_error='ignore')
+
return True