def setStatusUI(self, message, type = '') : self.ui.status_label.setText(message) if type == 'success' : self.ui.status_label.setStyleSheet('color: yellow') if type == 'error' : self.ui.status_label.setStyleSheet('color: red') hook.log(message) QtGui.QApplication.processEvents()
def setStatusUI(self, message, type=''): self.ui.status_label.setText(message) if type == 'success': self.ui.status_label.setStyleSheet('color: yellow') if type == 'error': self.ui.status_label.setStyleSheet('color: red') hook.log(message) QtGui.QApplication.processEvents()
def setStatusUI(self, message, type = '', underline = False, trace = True, doubleLine = False) : self.ui.status_label.setText(message) if type == 'success' : self.ui.status_label.setStyleSheet('color: yellow') if type == 'error' : self.ui.status_label.setStyleSheet('color: red') hook.log(message, underline, trace, doubleLine) QtGui.QApplication.processEvents()
def initFunction(self) : # get configuration -> reading from config.txt. If config not found or not enough data, stop working. # welcome text hook.log('Launch %s' % self.windowTitle, True, False) rootPath = self.getConfigRootPath() if rootPath : self.info = self.getSceneInfo(rootPath) if self.info : self.setupUI() else : hook.warning('Not in a correct workspace!') self.publishButton(False) else : hook.warning('Not in a correct workspace!') self.publishButton(False)
def doPublish(self) : if self.workMode == 'publish' : # dialog confirm to publish result = self.messageBox('Publish Confirm', self.getDisplayData()) if result == QtGui.QMessageBox.Ok : # check if the publish really exists result2 = self.checkPublish() # if user agree to increment version, then continue if result2 : # log start time startTime = datetime.now() hook.log('####### Start publishing... \\n%s' % startTime, True) self.setProgress('==== Publish Section ====', '', True, False, '', self.statusColor) # save current work file scene = hook.save() self.setStatusUI('Scene save') self.setProgress('Scene saved', '', scene) self.setProgressbar(self.progressIncrement, True) # copy this version to publish dir result = self.makePublish(scene) self.setStatusUI('Publish current scene to %s' % result) self.setProgress('Publish', '', result) self.setProgressbar(self.progressIncrement, True) # increment work version workFile = self.incrementWorkVersion() self.setStatusUI('save current file to %s' % workFile) self.setProgress('Increment work file', '', workFile) self.setProgressbar(self.progressIncrement, True) # connect shotgun self.setProgress('==== Shotgun Section ====', '', True, False, '', self.statusColor) self.updateShotgun() self.setStatusUI('==============================================') self.setStatusUI('Publish Complete. See Output for Details', 'success', True, False) # set post process self.setPostProcess() # end log endTime = datetime.now() duration = endTime - startTime hook.log('####### End publishing \\n%s' % endTime, True) hook.log('Duration %s' % duration, True) self.setProgress('====== Publish Complete ======', '', True, False, '', self.statusColor) self.setProgress('==== %s ====' % duration, '', True, False, '', self.statusColor) self.setProgressbar(100, True) # set dialog self.completeDialog('Publish Complete', 'Publish Complete') self.setProgressbar(100, False) if self.workMode == 'work' : # increment work version workFile = self.incrementWorkVersion() self.setStatusUI('save current file to %s' % workFile) # set post process self.setPostProcess() self.setProgress('Save increment', '', workFile)
def setPlayblastStatus(self) : hook.log('Checking playblast ...') hook.log('Animation playblast', True, True, True) # anim department only look for 1 playblast file if self.info['department'] == 'anim' : self.playblastVersion = self.getShotPlayblast() display = str() hook.log('Rv playblast', True, True, True) if self.playblastVersion['rvPlayblast'] : display += 'RV Playblast available / ' hook.log('Found %s' % self.playblastVersion['rvPlayblast']) else : display += 'RV Playblast not found / ' hook.log('Playblast for rv Missing') hook.log('Sg playblast', True, True, True) if self.playblastVersion['sgPlayblast'] : display += 'Shotgun Playblast available, Ready to upload' hook.log('Found %s' % self.playblastVersion['sgPlayblast']) else : display += 'Shotgun Playblast not found' hook.log('Playblast for sg Missing') hook.log('Summary', True, True, True) self.setStatusUI(display, 'success', False, False) # layout department will looking for shots and find available playblast for those shots if self.info['department'] == 'layout' : self.layoutShotInfo = self.getSequencePlayblast() rvExists = [] rvMissing = [] sgExists = [] sgMissing = [] hook.log('Layout playblast', True, True, True) for each in self.layoutShotInfo : if each['rvExists'] : rvExists.append(each['rvPlayblast']) else : rvMissing.append(each['rvPlayblast']) if each['sgExists'] : sgExists.append(each['sgPlayblast']) else : sgMissing.append(each['sgPlayblast']) hook.log('Rv playblast (%s files)' % len(rvExists), True, True, True) for each in rvExists : hook.log('Found %s' % each) hook.log('Sg playblast (%s files)' % len(sgExists), True, True, True) for each in sgExists : hook.log('Found %s' % each) hook.log('Missing Rv playblast (%s files)' % len(rvMissing), True, True, True) for each in rvMissing : hook.log('Missing %s' % each) hook.log('Missing Sg playblast (%s files)' % len(sgMissing), True, True, True) for each in sgMissing : hook.log('Missing %s' % each) hook.log('Summary', True, True, True) self.setStatusUI('%s/%s RV Playblast files available / %s/%s SG Playblast files available' % (len(rvExists), len(self.layoutShotInfo), len(sgExists), len(self.layoutShotInfo)), 'success')
def createShotgunVersion(self) : projName = self.info['project'] # taskID from update task status taskID = self.taskID taskName = self.taskName # linked to entity ID -> assetID/shotID from update task status entityID = self.entityInfo['id'] entityName = self.entityInfo['name'] thumbnailPath = None # status of the created version, read from config.txt -> versionStatus status = self.configData['versionStatus'] description = str(self.ui.comment_textEdit.toPlainText()) ext = self.configData['extension'] snapShotExt = self.configData['snapShot'] mediaExt = self.configData['mediaExtension'] # publish file publishPath = self.publishPath publishFile = self.publishVersion version = publishFile.split('.')[1] name = os.path.basename(publishFile).replace('.%s' % ext, '') publishPath = os.path.normpath(os.path.join(publishPath, publishFile)) snapshotPath = os.path.join(self.publishPath, self.snapshotDir) previewFile = os.path.normpath(os.path.join(snapshotPath, '%s.%s' % (name, snapShotExt))) playblastFile = str() upload = False result = None if os.path.exists(previewFile) : thumbnailPath = previewFile if self.info['entity'] == self.asset : # logging self.setStatusUI('Create version for Assets', '', True, True, True) hook.logList(['projName : %s' % projName, 'entityID : %s' % entityID, 'taskID : %s' % taskID, 'name : %s' % name, 'status : %s' % status, 'description : %s' % description, 'publishPath : %s' % hook.convertPath(publishPath), 'version : %s' % version, 'thumbnailPath : %s' % hook.convertPath(thumbnailPath)] ) # create asset version result = sgUtils.sgCreateAssetVersion(projName, entityID, taskID, name, status, description, publishPath, version, thumbnailPath) # log result hook.logList([result]) hook.log('Create version success') self.setProgress('Create asset version', '', result) self.setProgressbar(self.progressIncrement, True) if self.info['entity'] == self.shot : if self.info['department'] == 'anim' : if self.ui.playblast_checkBox.isChecked() : if self.playblastVersion : rvPlayblast = self.playblastVersion['rvPlayblast'] sgPlayblast = self.playblastVersion['sgPlayblast'] # only create version if sgPlayblast available if sgPlayblast : if self.ui.upload_checkBox.isChecked() : upload = True self.setStatusUI('Create version for %s' % entityName, True, True, True) hook.logList(['projName : %s' % projName, 'entityID : %s' % entityID, 'taskID : %s' % taskID, 'name : %s' % name, 'status : %s' % status, 'description : %s' % description, 'publishPath : %s' % hook.convertPath(publishPath), 'version : %s' % version, 'thumbnailPath : %s' % hook.convertPath(thumbnailPath), 'rvPlayblast : %s' % hook.convertPath(rvPlayblast), 'sgPlayblast : %s' % hook.convertPath(sgPlayblast), 'upload : %s' % upload] ) result = sgUtils.sgCreateShotVersion2(projName, entityID, taskID, name, status, description, publishPath, version, thumbnailPath, rvPlayblast, sgPlayblast, upload) hook.logList([result]) hook.log('Create version success') self.setProgress('%s : Set RV Playbalst' % entityName, 'Skip : No RV playblast for %s' % entityName, rvPlayblast, True, 'na') self.setProgress('%s Upload SG playblast' % entityName, 'Skip : No SG Playblast for %s' % entityName, sgPlayblast, True, 'na') self.setProgressbar(self.progressIncrement, True) # self.setProgress('Create version %s' % entityName, result) else : self.setProgress('%s : Set RV Playbalst' % entityName, 'Skip : No create version %s' % entityName, False, True, 'na') if self.info['department'] == 'layout' : if self.ui.playblast_checkBox.isChecked() : if self.layoutShotInfo : incrementStep = (100 - int(self.ui.progressBar.text().replace('%', '')))/len(self.layoutShotInfo) for each in self.layoutShotInfo : entityName = each['shotName'] entityID = each['id'] shotName = each['shotCode'] sequence = each['sequence'] taskID = None rvPlayblast = None sgPlayblast = None upload = False createVersion = False if each['rvExists'] : name = os.path.basename(each['rvPlayblast']).replace('.%s' % mediaExt, '') rvPlayblast = each['rvPlayblast'] createVersion = False if each['sgExists'] : sgPlayblast = each['sgPlayblast'] createVersion = True if self.ui.upload_checkBox.isChecked() : upload = True if createVersion : taskData = sgUtils.sgGetShotTaskID(projName, sequence, shotName, taskName) taskID = taskData['id'] self.setStatusUI('Create version for %s' % entityName, '', True, True, True) hook.logList(['projName : %s' % projName, 'entityID : %s' % entityID, 'taskID : %s' % taskID, 'name : %s' % name, 'status : %s' % status, 'description : %s' % description, 'publishPath : %s' % hook.convertPath(publishPath), 'version : %s' % version, 'thumbnailPath : %s' % hook.convertPath(thumbnailPath), 'rvPlayblast : %s' % rvPlayblast, 'sgPlayblast : %s' % hook.convertPath(sgPlayblast), 'upload : %s' % upload] ) result = sgUtils.sgCreateShotVersion2(projName, entityID, taskID, name, status, description, publishPath, version, thumbnailPath, rvPlayblast, sgPlayblast, upload) hook.log(result) hook.log('Create version for %s success' % entityName) self.setProgress('%s : Set RV Playblast' % entityName, 'Skip : No Playblast for RV on %s' % entityName, each['rvExists'], True, 'na') self.setProgress('%s : Upload SG Playblast' % entityName, 'Skip : No Playblast for SG on %s' % entityName, each['sgExists'], True, 'na') # self.setProgress('Create version %s' % entityName, result) self.setProgressbar(incrementStep, True) else : self.setProgress('Skip : No Playblast for %s' % entityName, '', False, True, 'na') self.setProgressbar(incrementStep, True) return result