Move API google analytics and AGLS metadata to seperate extensions
[ckanext-datagovau.git] / ckanext / datagovau / plugin.py
blob:a/ckanext/datagovau/plugin.py -> blob:b/ckanext/datagovau/plugin.py
--- a/ckanext/datagovau/plugin.py
+++ b/ckanext/datagovau/plugin.py
@@ -6,22 +6,9 @@
 import ckan.plugins.toolkit as tk
 import ckan.model as model
 from pylons import config
-from routes.mapper import SubMapper, Mapper as _Mapper
 
 from sqlalchemy import orm
 import ckan.model
-
-#parse the activity feed for last active non-system user
-def get_last_active_user(id):
-    system_user = lib.helpers.get_action('user_show',{'id': config.get('ckan.site_id', 'ckan_site_user')})
-    user_list = [x for x in lib.helpers.get_action('package_activity_list',{'id':id}) if x['user_id'] != system_user['id']]
-    user = None
-    if len(user_list) > 0:
-    	user = user_list[0].get('user_id', None)
-    if user is None:
-	return system_user
-    else:
-	return lib.helpers.get_action('user_show',{'id':user})
 
 # get user created datasets and those they have edited
 def get_user_datasets(user_dict):
@@ -43,57 +30,7 @@
 
     '''
     plugins.implements(plugins.IConfigurer, inherit=False)
-    plugins.implements(plugins.IDatasetForm, inherit=False)
     plugins.implements(plugins.ITemplateHelpers, inherit=False)
-    plugins.implements(plugins.IRoutes, inherit=True)
-
-    def before_map(self, map):
-
-	# Helpers to reduce code clutter
-	GET = dict(method=['GET'])
-	PUT = dict(method=['PUT'])
-	POST = dict(method=['POST'])
-	DELETE = dict(method=['DELETE'])
-	GET_POST = dict(method=['GET', 'POST'])
-	# intercept API calls that we want to capture analytics on
-	register_list = [
-        	'package',
-        	'dataset',
-        	'resource',
-	        'tag',
-	        'group',
-	        'related',
-	        'revision',
-	        'licenses',
-	        'rating',
-	        'user',
-	        'activity'
-	    ]
-	register_list_str = '|'.join(register_list)
-	# /api ver 3 or none
-	with SubMapper(map, controller='ckanext.datagovau.controller:DGAApiController', path_prefix='/api{ver:/3|}',
-	                ver='/3') as m:
-		m.connect('/action/{logic_function}', action='action',
-	                  conditions=GET_POST)
-
-	# /api ver 1, 2, 3 or none
-	with SubMapper(map, controller='ckanext.datagovau.controller:DGAApiController', path_prefix='/api{ver:/1|/2|/3|}',
-	                   ver='/1') as m:
-		m.connect('/search/{register}', action='search')
-	
-	# /api/rest ver 1, 2 or none
-	with SubMapper(map, controller='ckanext.datagovau.controller:DGAApiController', path_prefix='/api{ver:/1|/2|}',
-	                   ver='/1', requirements=dict(register=register_list_str)
-	                   ) as m:
-
-		m.connect('/rest/{register}', action='list', conditions=GET)
-		m.connect('/rest/{register}', action='create', conditions=POST)
-	        m.connect('/rest/{register}/{id}', action='show', conditions=GET)
-	        m.connect('/rest/{register}/{id}', action='update', conditions=PUT)
-	        m.connect('/rest/{register}/{id}', action='update', conditions=POST)
-	        m.connect('/rest/{register}/{id}', action='delete', conditions=DELETE)
-
-        return map
 
     def update_config(self, config):
         # Add this plugin's templates dir to CKAN's extra_template_paths, so
@@ -107,112 +44,6 @@
         # config['licenses_group_url'] = 'http://%(ckan.site_url)/licenses.json'
 
     def get_helpers(self):
-        return {'get_last_active_user': get_last_active_user, 'get_user_datasets': get_user_datasets}
-
-    def is_fallback(self):
-        # Return True to register this plugin as the default handler for
-        # package types not handled by any other IDatasetForm plugin.
-        return True
-
-    def package_types(self):
-        # This plugin doesn't handle any special package types, it just
-        # registers itself as the default (above).
-        return []
+        return {'get_user_datasets': get_user_datasets}
 
 
-    def create_package_schema(self):
-        schema = super(DataGovAuPlugin, self).create_package_schema()
-        schema = self._modify_package_schema(schema)
-        return schema
-
-    def update_package_schema(self):
-        schema = super(DataGovAuPlugin, self).update_package_schema()
-        schema = self._modify_package_schema(schema)
-        return schema
-
-    def show_package_schema(self):
-        schema = super(DataGovAuPlugin, self).show_package_schema()
-
-        # Don't show vocab tags mixed in with normal 'free' tags
-        # (e.g. on dataset pages, or on the search page)
-        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))
-
-        # Add our custom_text field to the dataset schema.
-        # ignore_missing == optional
-        # ignore_empty == mandatory but not for viewing
-        # !!! always convert_from_extras first
-        schema.update({
-            'agency_program': [tk.get_converter('convert_from_extras'),
-                               tk.get_validator('ignore_missing')],
-            'contact_point': [tk.get_converter('convert_from_extras'),
-                              tk.get_validator('ignore_empty')],
-            'spatial_coverage': [tk.get_converter('convert_from_extras'),
-                                 tk.get_validator('ignore_empty')],
-            'granularity': [tk.get_converter('convert_from_extras'),
-                            tk.get_validator('ignore_empty')],
-            'jurisdiction': [tk.get_converter('convert_from_extras'),
-                             tk.get_validator('ignore_empty')],
-            'temporal_coverage': [tk.get_converter('convert_from_extras'),
-                                  tk.get_validator('ignore_empty')],
-            'data_state': [tk.get_converter('convert_from_extras'),
-                           tk.get_validator('ignore_empty')],
-            'update_freq': [tk.get_converter('convert_from_extras'),
-                            tk.get_validator('ignore_empty')]
-        })
-        return schema
-
-    def _modify_package_schema(self, schema):
-        # Add our custom_test metadata field to the schema, this one will use
-        # convert_to_extras instead of convert_to_tags.
-        # ignore_missing == optional
-        # not_empty == mandatory, enforced here while modifying
-
-        schema.update({
-            'agency_program': [tk.get_validator('ignore_missing'),
-                               tk.get_converter('convert_to_extras')],
-            'contact_point': [tk.get_converter('convert_to_extras'),
-                              tk.get_validator('not_empty')],
-            'spatial_coverage': [tk.get_converter('convert_to_extras'),
-                                 tk.get_validator('not_empty')],
-            'granularity': [tk.get_converter('convert_to_extras'),
-                            tk.get_validator('not_empty')],
-            'jurisdiction': [tk.get_converter('convert_to_extras'),
-                             tk.get_validator('not_empty')],
-            'temporal_coverage': [tk.get_converter('convert_to_extras'),
-                                  tk.get_validator('not_empty')],
-            'data_state': [tk.get_converter('convert_to_extras'),
-                           tk.get_validator('not_empty')],
-            'update_freq': [tk.get_converter('convert_to_extras'),
-                            tk.get_validator('not_empty')]
-        })
-        return schema
-
-    # These methods just record how many times they're called, for testing
-    # purposes.
-    # TODO: It might be better to test that custom templates returned by
-    # these methods are actually used, not just that the methods get
-    # called.
-
-    def setup_template_variables(self, context, data_dict):
-        return super(DataGovAuPlugin, self).setup_template_variables(
-            context, data_dict)
-
-    def new_template(self):
-        return super(DataGovAuPlugin, self).new_template()
-
-    def read_template(self):
-        return super(DataGovAuPlugin, self).read_template()
-
-    def edit_template(self):
-        return super(DataGovAuPlugin, self).edit_template()
-
-    def search_template(self):
-        return super(DataGovAuPlugin, self).search_template()
-
-    def history_template(self):
-        return super(DataGovAuPlugin, self).history_template()
-
-    def package_form(self):
-        return super(DataGovAuPlugin, self).package_form()
-
-