Skip to content

Commit

Permalink
Now folders creation works in both Artella Indie and Artella Enterprise
Browse files Browse the repository at this point in the history
  • Loading branch information
tpoveda committed Aug 13, 2020
1 parent 7a3fffb commit 0daf9ec
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 16 deletions.
11 changes: 4 additions & 7 deletions artellapipe/tools/artellamanager/core/artellamanager.py
Expand Up @@ -12,22 +12,19 @@
__maintainer__ = "Tomas Poveda"
__email__ = "tpovedatd@gmail.com"

import artellapipe
from artellapipe.core import tool

# Defines ID of the tool
TOOL_ID = 'artellapipe-tools-artellamanager'

# We skip the reloading of this module when launching the tool
no_reload = True


class ArtellapipeManagerTool(artellapipe.Tool, object):
class ArtellapipeManagerTool(tool.ArtellaTool, object):
def __init__(self, *args, **kwargs):
super(ArtellapipeManagerTool, self).__init__(*args, **kwargs)

@classmethod
def config_dict(cls, file_name=None):
base_tool_config = artellapipe.Tool.config_dict(file_name=file_name)
base_tool_config = tool.ArtellaTool.config_dict(file_name=file_name)
tool_config = {
'name': 'Artella Manager',
'id': 'artellapipe-tools-artellamanager',
Expand All @@ -52,7 +49,7 @@ def config_dict(cls, file_name=None):
return base_tool_config


class ArtellapipeManagerToolset(artellapipe.Toolset, object):
class ArtellapipeManagerToolset(tool.ArtellaToolset, object):
ID = TOOL_ID

def __init__(self, *args, **kwargs):
Expand Down
Expand Up @@ -12,11 +12,11 @@
__maintainer__ = "Tomas Poveda"
__email__ = "tpovedatd@gmail.com"

import artellapipe
from artellapipe.core import tool
from artellapipe.tools.artellamanager.widgets import artellamanagerwidget


class ArtellaManager(artellapipe.ToolWidget, object):
class ArtellaManager(tool.ArtellaToolWidget, object):
def __init__(self, project, config, settings, parent):
super(ArtellaManager, self).__init__(project=project, config=config, settings=settings, parent=parent)

Expand Down
Expand Up @@ -49,7 +49,7 @@ def __init__(self, project, parent=None):
self._artella_timer.setInterval(6000)
self._artella_timer.timeout.connect(self._on_update_metadata)

self.METADATA = artellalib.get_metadata()
self.METADATA = artellalib.artella.get_metadata()
self._on_artella_checked(bool(self.METADATA))

def get_main_layout(self):
Expand Down Expand Up @@ -363,7 +363,7 @@ def _on_get_folder_status(self, status, path):
text='Impossible to retrieve data from Artella. Maybe Artella is down.',
duration=5,
parent=self)
self.METADATA = artellalib.get_metadata()
self.METADATA = artellalib.artella.get_metadata()
if not self.METADATA:
self._artella_not_available()
return
Expand Down
66 changes: 61 additions & 5 deletions artellapipe/tools/artellamanager/widgets/workers.py
Expand Up @@ -31,7 +31,61 @@ def __init__(self, path, project):

def run(self):
folders_found = list()
status = artellalib.get_status(self._path)

if not self._project:
self.signals.dirsUpdated.emit(folders_found)
return

folders_found = self._run_enterprise() if self._project.is_enterprise() else self._run_indie()

return folders_found

def _run_enterprise(self):
"""
Internal function that downloads available folders in given path for Artella Indie
:param status: dict
"""

status = artellalib.artella.get_status(self._path, include_remote=True)

folders_found = list()
if not status:
return folders_found

for handle, status_data in status.items():
if 'local_info' not in status_data:
continue
local_info = status_data.get('local_info', dict())
remote_info = status_data.get('remote_info', dict())

signature = local_info.get('signature', '')
folder_path = local_info.get('path', '')
if not signature or not folder_path:
name = remote_info.get('name', '')
signature = remote_info.get('signature', '')
folder_path = os.path.join(self._path, name)

if (not signature or signature != 'folder') or not folder_path:
continue
if os.path.normpath(self._path) == os.path.normpath(folder_path):
continue

folders_found.append(folder_path)

self.signals.dirsUpdated.emit(folders_found)

return folders_found

def _run_indie(self):
"""
Internal function that downloads available folders in given path for Artella Indie
:param status: artellaclasses
"""

status = artellalib.artella.get_status(self._path)

folders_found = list()

is_asset = False
if isinstance(status, artellaclasses.ArtellaDirectoryMetaData):
for ref_name, ref_data in status.references.items():
Expand All @@ -43,7 +97,7 @@ def run(self):
elif isinstance(status, artellaclasses.ArtellaAssetMetaData):
working_folder = self._project.get_working_folder()
working_path = os.path.join(status.path, working_folder)
artella_data = artellalib.get_status(working_path)
artella_data = artellalib.artella.get_status(working_path)
if isinstance(artella_data, artellaclasses.ArtellaDirectoryMetaData):
folders_found.append(working_path)
is_asset = True
Expand All @@ -61,6 +115,8 @@ def run(self):
published_folders_found.append(version_path)
self.signals.publishedDirsUpdated.emit(published_folders_found)

return folders_found


class GetArtellaFolderStatusWorkerSignals(QObject, object):
statusRetrieved = Signal(object, str)
Expand All @@ -76,7 +132,7 @@ def run(self):
if not self._path:
return

status = artellalib.get_status(self._path)
status = artellalib.artella.get_status(self._path)
self.signals.statusRetrieved.emit(status, self._path)


Expand Down Expand Up @@ -112,7 +168,7 @@ def run(self):
if self._abort:
self.signals.progressAbort.emit()
return
status = artellalib.get_status(path)
status = artellalib.artella.get_status(path)
self.signals.progressTick.emit(i, path, status)

self.signals.progressDone.emit()
Expand All @@ -129,7 +185,7 @@ def __init__(self):
self.signals = ArtellaCheckWorkerSignals()

def run(self):
metadata = artellalib.get_metadata()
metadata = artellalib.artella.get_metadata()
if metadata is not None:
self.signals.artellaAvailable.emit(True)
else:
Expand Down

0 comments on commit 0daf9ec

Please sign in to comment.