mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
validation of presets happens after registration
This commit is contained in:
parent
9526e0b5a3
commit
5a38ba950c
1 changed files with 40 additions and 38 deletions
|
|
@ -7,7 +7,6 @@ class FirstVersionStatus(BaseEvent):
|
|||
# than handler in `event_version_to_task_statuses.py`
|
||||
priority = 200
|
||||
|
||||
first_run = True
|
||||
keys_enum = ["task", "task_type"]
|
||||
# This should be set with presets
|
||||
task_status_map = []
|
||||
|
|
@ -22,49 +21,52 @@ class FirstVersionStatus(BaseEvent):
|
|||
"status": "Blocking"
|
||||
}]
|
||||
|
||||
def register(self, *args, **kwargs):
|
||||
result = super(FirstVersionStatus, self).register(*args, **kwargs)
|
||||
|
||||
valid_task_status_map = []
|
||||
for item in self.task_status_map:
|
||||
key = (item.get("key") or "").lower()
|
||||
name = (item.get("name") or "").lower()
|
||||
status = (item.get("status") or "").lower()
|
||||
if not (key and name and status):
|
||||
self.log.warning((
|
||||
"Invalid item in Task -> Status mapping. {}"
|
||||
).format(str(item)))
|
||||
continue
|
||||
|
||||
if key not in self.keys_enum:
|
||||
expected_msg = ""
|
||||
last_key_idx = len(self.keys_enum) - 1
|
||||
for idx, key in enumerate(self.keys_enum):
|
||||
if idx == 0:
|
||||
joining_part = "`{}`"
|
||||
elif idx == last_key_idx:
|
||||
joining_part = "or `{}`"
|
||||
else:
|
||||
joining_part = ", `{}`"
|
||||
expected_msg += joining_part.format(key)
|
||||
|
||||
self.log.warning((
|
||||
"Invalid key `{}`. Expected: {}."
|
||||
).format(key, expected_msg))
|
||||
continue
|
||||
|
||||
valid_task_status_map.append({
|
||||
"key": key,
|
||||
"name": name,
|
||||
"status": status
|
||||
})
|
||||
self.task_status_map = valid_task_status_map
|
||||
|
||||
return result
|
||||
|
||||
def launch(self, session, event):
|
||||
"""Set task's status for first created Asset Version."""
|
||||
|
||||
if not self.task_status_map:
|
||||
return
|
||||
|
||||
if self.first_run:
|
||||
self.first_run = False
|
||||
valid_task_status_map = []
|
||||
for item in self.task_status_map:
|
||||
key = (item.get("key") or "").lower()
|
||||
name = (item.get("name") or "").lower()
|
||||
status = (item.get("status") or "").lower()
|
||||
if not (key and name and status):
|
||||
self.log.warning((
|
||||
"Invalid item in Task -> Status mapping. {}"
|
||||
).format(str(item)))
|
||||
continue
|
||||
|
||||
if key not in self.keys_enum:
|
||||
expected_msg = ""
|
||||
last_key_idx = len(self.keys_enum) - 1
|
||||
for idx, key in enumerate(self.keys_enum):
|
||||
if idx == 0:
|
||||
joining_part = "`{}`"
|
||||
elif idx == last_key_idx:
|
||||
joining_part = "or `{}`"
|
||||
else:
|
||||
joining_part = ", `{}`"
|
||||
expected_msg += joining_part.format(key)
|
||||
|
||||
self.log.warning((
|
||||
"Invalid key `{}`. Expected: {}."
|
||||
).format(key, expected_msg))
|
||||
continue
|
||||
|
||||
valid_task_status_map.append({
|
||||
"key": key,
|
||||
"name": name,
|
||||
"status": status
|
||||
})
|
||||
self.task_status_map = valid_task_status_map
|
||||
|
||||
entities_info = self.filter_event_ents(event)
|
||||
if not entities_info:
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue