update controller

This commit is contained in:
Jakub Trllo 2025-04-30 17:35:43 +02:00
parent dde5c6a46f
commit b76ae8ffd3
2 changed files with 5 additions and 118 deletions

View file

@ -3,8 +3,6 @@ from abc import ABC, abstractmethod
from ayon_core.style import get_default_entity_icon_color
from ayon_core.host import WorkfileInfo
class FolderItem:
"""Item representing folder entity on a server.
@ -141,111 +139,6 @@ class TaskItem:
return cls(**data)
class FileItem:
"""File item that represents a file.
Can be used for both Workarea and Published workfile. Workarea file
will always exist on disk which is not the case for Published workfile.
Args:
dirpath (str): Directory path of file.
filename (str): Filename.
modified (float): Modified timestamp.
created_by (Optional[str]): Username.
representation_id (Optional[str]): Representation id of published
workfile.
filepath (Optional[str]): Prepared filepath.
exists (Optional[bool]): If file exists on disk.
"""
def __init__(
self,
dirpath,
filename,
modified,
created_by=None,
updated_by=None,
representation_id=None,
filepath=None,
exists=None
):
self.filename = filename
self.dirpath = dirpath
self.modified = modified
self.created_by = created_by
self.updated_by = updated_by
self.representation_id = representation_id
self._filepath = filepath
self._exists = exists
@property
def filepath(self):
"""Filepath of file.
Returns:
str: Full path to a file.
"""
if self._filepath is None:
self._filepath = os.path.join(self.dirpath, self.filename)
return self._filepath
@property
def exists(self):
"""File is available.
Returns:
bool: If file exists on disk.
"""
if self._exists is None:
self._exists = os.path.exists(self.filepath)
return self._exists
def to_data(self):
"""Converts file item to data.
Returns:
dict[str, Any]: File item data.
"""
return {
"filename": self.filename,
"dirpath": self.dirpath,
"modified": self.modified,
"created_by": self.created_by,
"representation_id": self.representation_id,
"filepath": self.filepath,
"exists": self.exists,
}
@classmethod
def from_data(cls, data):
"""Re-creates file item from data.
Args:
data (dict[str, Any]): File item data.
Returns:
FileItem: File item.
"""
required_keys = {
"filename",
"dirpath",
"modified",
"representation_id"
}
missing_keys = required_keys - set(data.keys())
if missing_keys:
raise KeyError("Missing keys: {}".format(missing_keys))
return cls(**{
key: data[key]
for key in required_keys
})
class WorkareaFilepathResult:
"""Result of workarea file formatting.
@ -881,7 +774,7 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
pass
@abstractmethod
def get_published_file_items(self, folder_id, task_id):
def get_published_file_items(self, folder_id: str, task_id: str):
"""Get published file items.
Args:
@ -889,7 +782,7 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
task_id (Union[str, None]): Task id.
Returns:
list[FileItem]: List of published file items.
list[PublishedWorkfileInfo]: List of published file items.
"""
pass
@ -904,7 +797,7 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
rootless_path (str): Workfile path.
Returns:
Union[WorkfileInfo, None]: Workfile info or None if was passed
Optional[WorkfileInfo]: Workfile info or None if was passed
invalid context.
"""

View file

@ -437,15 +437,9 @@ class BaseWorkfileController(
)
def get_published_file_items(self, folder_id, task_id):
task_name = None
if task_id:
task = self.get_task_entity(
self.get_current_project_name(), task_id
)
task_name = task.get("name")
return self._workfiles_model.get_published_file_items(
folder_id, task_name)
folder_id, task_id
)
def get_workfile_info(self, folder_id, task_id, rootless_path):
return self._workfiles_model.get_workfile_info(