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 62 63 64 | import logging import ckan.lib.helpers as h import ckan.plugins as p from ckan.plugins import implements, toolkit from ckanext.ga_report.helpers import (most_popular_datasets, popular_datasets) 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. """ return { 'ga_report_installed': lambda: True, 'popular_datasets': popular_datasets, '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 |