Debugging
Debugging

--- a/ckanext/ga_report/controller.py
+++ b/ckanext/ga_report/controller.py
@@ -58,7 +58,8 @@
 
         entries = model.Session.query(GA_Stat).\
             filter(GA_Stat.stat_name=='Totals').\
-            filter(GA_Stat.period_name==c.month).all()
+            filter(GA_Stat.period_name==c.month).\
+            order_by('ga_stat.key').all()
         c.global_totals = [(s.key, s.value) for s in entries ]
 
         keys = {
@@ -87,28 +88,30 @@
     """
 
     def index(self):
-        # Get the month details by fetching distinct values and determining the
-        # month names from the values.
-        c.months = _month_details(GA_Url)
+        try:
+            # Get the month details by fetching distinct values and determining the
+            # month names from the values.
+            c.months = _month_details(GA_Url)
 
-        # 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])
+            # 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])
 
-        connection = model.Session.connection()
-        q = """
-            select department_id, sum(pageviews::int) views, sum(visitors::int) visits
-            from ga_url
-            where department_id <> ''
-                and not url like '/publisher/%%'
-                and period_name=%s
-            group by department_id order by views desc limit 20;
-        """
-        c.top_publishers = []
-        res = connection.execute(q, c.month)
-        for row in res:
-            c.top_publishers.append((model.Group.get(row[0]), row[1], row[2]))
-
+            connection = model.Session.connection()
+            q = """
+                select department_id, sum(pageviews::int) views, sum(visitors::int) visits
+                from ga_url
+                where department_id <> ''
+                    and not url like '/publisher/%%'
+                    and period_name=%s
+                group by department_id order by views desc limit 20;
+            """
+            c.top_publishers = []
+            res = connection.execute(q, c.month)
+            for row in res:
+                c.top_publishers.append((model.Group.get(row[0]), row[1], row[2]))
+        except Exception as e:
+            raise e
         return render('ga_report/publisher/index.html')
 
 

--- a/ckanext/ga_report/plugin.py
+++ b/ckanext/ga_report/plugin.py
@@ -18,6 +18,16 @@
 
     def after_map(self, map):
         map.connect(
+            '/data/analytics/publisher/',
+            controller='ckanext.ga_report.controller:GaPublisherReport',
+            action='index'
+        )
+        map.connect(
+            '/data/analytics/publisher/{id}',
+            controller='ckanext.ga_report.controller:GaPublisherReport',
+            action='read'
+        )
+        map.connect(
             '/data/analytics',
             controller='ckanext.ga_report.controller:GaReport',
             action='index'
@@ -27,16 +37,6 @@
             controller='ckanext.ga_report.controller:GaReport',
             action='csv'
         )
-        map.connect(
-            '/data/analytics/publisher/',
-            controller='ckanext.ga_report.controller:GaPublisherReport',
-            action='index'
-        )
-        map.connect(
-            '/data/analytics/publisher/{id}',
-            controller='ckanext.ga_report.controller:GaPublisherReport',
-            action='read'
-        )
         return map