Beispiel #1
0
 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
Beispiel #2
0
 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"))
Beispiel #3
0
 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"))
Beispiel #4
0
 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'))
Beispiel #5
0
 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')