Changeset 2466

Show
Ignore:
Timestamp:
07/13/07 16:03:43 (1 year ago)
Author:
khundeen
Message:

TracMetrixPlugin:

NEW: Ticket#259
- Add logic to handle request for cummulative flow chart

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tracmetrixplugin/0.11/tracmetrixplugin/templates/mdashboard.html

    r2459 r2466  
    7676          </div> 
    7777    </div> 
     78     
     79     
    7880 
    79         <div>   <img src="${href.mdashboard('cummulativeflow_%s.png' % (milestone.name,))}"/></div> 
     81        <div>   <img src="${href.mdashboard('%s/cummulativeflow.png' % (milestone.name,))}"/></div> 
    8082 
    8183 
  • tracmetrixplugin/0.11/tracmetrixplugin/web_ui.py

    r2459 r2466  
    99import os 
    1010 
     11from string import find 
    1112from bisect import bisect 
    1213from itertools import groupby 
     
    2122 
    2223from trac import __version__ 
     24from trac import mimeview 
    2325from trac.core import * 
    2426from trac.context import Context 
     
    335337        import re, urllib 
    336338 
     339        self.env.log.info("mdashboard match request %s" % (req.path_info,))   
     340 
    337341        match = re.match(r'/mdashboard(?:/(.+))?', req.path_info) 
    338342                
    339343        if match: 
    340344            if match.group(1): 
    341                 req.args['id'] = match.group(1) 
     345                 
     346                # split the milestone name.  This part can be 'milestone name' or  
     347                # 'milestone name/image name' 
     348                 
     349                urlcomp = match.group(1).split('/') 
     350                 
     351                if len(urlcomp) == 1: #url has 2  
     352                    req.args['id'] = urlcomp[0] 
     353                    req.args['imagename'] = None 
     354                else: 
     355                    req.args['id'] = urlcomp[0] 
     356                    req.args['imagename'] = urlcomp[1] 
     357                     
    342358            return True 
    343  
    344359        # This code should do what above does. 
    345360        #req.path_info.startswith('/mdashboard') 
     
    352367        milestone_id = req.args.get('id') 
    353368 
     369        self.env.log.info("mdashboard process request %s, %s" % (req.path_info,req.args.get('id')))   
     370 
    354371        add_link(req, 'up', req.href.pdashboard(), 'Dashboard') 
    355372 
     
    358375 
    359376        if not milestone_id: 
    360             req.redirect(req.href.pdashboard()) 
    361          
    362         add_stylesheet(req, 'pd/css/dashboard.css')      
    363         
    364         return self._render_view(req, db, milestone) 
    365  
    366          
     377            req.redirect(req.href.pdashboard())      
     378             
     379        if req.args.get('imagename') == 'cummulativeflow.png':     
     380             
     381            self.env.log.info("request for image") 
     382            filename = "cummulativeflow_%s.png" % (milestone.name,) 
     383            path = os.path.join(self.env.path, 'cache', 'tracmetrixplugin', filename) 
     384            req.send_file(path, mimeview.get_mimetype(path)) 
     385             
     386        else: 
     387             
     388            self.env.log.info("request mdashboard") 
     389         
     390            add_stylesheet(req, 'pd/css/dashboard.css')   
     391             
     392            return self._render_view(req, db, milestone)         
    367393         
    368394 
     
    567593    # IRequestHandler methods 
    568594 
     595 
    569596    def match_request(self, req): 
     597 
     598        self.env.log.info("pdashboard match request %s" % (req.path_info,))   
     599                 
    570600        return re.match(r'/pdashboard/?', req.path_info) is not None 
    571601