[hamster-applet] fixed rounding bug in totals (on frequent switching seconds count)



commit b71eb3a652256f85ad0b796c29ddb01457cb229b
Author: Toms Bauģis <toms baugis gmail com>
Date:   Fri Jan 8 01:34:22 2010 +0000

    fixed rounding bug in totals (on frequent switching seconds count)

 hamster/stats_reports.py |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/hamster/stats_reports.py b/hamster/stats_reports.py
index b326dd4..1e166ca 100644
--- a/hamster/stats_reports.py
+++ b/hamster/stats_reports.py
@@ -168,18 +168,27 @@ class ReportsBox(gtk.VBox):
         # category totals
         category_sums = stuff.totals(facts,
                                      lambda fact: (fact["category"]),
-                                     lambda fact: stuff.duration_minutes(fact["delta"]) / 60.0)
+                                     lambda fact: fact["delta"].seconds + fact["delta"].days * 24 * 60 * 60)
+        for sum in category_sums:
+            category_sums[sum] = category_sums[sum] / 60 / 60.0
+
         if category_sums:
             if self.category_sums:
                 category_sums = [(key, category_sums[key]) for key in self.category_sums[0]]
             else:
                 category_sums = sorted(category_sums.items(), key=lambda x:x[1], reverse = True)
+
             self.category_sums = zip(*category_sums)
 
+
+
         # activity totals
         activity_sums = stuff.totals(facts,
                                      lambda fact: (fact["name"]),
-                                     lambda fact: stuff.duration_minutes(fact["delta"]) / 60.0)
+                                     lambda fact: fact["delta"].seconds + fact["delta"].days * 24 * 60 * 60)
+        for sum in activity_sums:
+            activity_sums[sum] = activity_sums[sum] / 60 / 60.0
+
         if self.activity_sums:
             activity_sums = [(key, activity_sums[key]) for key in self.activity_sums[0]]
         else:
@@ -193,7 +202,10 @@ class ReportsBox(gtk.VBox):
         for fact in facts:
             for tag in fact["tags"]:
                 tag_sums.setdefault(tag, 0)
-                tag_sums[tag] += stuff.duration_minutes(fact["delta"]) / 60.0
+                tag_sums[tag] += fact["delta"].seconds + fact["delta"].days * 24 * 60 * 60
+
+        for sum in tag_sums:
+            tag_sums[sum] = tag_sums[sum] / 60 / 60.0
 
         if tag_sums:        
             if self.tag_sums:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]