From: Ross Jones Date: Thu, 25 Oct 2012 19:45:27 +0000 Subject: Nicer 404 message X-Git-Url: http://maxious.lambdacomplex.org/git/?p=ckanext-ga-report.git&a=commitdiff&h=884b8ef07990ca928194f0bc78e1b8da1e441fb4 --- Nicer 404 message --- --- a/ckanext/ga_report/controller.py +++ b/ckanext/ga_report/controller.py @@ -1,6 +1,6 @@ import logging import operator -from ckan.lib.base import BaseController, c, render, request, response +from ckan.lib.base import BaseController, c, render, request, response, abort import sqlalchemy from sqlalchemy import func, cast, Integer @@ -59,7 +59,19 @@ filter(GA_Stat.stat_name=='Totals').\ filter(GA_Stat.period_name==c.month).\ order_by('ga_stat.key').all() - c.global_totals = [(s.key, s.value) for s in entries ] + + c.global_totals = [] + for e in entries: + val = e.value + if e.key in ['Average time on site', 'Pages per visit', 'Percent new visits']: + val = "%.2f" % round(float(e.value), 2) + if e.key == 'Average time on site': + mins, secs = divmod(float(val), 60) + hours, mins = divmod(mins, 60) + val = '%02d:%02d:%02d (%s seconds) ' % (hours, mins, secs, val) + e.key = '%s *' % e.key + c.global_totals.append((e.key, val)) + keys = { 'Browser versions': 'browsers', @@ -95,7 +107,7 @@ # Work out which month to show, based on query params of the first item c.month = request.params.get('month', c.months[0][0] if c.months else '') c.month_desc = ''.join([m[1] for m in c.months if m[0]==c.month]) -# and not url like '/publisher/%%' + connection = model.Session.connection() q = """ select department_id, sum(pageviews::int) views, sum(visitors::int) visits @@ -104,6 +116,10 @@ and period_name=%s group by department_id order by views desc limit 20; """ + # Add this back (before and period_name =%s) if you want to ignore publisher + # homepage views + # and not url like '/publisher/%%' + c.top_publishers = [] res = connection.execute(q, c.month) for row in res: @@ -113,7 +129,10 @@ def read(self, id): + c.publisher = model.Group.get(id) + if not c.publisher: + abort(404, 'A publisher with that name could not be found') c.top_packages = [] # package, dataset_views in c.top_packages # Get the month details by fetching distinct values and determining the --- a/ckanext/ga_report/templates/ga_report/site/index.html +++ b/ckanext/ga_report/templates/ga_report/site/index.html @@ -50,6 +50,8 @@ + +

* Values are rounded up to 2 decimal places.