Example #1
0
    def changeTypeCallback(self, newTaskToSearch, *args):
        assetType = database.getTaskType(newTaskToSearch)

        self.itemListWidget.type = assetType

        self.folderTreeWidget.type = assetType
        self.folderTreeWidget.getFolderTree()

        self.itemListWidget.task = newTaskToSearch
        self.itemListWidget.refreshList(path=self.itemListWidget.path, task=self.itemListWidget.task)
Example #2
0
 def buildCallback(self, *args):
     itemMData = self.getItem()
     itemType = database.getTaskType(self.task)
     if itemMData['status'] == 'notCreated':
         sceneBuild.build(itemType, self.task, self.code)
     else:
         resp = pm.confirmDialog(title='Confirm',
                                 message='This item is already built \n Do you want to rebuild?',
                                 button=['Yes', 'No'], defaultButton='Yes', cancelButton='No', dismissString='No')
         if resp == 'Yes':
             sceneBuild.build(itemType, self.task, self.code)
Example #3
0
    def getItem(self):
        projName = self.parentWidget.projectName
        itemType = database.getTaskType(self.task)
        collection = database.getCollection(itemType, projName)

        if self.task == 'asset':
            searchTask = 'model'
        elif self.task == 'shot':
            searchTask = 'layout'
        else:
            searchTask = self.task

        item = collection.find_one({'task': searchTask, 'code': self.code})

        return item
Example #4
0
    def changeTypeCallback(self, newTaskToSearch, *args):
        assetType = database.getTaskType(newTaskToSearch)

        self.itemListWidget.type = assetType

        self.folderTreeWidget.type = assetType
        self.folderTreeWidget.getFolderTree()

        self.itemListWidget.task = newTaskToSearch
        self.itemListWidget.refreshList(path=self.itemListWidget.path,
                                        task=self.itemListWidget.task)

        def createAssetCallBack(self, component, *args):
            if component:
                print component

                pm.layoutDialog(dismiss='ok')
Example #5
0
    def refreshList(self, path=None, task=None, code=None, itemMData=None):
        color = (0, 0, 0)
        x = None

        itemListProj = database.getProjectDict()

        if itemMData:
            self.path = itemMData['path']
            self.task = itemMData['task']
            self.type = itemMData['type']
        else:
            self.path = path
            self.task = task
            self.type = database.getTaskType(task[0])
            logger.debug('task %s, type %s' % (task[0], self.type))

        collection = database.getCollection(self.type)

        if code:
            result = collection.find({'path': self.path, 'code': code})
        else:
            if self.task == ['asset']:
                result = collection.find({'path': self.path, 'task': 'model'})
            elif self.task == ['shot']:
                result = collection.find({'path': self.path, 'task': 'layout'})
            else:
                result = collection.find({
                    'path': self.path,
                    'task': {
                        '$in': self.task
                    }
                })

        flowChilds = pm.flowLayout(self.widgetName, q=True, ca=True)
        if flowChilds:
            for i in flowChilds:
                pm.deleteUI(i)

        self.itemList = []
        self.selectedItem = None

        for itemMData in result:
            logger.debug(itemMData)
            if not code and (task == 'asset' or task == 'shot'):
                templateToUse = [
                    x for x in itemListProj['assetNameTemplate']
                    if x != '$task'
                ]
                name = database.templateName(itemMData, template=templateToUse)
                taskLabel = task.upper()
                createdColor = (0, .2, .50)
                notCreatedColor = (0, .2, .50)
            else:
                name = database.templateName(itemMData)
                taskLabel = itemMData['task'].upper()
                notCreatedColor = (.2, .2, .2)
                createdColor = (1, .8, .20)

            status = itemMData['status']
            if status == 'notCreated':
                color = notCreatedColor
            elif status == 'created':
                color = createdColor

            thumbPath = version.getThumb(itemMData)
            x = ItemBase(name=name,
                         itemName=itemMData['name'],
                         imgPath=thumbPath,
                         label=taskLabel,
                         status=itemMData['status'],
                         parentWidget=self,
                         color=color)
            x.infoWidget = self.infoWidget

            if code:
                x.task = itemMData['task']
                x.workVer = itemMData['workVer']
                x.publishVer = itemMData['publishVer']
            else:
                x.task = itemMData['task']
                x.workVer = 0
                x.publishVer = 0

            x.code = itemMData['code']
            self.itemList.append(x)
            x.addToLayout(self.viewOption)
Example #6
0
 def removeCallback(self, *args):
     print 'remove Item'
     itemType = database.getTaskType(self.task)
     database.removeItem(itemType, self.code)
     pm.evalDeferred('cmds.deleteUI("' + self.widgetName + '")')
     self.parentWidget.itemList.remove(self)