From: Ross Jones Date: Fri, 04 Jan 2013 13:50:21 +0000 Subject: Update to handle missing downloads data X-Git-Url: http://maxious.lambdacomplex.org/git/?p=ckanext-ga-report.git&a=commitdiff&h=fb2cf804c3fc7d54a87b987399d7aa4037c1c57e --- Update to handle missing downloads data --- --- a/ckanext/ga_report/controller.py +++ b/ckanext/ga_report/controller.py @@ -216,13 +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(): - print entry.key 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') --- a/ckanext/ga_report/download_analytics.py +++ b/ckanext/ga_report/download_analytics.py @@ -304,6 +304,12 @@ max_results=10000, end_date=end_date).execute() result_data = results.get('rows') + if not result_data: + # We may not have data for this time period, so we need to bail + # early. + log.info("There is no downloads data for this time period") + return + # [[url, count], [url],count] data = {} for result in result_data: