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 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)
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
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')
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)
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)