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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | 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, single_popular_dataset, month_option_title) 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, 'single_popular_dataset': single_popular_dataset, 'month_option_title': month_option_title } def after_map(self, map): # GaReport map.connect( '/site-usage', controller='ckanext.ga_report.controller:GaReport', action='index' ) map.connect( '/site-usage_{month}.csv', controller='ckanext.ga_report.controller:GaReport', action='csv' ) map.connect( '/site-usage/downloads', controller='ckanext.ga_report.controller:GaReport', action='downloads' ) map.connect( '/site-usage/downloads_{month}.csv', controller='ckanext.ga_report.controller:GaReport', action='csv_downloads' ) # GaDatasetReport map.connect( '/site-usage/publisher', controller='ckanext.ga_report.controller:GaDatasetReport', action='publishers' ) map.connect( '/site-usage/publishers_{month}.csv', controller='ckanext.ga_report.controller:GaDatasetReport', action='publisher_csv' ) map.connect( '/site-usage/dataset/datasets_{id}_{month}.csv', controller='ckanext.ga_report.controller:GaDatasetReport', action='dataset_csv' ) map.connect( '/site-usage/dataset', controller='ckanext.ga_report.controller:GaDatasetReport', action='read' ) map.connect( '/site-usage/dataset/{id}', controller='ckanext.ga_report.controller:GaDatasetReport', action='read_publisher' ) return map |