Make sure we total the vals for 'All' rather than just duplicate the entry
[ckanext-ga-report.git] / ckanext / ga_report / controller.py
blob:a/ckanext/ga_report/controller.py -> blob:b/ckanext/ga_report/controller.py
--- a/ckanext/ga_report/controller.py
+++ b/ckanext/ga_report/controller.py
@@ -216,12 +216,17 @@
         q = q.filter(GA_Stat.period_name==c.month) if c.month else q
         q = q.order_by("ga_stat.value::int desc")
 
+        data = collections.defaultdict(int)
         for entry in q.all():
             r = model.Session.query(model.Resource).filter(model.Resource.url==entry.key).first()
-            if r:
-                c.downloads.append((r,entry.value))
-            else:
-                log.info("Failed to find resource for %s" % entry.key)
+            if not r:
+                continue
+            data[r] += int(entry.value)
+
+        for k,v in data.iteritems():
+            c.downloads.append((k,v))
+
+        c.downloads = sorted(c.downloads, key=operator.itemgetter(1), reverse=True)
 
         return render('ga_report/site/downloads.html')