Hi~, This is patch for Trac 0.12 / 1.0 compatibility.
Index: tracmetrixplugin/web_ui.py
===================================================================
--- tracmetrixplugin/web_ui.py (revision 11745)
+++ tracmetrixplugin/web_ui.py (working copy)
@@ -28,6 +28,7 @@
from trac.util.datefmt import to_datetime, utc
from trac.web import IRequestFilter, IRequestHandler, ITemplateStreamFilter
from trac.web.chrome import add_stylesheet, INavigationContributor, ITemplateProvider
+from trac import __version__
from tracmetrixplugin.model import ChangesetsStats, TicketGroupMetrics
@@ -86,8 +87,9 @@
milestoneName = u"".join(e[1] for e in self.buffer.events)
title = "Go to TracMetrix for %s" % milestoneName
href = self.baseHref.mdashboard(milestoneName)
+ func = ( __version__ < '1.0') and tag.dd or tag.span # Trac >= 1.0dev
- return iter(tag.dd('[', tag.a('TracMetrix', href=href, title=title), ']'))
+ return iter( func('[', tag.a('TracMetrix', href=href, title=title), ']'))
@@ -104,10 +106,14 @@
if filename in ('roadmap.html', ):
+ tag = ( __version__ < '0.12.1') and 'li' or 'div' # Trac >= 0.12.1
+ cls = ( __version__ < '1.0') and '' or ' trac-progress' # Trac >= 1.0dev
+ obj = ( __version__ < '1.0') and 'dl' or 'p[@class="legend"]' # Trac >= 1.0dev
+
buffer = StreamBuffer()
- t = Transformer('//li[@class="milestone"]/div[@class="info"]/h2/a/em/text()')
+ t = Transformer('//'+ tag +'[@class="milestone"]/div[@class="info'+ cls +'"]/h2/a/em/text()')
t = t.copy(buffer).end()
- t = t.select('//li[@class="milestone"]/div[@class="info"]/dl')
+ t = t.select('//'+ tag +'[@class="milestone"]/div[@class="info'+ cls +'"]/'+ obj)
t = t.append(GenerateMetrixLink(buffer, req.href))
stream |= t
@@ -125,10 +131,13 @@
if filename in ('milestone_view.html', ):
+ cls = ( __version__ < '1.0') and '' or ' trac-progress' # Trac >= 1.0dev
+ obj = ( __version__ < '1.0') and 'dl' or 'p[@class="legend"]' # Trac >= 1.0dev
+
buffer = StreamBuffer()
t = Transformer('//div[@class="milestone"]/h1/text()[2]')
t = t.copy(buffer).end()
- t = t.select('//div[@class="milestone"]/div[@class="info"]/dl')
+ t = t.select('//div[@class="milestone"]/div[@class="info'+ cls +'"]/'+ obj)
t = t.append(GenerateMetrixLink(buffer, req.href))
stream |= t