Пример #1
0
    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)
Пример #2
0
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
Пример #3
0
    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']
Пример #4
0
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']
Пример #7
0
 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())
Пример #8
0
    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)