Changeset 2623

Show
Ignore:
Timestamp:
09/08/07 01:55:09 (1 year ago)
Author:
khundeen
Message:

FIXED: #2015

  • Handle the case when number of open tickets is zero
  • Handle the case when repository is empty
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tracmetrixplugin/0.11/setup.py

    r2582 r2623  
    77    description='Plugin to provide Trac project metrics and statistics', 
    88    keywords='trac plugin metrics statistics', 
    9     version='0.1.0', 
     9    version='0.1.1', 
    1010    url='', 
    1111    license='http://www.opensource.org/licenses/bsd-license.php', 
  • tracmetrixplugin/0.11/tracmetrixplugin/model.py

    r2595 r2623  
    332332        opened_tickets = self.get_remaning_opened_ticket_on(end_date) 
    333333        closed_tickets = self.get_tickets_closed_during(start_date, end_date) 
    334          
     334 
     335        if opened_tickets == []: 
     336            bmi = 0 
     337        else: 
     338            bmi = float(len(closed_tickets)) * 100 / float(len(opened_tickets)) 
     339             
    335340        return ("%s/%s" % (start_date.month, start_date.year), 
    336341                created_tickets, 
    337342                opened_tickets, 
    338343                closed_tickets, 
    339                 float(len(closed_tickets)) * 100 / float(len(opened_tickets))
     344                bmi
    340345         
    341346    def get_daily_backlog_history(self, start_date, end_date): 
     
    441446        bmi_dataset = [] 
    442447        for i in range(len(opened_tickets_dataset)): 
    443             bmi_dataset.append(float(closed_tickets_dataset[i])*100/float(opened_tickets_dataset[i])) 
     448            if opened_tickets_dataset[i] == 0: 
     449                 bmi_dataset.append(0.0) 
     450            else: 
     451                bmi_dataset.append(float(closed_tickets_dataset[i])*100/float(opened_tickets_dataset[i])) 
    444452     
    445453#        for idx, numdate in enumerate(numdates): 
     
    621629        self.start_date = start_date 
    622630        self.stop_date = stop_date     
    623         self.first_rev = self.changesets[0][0] 
    624         self.last_rev = self.changesets[-1][0] 
     631         
     632        if self.changesets != []: 
     633            self.first_rev = self.changesets[0][0] 
     634            self.last_rev = self.changesets[-1][0] 
    625635     
    626636    def get_commit_by_date(self): 
  • tracmetrixplugin/0.11/tracmetrixplugin/templates/pdashboard.html

    r2581 r2623  
    5353                            <td style="width: 200px">${len(bmi[2])} ${wiki_to_html(context(), ', '.join(['#%s' % i for i in bmi[2]]))}</td> 
    5454                            <td style="width: 200px">${len(bmi[3])} ${wiki_to_html(context(), ', '.join(['#%s' % i for i in bmi[3]]))}</td> 
    55                             <td style="width: 90px">${"%.2f %%" % (float(len(bmi[3])) * 100 / float(len(bmi[2])),)}</td> 
     55                            <td style="width: 90px">${"%.2f %%" % (bmi[4])}</td> 
    5656                          </tr> 
    5757                    </tbody>               
     
    7575                        <tr py:for="key in ticket_duration_stats" class="statistics"> 
    7676                          <th style="width: 357px" class="style1">${key}</th> 
    77                           <th style="width: 100px">${pretty_timedelta(0, ticket_duration_stats[key].avg())}</th> 
    78                           <th style="width: 100px">${pretty_timedelta(0, ticket_duration_stats[key].median())}</th> 
    79                           <th style="width: 91px">${pretty_timedelta(0, ticket_duration_stats[key].max())}</th> 
    80                           <th style="width: 90px">${pretty_timedelta(0, ticket_duration_stats[key].min())}</th> 
    81                           <th style="width: 90px">${pretty_timedelta(0, ticket_duration_stats[key].stdev())}</th> 
     77                          <th style="width: 100px"><py:if test="ticket_duration_stats[key].avg()">${pretty_timedelta(0, ticket_duration_stats[key].avg())}</py:if></th> 
     78                          <th style="width: 100px"><py:if test="ticket_duration_stats[key].median()">${pretty_timedelta(0, ticket_duration_stats[key].median())}</py:if></th> 
     79                          <th style="width: 91px"><py:if test="ticket_duration_stats[key].max()">${pretty_timedelta(0, ticket_duration_stats[key].max())}</py:if></th> 
     80                          <th style="width: 90px"><py:if test="ticket_duration_stats[key].min()">${pretty_timedelta(0, ticket_duration_stats[key].min())}</py:if></th> 
     81                          <th style="width: 90px"><py:if test="ticket_duration_stats[key].stdev()">${pretty_timedelta(0, ticket_duration_stats[key].stdev())}</py:if></th> 
    8282                        </tr> 
    8383                        <tr py:for="key in ticket_frequency_stats" class="statistics"> 
    8484                          <th style="width: 357px" class="style1">${key}</th> 
    85                           <th style="width: 100px">${"%.4f" % ticket_frequency_stats[key].avg()}</th> 
    86                           <th style="width: 100px">${"%.4f" % ticket_frequency_stats[key].median()}</th> 
    87                           <th style="width: 91px">${"%.4f" % ticket_frequency_stats[key].max()}</th> 
    88                           <th style="width: 90px">${"%.4f" % ticket_frequency_stats[key].min()}</th> 
    89                           <th style="width: 90px">${"%.4f" % ticket_frequency_stats[key].stdev()}</th> 
     85                          <th style="width: 100px"><py:if test="ticket_frequency_stats[key].avg()">${"%.4f" % ticket_frequency_stats[key].avg()}</py:if></th> 
     86                          <th style="width: 100px"><py:if test="ticket_frequency_stats[key].median()">${"%.4f" % ticket_frequency_stats[key].median()}</py:if></th> 
     87                          <th style="width: 91px"><py:if test="ticket_frequency_stats[key].max()">${"%.4f" % ticket_frequency_stats[key].max()}</py:if></th> 
     88                          <th style="width: 90px"><py:if test="ticket_frequency_stats[key].min()">${"%.4f" % ticket_frequency_stats[key].min()}</py:if></th> 
     89                          <th style="width: 90px"><py:if test="ticket_frequency_stats[key].stdev()">${"%.4f" % ticket_frequency_stats[key].stdev()}</py:if></th> 
    9090                        </tr> 
    9191                  </tbody>