def format(self): if not self.changesets: message = _("No changesets for #%s" % self.tkt_id) yield tag.span(format_to_oneliner(self.env, self.context, message, shorten=False), class_='ticketchangesets hint') return n = len(self.changesets) ix = 0 # current index for adding separation markers between repos for (reponame, changesets) in self.changesets: if n > 1: if self.hint == 'ticket': if reponame and reponame != '(default)': yield tag.h3(reponame, class_='change') else: yield tag.h3(_("Default Repository"), class_='change') elif ix > 0: yield ', ' revs = changesets.wiki_revs(reponame, self.compact) log = changesets.wiki_log(reponame) message = revs + ' (' + log + ')' yield tag.span(format_to_oneliner(self.env, self.context, message, shorten=False), class_='ticketchangesets') ix += 1
def wiki_log(self, reponame): """Make wiki text of link to revision log for given repo""" if reponame and reponame != '(default)': return '[log:%s@%s %s/%s]' % (reponame, ','.join( [str(r) for r in self.get_compact()]), _("Revision Log"), reponame) else: return '[log:@%s %s]' % (','.join( [str(r) for r in self.get_compact()]), _("Revision Log"))
def wiki_log(self, reponame): """Make wiki text of link to revision log for given repo""" if reponame and reponame != '(default)': return '[log:%s@%s %s/%s]' % (reponame, ','.join([str(r) for r in self.get_compact()]), _("Revision Log"), reponame) else: return '[log:@%s %s]' % (','.join([str(r) for r in self.get_compact()]), _("Revision Log"))
def _render(self, req, ticket, exists): if exists: message = self.changesets.format() return tag.div(tag.h2(_("Repository Changesets"), class_='foldable'), tag.div(message, id='changelog'), class_=self.collapsed and 'collapsed') else: message = _("(none)") return tag.div(tag.h2(_("Repository Changesets"), ' ', message, class_='foldable'))
def expand_macro(self, formatter, name, content, args={}): if args: reponame = args.get('repository', '') rev = args.get('revision') else: if ',' in content: reponame = '' rev = 0 for c in [x.strip() for x in content.split(',')]: if c.isnumeric(): rev = c else: reponame = c else: rev = content.strip() reponame = '' repos = RepositoryManager(self.env).get_repository(reponame) if repos: changeset = repos.get_changeset(rev) message = changeset.message rev = changeset.rev else: message = content if formatter.context.resource.realm == 'ticket': ticket_re = CommitTicketUpdater.ticket_re if not any(int(tkt_id) == formatter.context.resource.id for tkt_id in ticket_re.findall(message)): return tag.div(tag.p(_("(The changeset message doesn't " "reference this ticket)"), class_='hint'), class_='commitmessage') if ChangesetModule(self.env).wiki_format_messages: return tag.div(format_to_html(self.env, formatter.context('changeset', rev, parent=repos.resource), message, escape_newlines=True), class_='commitmessage') else: return tag.pre(message, class_='commitmessage')