Merge branch 'master' of github.com:datagovuk/ckanext-ga-report
--- a/ckanext/ga_report/ga_model.py
+++ b/ckanext/ga_report/ga_model.py
@@ -184,9 +184,14 @@
def update_url_stats(period_name, period_complete_day, url_data):
-
+ '''
+ Given a list of urls and number of hits for each during a given period,
+ stores them in GA_Url under the period and recalculates the totals for
+ the 'All' period.
+ '''
for url, views, visitors in url_data:
package, publisher = _get_package_and_publisher(url)
+
item = model.Session.query(GA_Url).\
filter(GA_Url.period_name==period_name).\
@@ -194,6 +199,10 @@
if item:
item.pageviews = item.pageviews + views
item.visitors = item.visitors + visitors
+ if not item.package_id:
+ item.package_id = package
+ if not item.department_id:
+ item.department_id = publisher
model.Session.add(item)
else:
values = {'id': make_uuid(),
@@ -209,6 +218,13 @@
model.Session.commit()
if package:
+ old_pageviews, old_visits = 0, 0
+ old = model.Session.query(GA_Url).\
+ filter(GA_Url.period_name=='All').\
+ filter(GA_Url.url==url).all()
+ old_pageviews = sum([int(o.pageviews) for o in old])
+ old_visits = sum([int(o.visitors) for o in old])
+
entries = model.Session.query(GA_Url).\
filter(GA_Url.period_name!='All').\
filter(GA_Url.url==url).all()
@@ -216,15 +232,14 @@
'period_name': 'All',
'period_complete_day': 0,
'url': url,
- 'pageviews': sum([int(e.pageviews) for e in entries]),
- 'visitors': sum([int(e.visitors) for e in entries]),
+ 'pageviews': sum([int(e.pageviews) for e in entries]) + old_pageviews,
+ 'visitors': sum([int(e.visitors) for e in entries]) + old_visits,
'department_id': publisher,
'package_id': package
}
model.Session.add(GA_Url(**values))
model.Session.commit()
-
--- a/ckanext/ga_report/helpers.py
+++ b/ckanext/ga_report/helpers.py
@@ -60,7 +60,8 @@
if not dataset:
return None
dataset_dict = get_action('package_show')({'model': model,
- 'session': model.Session},
+ 'session': model.Session,
+ 'validate': False},
{'id':dataset.id})
return dataset_dict