Index: plugins/tracmetrix/tracmetrixplugin/web_ui.py =================================================================== --- plugins/tracmetrix/tracmetrixplugin/web_ui.py (revision 3) +++ plugins/tracmetrix/tracmetrixplugin/web_ui.py (working copy) @@ -20,7 +20,7 @@ from trac import mimeview from model import * # need it but should have worked in __init__.py from trac.config import ExtensionOption -from trac.context import Context +from trac.mimeview import Context from trac.core import * from trac.perm import IPermissionRequestor from trac.ticket import Milestone, Ticket, model #These are object @@ -87,6 +87,8 @@ self.env.log.info("pdashboard match request %s" % (req.path_info,)) urlcomp = req.path_info.split('/') + if len(urlcomp) < 2: + return False self.env.log.info(urlcomp) @@ -140,7 +142,7 @@ } data = { - 'context': Context(self.env, req), + 'context': Context.from_request(req), 'milestones': milestones, 'milestone_stats': stats, 'queries': queries, Index: plugins/tracmetrix/tracmetrixplugin/model.py =================================================================== --- plugins/tracmetrix/tracmetrixplugin/model.py (revision 3) +++ plugins/tracmetrix/tracmetrixplugin/model.py (working copy) @@ -618,9 +618,12 @@ self.changesets.append((rev,time,author)) self.start_date = start_date - self.stop_date = stop_date - self.first_rev = self.changesets[0][0] - self.last_rev = self.changesets[-1][0] + self.stop_date = stop_date + if not self.changesets: + self.first_rev = self.last_rev = 0 + else: + self.first_rev = self.changesets[0][0] + self.last_rev = self.changesets[-1][0] def get_commit_by_date(self): Index: plugins/tracmetrix/tracmetrixplugin/mdashboard.py =================================================================== --- plugins/tracmetrix/tracmetrixplugin/mdashboard.py (revision 3) +++ plugins/tracmetrix/tracmetrixplugin/mdashboard.py (working copy) @@ -34,8 +34,6 @@ from trac import __version__ from trac import mimeview from trac.core import * -from trac.context import Context -from trac.core import * from trac.perm import IPermissionRequestor from trac.util import sorted from trac.util.compat import sorted @@ -44,12 +42,10 @@ format_date, format_datetime, pretty_timedelta from trac.util.text import shorten_line, CRLF, to_unicode from trac.ticket import Milestone, Ticket, TicketSystem, model #These are object -from trac.ticket.query import Query from trac.ticket.roadmap import ITicketGroupStatsProvider, DefaultTicketGroupStatsProvider, \ get_ticket_stats, get_tickets_for_milestone, \ milestone_stats_data, TicketGroupStats -from trac.timeline.api import ITimelineEventProvider, TimelineEvent -from trac.web import IRequestHandler, IRequestFilter +from trac.web import IRequestHandler from trac.web.chrome import add_link, add_stylesheet, INavigationContributor, ITemplateProvider from trac.wiki.api import IWikiSyntaxProvider from trac.config import ExtensionOption, IntOption, BoolOption @@ -109,16 +105,16 @@ "FROM ticket LEFT JOIN ticket_change ON ticket.id = ticket_change.ticket " \ "WHERE (ticket_change.field='status' " \ "OR ticket_change.field='milestone') AND ticket.id IN (%s) " \ - "UNION SELECT ticket.id, ticket.type, ticket.time, ticket.status, " \ + "UNION (SELECT ticket.id, ticket.type, ticket.time, ticket.status, " \ "ticket.time, ticket.milestone, null, null, null FROM ticket " \ "WHERE ticket.time = ticket.changetime " \ - "AND ticket.id IN (%s) ORDER BY ticket.id" % (ticket_list, ticket_list) + "AND ticket.id IN (%s) ORDER BY ticket.id)" % (ticket_list, ticket_list) # sqlquery = "SELECT ticket.id, ticket.type, ticket.time, ticket.status, " \ # "ticket.time as changetime, null, null, null FROM ticket " \ # "WHERE ticket.time = ticket.changetime " \ # "AND ticket.id IN (%s) ORDER BY changetime" % (ticket_list,) -# +# cursor.execute(sqlquery) #env.log.info(sqlquery) @@ -313,7 +309,7 @@ title('Cummulative flow chart for ticket status history') legend(('Ticket Entered', 'Ticket Left', 'Ticket Completed'), loc='best') - filename = "cummulativeflow_%s" % (milestone.name,) + filename = "cummulativeflow_%s.%s" % (milestone.name,"png",) path = os.path.join(env.path, 'cache', 'tracmetrixplugin', filename) #env.log.info(path) Index: plugins/tracmetrix/tracmetrixplugin/templates/pdashboard.html =================================================================== --- plugins/tracmetrix/tracmetrixplugin/templates/pdashboard.html (revision 3) +++ plugins/tracmetrix/tracmetrixplugin/templates/pdashboard.html (working copy) @@ -49,9 +49,9 @@