def _add_step_1(self, req, templateData): release = model.Release() release.version = req.args.get("selectReleaseVersion") if not release.version: return 'release_add_1.html', templateData, None # here a version has already been selected, assume it's name as the release name v = data.loadVersion(self, release.version) templateData['releaseName'] = v['name'] release.planned_date = v['time'] release.description = v['description'] release.author = req.authname release.creation_date = datefmt.to_timestamp(datefmt.to_datetime(None)) templateData[ 'releaseAvailableProcedures'] = data.findInstallProcedures(self) # Setting tickets according to the selected version" templateData['releaseTickets'] = "" release.tickets = data.getVersionTickets(self, release.version) for ticket in release.tickets: templateData['releaseTickets'] = templateData[ 'releaseTickets'] + str(ticket.ticket_id) + "," templateData['release'] = release return ('release_add_2.html', templateData, None)
def findAvailableReleases(com): """Find all created releases, closed and open""" sql = "SELECT id, version, description, author, creation_date, planned_date, install_date FROM releases ORDER BY version DESC" f = lambda row: model.Release(row[0], row[1], row[2], row[3], loadDateField(row[4]), loadDateField(row[5]), loadDateField(row[6])) result = loadListFromDatabase(com, sql, f) return result
def startElement(self, name, attrs): if name not in self.knownTags: if not self.ignore_missing_tags: print("Error: Unknown Release element '%s'." % name) sys.exit() elif name not in self.unknown_tags: self.unknown_tags.append(name) self.stack.append(name) if name == 'release': self.release = model.Release() self.release.id = int(attrs['id'].replace( " ", "")) # omit whitespaces in id to avoid conversion errors self.release.status = attrs['status'] elif name == 'track' and self.stack[-2] == 'tracklist': self.release.tracklist.append(model.Track()) elif name == "image": img = model.ImageInfo() img.height = attrs["height"] img.imageType = attrs["type"] img.uri = attrs["uri"] img.uri150 = attrs["uri150"] img.width = attrs["width"] self.release.images.append(img) if len(attrs) != 5: print("ATTR ERROR") print(attrs) sys.exit() elif name == 'format': fmt = model.Format() fmt.name = attrs['name'] fmt.qty = attrs['qty'] fmt.text = attrs['text'] self.release.formats.append(fmt) elif name == 'label': lbl = model.ReleaseLabel() lbl.name = attrs['name'] lbl.catno = attrs['catno'] self.release.labels.append(lbl) elif name == 'company' and 'companies' in self.stack: self.release.companies.append(model.Company()) # Barcode elif name == 'identifier' and attrs['type'] == 'Barcode': self.release.barcode = attrs['value']
def loadRelease(com, releaseId): """Load Release data""" sql = "SELECT id, version, description, author, creation_date, planned_date, install_date FROM releases WHERE id = %s" f = lambda row: model.Release(row[0], row[1], row[2], row[3], loadDateField(row[4]), loadDateField(row[5]), loadDateField(row[6])) result = loadFromDatabase(com, sql, f, releaseId) if result: result.tickets = loadReleaseTickets(com, releaseId) result.signatures = loadReleaseSignatures(com, releaseId) result.install_procedures = loadReleaseInstallProcedures( com, releaseId) return result
def startElement(self, name, attrs): if not name in self.knownTags: if not self.ignore_missing_tags: print "Error: Unknown Release element '%s'." % name sys.exit() elif not name in self.unknown_tags: self.unknown_tags.append(name) self.stack.append(name) if name == 'release': self.release = model.Release() self.release.id = int(attrs['id']) elif name == 'track' and self.stack[-2] == 'tracklist': self.release.tracklist.append(model.Track()) elif name == 'format': fmt = model.Format() fmt.name = attrs['name'] self.release.formats.append(fmt) elif name == 'label': lbl = model.ReleaseLabel() lbl.name = attrs['name'] lbl.catno = attrs['catno'] self.release.labels.append(lbl) elif name == 'company': cmp = model.ReleaseCompany() self.release.companies.append(cmp) elif name == 'artist' and 'track' not in self.stack and 'extraartists' not in self.stack: aj = model.ReleaseArtist() self.release.artists.append(aj) elif name == 'artist' and 'track' in self.stack and 'sub_track' not in self.stack and 'extraartists' not in self.stack: taj = model.ReleaseArtist() self.release.tracklist[-1].artists.append(taj) elif name == 'artist' and 'track' not in self.stack and 'extraartists' in self.stack: eaj = model.ExtraArtist() self.release.extraartists.append(eaj) elif name == 'artist' and 'track' in self.stack and 'sub_track' not in self.stack and 'extraartists' in self.stack: teaj = model.ExtraArtist() self.release.tracklist[-1].extraartists.append(teaj)
def startElement(self, name, attrs): if not name in self.knownTags: if not self.ignore_missing_tags: print "Error: Unknown Release element '%s'." % name sys.exit() elif not name in self.unknown_tags: self.unknown_tags.append(name) self.stack.append(name) if name == 'release': self.release = model.Release() self.release.id = int(attrs['id']) self.release.status = attrs['status'] elif name == 'track' and self.stack[-2] == 'tracklist': self.release.tracklist.append(model.Track()) elif name == "image": img = model.ImageInfo() img.height = attrs["height"] img.imageType = attrs["type"] img.uri = attrs["uri"] img.uri150 = attrs["uri150"] img.width = attrs["width"] self.release.images.append(img) if len(attrs) != 5: print "ATTR ERROR" print attrs sys.exit() elif name == 'format': fmt = model.Format() fmt.name = attrs['name'] fmt.qty = attrs['qty'] self.release.formats.append(fmt) elif name == 'label': lbl = model.ReleaseLabel() lbl.name = attrs['name'] lbl.catno = attrs['catno'] self.release.labels.append(lbl) # Barcode elif name == 'identifier' and attrs['type'] == 'Barcode': self.release.barcode = attrs['value']
def startElement(self, name, attrs): if not name in self.knownTags: if not self.ignore_missing_tags: print "Error: Unknown Release element '%s'." % name sys.exit() elif not name in self.unknown_tags: self.unknown_tags.append(name) self.stack.append(name) if name == 'release': self.release = model.Release() self.release.id = int(attrs['id']) self.release.status = attrs['status'] elif name == 'track': self.release.tracklist.append(model.Track()) elif name == "image": img = model.ImageInfo() img.height = attrs["height"] img.imageType = attrs["type"] img.uri = attrs["uri"] img.uri150 = attrs["uri150"] img.width = attrs["width"] self.release.images.append(img) if len(attrs) != 5: print "ATTR ERROR" print attrs sys.exit() elif name == 'format': fmt = model.Format() fmt.name = attrs['name'] if attrs.has_key('text'): fmt.text = attrs['text'] fmt.qty = attrs['qty'] if not fmt.qty: fmt.qty = 0 self.release.formats.append(fmt) #global formats #if not formats.has_key(attrs["name"]): # formats[attrs["name"]] = True elif name == 'label': lbl = model.ReleaseLabel() lbl.name = attrs['name'] lbl.catno = attrs['catno'] self.release.labels.append(lbl) elif name == 'identifier': identifier = model.Identifier() identifier.type = attrs['type'] identifier.value = attrs['value'] if attrs.has_key('description'): identifier.description = attrs['description'] self.release.identifiers.append(identifier) elif name == "video": vid = model.Video() vid.duration = attrs["duration"] vid.embed = attrs["embed"] vid.uri = attrs["src"] self.release.videos.append(vid) elif name == "artist": if 'track' in self.stack: if 'extraartists' in self.stack: self.release.tracklist[-1].extraartists.append( model.ArtistCredit()) else: self.release.tracklist[-1].artists.append( model.ArtistCredit()) else: if 'extraartists' in self.stack: self.release.extraartists.append(model.ArtistCredit()) else: self.release.artists.append(model.ArtistCredit())
def _add_step_2(self, req, templateData): templateData['preview'] = False release = model.Release() release.author = req.authname release.creation_date = datefmt.to_timestamp(datefmt.to_datetime(None)) release.errors = [] release.version = req.args.get("selectReleaseVersion") release.description = req.args.get("txtReleaseDescription") release.planned_date = req.args.get("txtReleasePlannedDate") release.author = req.authname templateData['releaseTickets'] = req.args.get("hiddenReleaseTickets") templateData['releaseName'] = req.args.get("txtReleaseName") templateData['releaseSignatures'] = req.args.get( "hiddenReleaseSignatures") release.signatures = [ model.ReleaseSignee(None, signee.strip(), None) for signee in templateData['releaseSignatures'].split(",") if signee.strip() ] ## load selected install procedures procs = data.findInstallProcedures(self) templateData['releaseAvailableProcedures'] = procs release.install_procedures = [] for proc in procs: proc.checked = False sel = req.args.get("releaseProcedure_" + str(proc.id)) if sel: proc.checked = True self.log.debug("_add_step_2: InstallProc: %s selected" % str(proc)) arqs = req.args.get("releaseProcedureFile_" + str(proc.id)) if arqs: arqs = [ arq.strip() for arq in arqs.split(",") if arq.strip() ] proc.files = arqs else: arqs = None release.install_procedures.append( model.ReleaseInstallProcedure(None, proc, arqs)) try: # Find node for the requested path/rev repos = self.env.get_repository(req.authname) self.log.debug("Tag 1.0 existe? " + (repos.has_node( "/TracReleasePlugin/tags/1.0") and "sim" or "nao")) if arq: for arq in arqs: self.log.debug("\tArquivo: " + arq) arq = self.getSourcePath(arq) self.log.debug("\t\t\t" + str(arq)) self.log.debug("\t\t\t" + ( repos.has_node(arq[0]) and "sim" or "nao")) except Exception, e: self.log.error(e) self.log.debug("Proc") self.log.debug("\t\t" + str(proc)) for ip in release.install_procedures: self.log.debug("\n\n\t\t\t" + str(ip))
def startElement(self, name, attrs): if not name in self.knownTags: if not self.ignore_missing_tags: print "Error: Unknown Release element '%s'." % name sys.exit() elif not name in self.unknown_tags: self.unknown_tags.append(name) self.stack.append(name) if name == 'release': self.release = model.Release() self.release.id = int(attrs['id']) self.release.status = attrs['status'] elif name == 'track' and self.stack[-2] == 'tracklist': self.release.tracklist.append(model.Track()) elif name == "image": img = model.ImageInfo() img.height = attrs["height"] img.imageType = attrs["type"] img.uri = attrs["uri"] img.uri150 = attrs["uri150"] img.width = attrs["width"] self.release.images.append(img) if len(attrs) != 5: print "ATTR ERROR" print attrs sys.exit() elif name == 'format': fmt = model.Format() fmt.name = attrs['name'] fmt.qty = attrs['qty'] self.release.formats.append(fmt) elif name == 'label': lbl = model.ReleaseLabel() lbl.name = attrs['name'] lbl.catno = attrs['catno'] self.release.labels.append(lbl) # Barcode elif name == 'identifier' and attrs['type'] == 'Barcode': self.release.barcode = attrs['value'] elif name == 'company': comp = model.Company() self.release.companies.append(comp) elif name == 'video': vid = model.Video() vid.duration = attrs['duration'] vid.embed = attrs['embed'] vid.src = attrs['src'] self.release.videos.append(vid) ## not in the elif, will lose the barcode if name == 'identifier': ident = model.Identifier() if 'description' in attrs: ident.description = attrs['description'] ident.type = attrs['type'] ident.value = attrs['value'] self.release.identifiers.append(ident)