diff options
Diffstat (limited to 'www/trac-announcer/files/patch-old-ticket-link-style')
-rw-r--r-- | www/trac-announcer/files/patch-old-ticket-link-style | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/www/trac-announcer/files/patch-old-ticket-link-style b/www/trac-announcer/files/patch-old-ticket-link-style new file mode 100644 index 000000000000..d856129a11f7 --- /dev/null +++ b/www/trac-announcer/files/patch-old-ticket-link-style @@ -0,0 +1,80 @@ +--- ./announcer/formatters/ticket.py.orig 2010-09-10 19:37:52.000000000 +0400 ++++ ./announcer/formatters/ticket.py 2010-09-10 21:03:38.000000000 +0400 +@@ -36,7 +36,7 @@ + from genshi.template import NewTextTemplate, MarkupTemplate + from genshi.template import TemplateLoader + +-from trac.config import Option, IntOption, ListOption ++from trac.config import Option, IntOption, ListOption, BoolOption + from trac.core import * + from trac.mimeview import Context + from trac.test import Mock, MockPerm +@@ -72,6 +72,11 @@ + 'owner, reporter, milestone, priority, severity', + doc="""Comma seperated list of fields to appear in tickets. + Use * to include all headers.""") ++ ++ ticket_link_with_comment = BoolOption('announcer', ++ 'ticket_link_with_comment', ++ 'false', ++ """Include last change anchor to the ticket URL.""") + + def styles(self, transport, realm): + if realm == "ticket": +@@ -89,6 +94,38 @@ + elif style == "text/html": + return self._format_html(event) + ++ def _ticket_link(self, ticket): ++ ticket_link = self.env.abs_href('ticket', ticket.id) ++ if self.ticket_link_with_comment == False: ++ return ticket_link ++ ++ cnum = self._ticket_last_comment(ticket) ++ if cnum != None: ++ ticket_link += "#comment:%s" % str(cnum) ++ ++ return ticket_link ++ ++ def _ticket_last_comment(self, ticket): ++ cnum = -1 ++ ++ for entry in ticket.get_changelog(): ++ (time, author, field, oldvalue, newvalue, permanent) = entry ++ if field != "comment": ++ continue ++ ++ try: ++ n = int(oldvalue) ++ except: ++ continue ++ ++ if cnum < n: ++ cnum = n ++ ++ if cnum == -1: ++ return None ++ else: ++ return cnum ++ + def _format_plaintext(self, event): + ticket = event.target + short_changes = {} +@@ -109,7 +146,7 @@ + comment = event.comment, + fields = self._header_fields(ticket), + category = event.category, +- ticket_link = self.env.abs_href('ticket', ticket.id), ++ ticket_link = self._ticket_link(ticket), + project_name = self.env.project_name, + project_desc = self.env.project_description, + project_link = self.env.project_url or self.env.abs_href(), +@@ -189,7 +226,7 @@ + fields = self._header_fields(ticket), + comment = temp, + category = event.category, +- ticket_link = self.env.abs_href('ticket', ticket.id), ++ ticket_link = self._ticket_link(ticket), + project_name = self.env.project_name, + project_desc = self.env.project_description, + project_link = self.env.project_url or self.env.abs_href(), |