Implements downloads counts (for dataset resources) and fixes an issue with 'All' records.
[ckanext-ga-report.git] / ckanext / ga_report / plugin.py
David Read

Ross Jones
David Read

Ross Jones
Ross Jones

Ross Jones
David Read

Ross Jones
David Read

Ross Jones
David Read




Ross Jones





Ross Jones
Ross Jones
Ross Jones
Ross Jones
Ross Jones

David Read
David Read
David Read
David Read

David Read

Ross Jones
David Read

Ross Jones

Ross Jones









David Read






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import logging
import ckan.lib.helpers as h
import ckan.plugins as p
from ckan.plugins import implements, toolkit
 
log = logging.getLogger('ckanext.ga-report')
 
class GAReportPlugin(p.SingletonPlugin):
    implements(p.IConfigurer, inherit=True)
    implements(p.IRoutes, inherit=True)
    implements(p.ITemplateHelpers, inherit=True)
 
    def update_config(self, config):
        toolkit.add_template_directory(config, 'templates')
        toolkit.add_public_directory(config, 'public')
 
    def get_helpers(self):
        """
        A dictionary of extra helpers that will be available to provide
        ga report info to templates.
        """
        from ckanext.ga_report.helpers import most_popular_datasets
        return {
            'ga_report_installed': lambda: True,
            'most_popular_datasets': most_popular_datasets,
        }
 
    def after_map(self, map):
        map.connect(
            '/data/site-usage/publisher',
            controller='ckanext.ga_report.controller:GaPublisherReport',
            action='index'
        )
        map.connect(
            '/data/site-usage/publisher_{month}.csv',
            controller='ckanext.ga_report.controller:GaPublisherReport',
            action='csv'
        )
        map.connect(
            '/data/site-usage/publisher/{id}_{month}.csv',
            controller='ckanext.ga_report.controller:GaPublisherReport',
            action='publisher_csv'
        )
        map.connect(
            '/data/site-usage/publisher/{id}',
            controller='ckanext.ga_report.controller:GaPublisherReport',
            action='read'
        )
        map.connect(
            '/data/site-usage',
            controller='ckanext.ga_report.controller:GaReport',
            action='index'
        )
        map.connect(
            '/data/site-usage/data_{month}.csv',
            controller='ckanext.ga_report.controller:GaReport',
            action='csv'
        )
        return map