diff --git a/ckanext/spatial/plugin.py b/ckanext/spatial/plugin.py index 92efbc8..0d0205d 100644 --- a/ckanext/spatial/plugin.py +++ b/ckanext/spatial/plugin.py @@ -5,11 +5,10 @@ from logging import getLogger from pylons import config -import shapely + from ckan import plugins as p -from ckan.lib.search import SearchError, PackageSearchQuery from ckan.lib.helpers import json @@ -38,10 +37,6 @@ def check_geoalchemy_requirement(): check_geoalchemy_requirement() - -from ckanext.spatial.lib import save_package_extent, validate_bbox, bbox_query, bbox_query_ordered -from ckanext.spatial.model.package_extent import setup as setup_model - log = getLogger(__name__) @@ -73,8 +68,11 @@ class SpatialMetadata(p.SingletonPlugin): p.implements(p.ITemplateHelpers, inherit=True) def configure(self, config): + from ckanext.spatial.model.package_extent import setup as setup_model if not p.toolkit.asbool(config.get('ckan.spatial.testing', 'False')): + print "*" * 100 + print "Setting up the models" setup_model() def update_config(self, config): @@ -101,6 +99,8 @@ class SpatialMetadata(p.SingletonPlugin): For a given package, looks at the spatial extent (as given in the extra "spatial" in GeoJSON format) and records it in PostGIS. ''' + from ckanext.spatial.lib import save_package_extent + if not package.id: log.warning('Couldn\'t store spatial extent because no id was provided for the package') return @@ -139,6 +139,7 @@ class SpatialMetadata(p.SingletonPlugin): def delete(self, package): + from ckanext.spatial.lib import save_package_extent save_package_extent(package.id,None) ## ITemplateHelpers @@ -175,6 +176,7 @@ class SpatialQuery(p.SingletonPlugin): return map def before_index(self, pkg_dict): + import shapely if pkg_dict.get('extras_spatial', None) and self.search_backend in ('solr', 'solr-spatial-field'): try: @@ -235,6 +237,9 @@ class SpatialQuery(p.SingletonPlugin): return pkg_dict def before_search(self, search_params): + from ckanext.spatial.lib import validate_bbox + from ckan.lib.search import SearchError + if search_params.get('extras', None) and search_params['extras'].get('ext_bbox', None): bbox = validate_bbox(search_params['extras']['ext_bbox']) @@ -320,6 +325,8 @@ class SpatialQuery(p.SingletonPlugin): return search_params def _params_for_postgis_search(self, bbox, search_params): + from ckanext.spatial.lib import bbox_query, bbox_query_ordered + from ckan.lib.search import SearchError # Note: This will be deprecated at some point in favour of the # Solr 4 spatial sorting capabilities @@ -367,6 +374,7 @@ class SpatialQuery(p.SingletonPlugin): return search_params def after_search(self, search_results, search_params): + from ckan.lib.search import PackageSearchQuery # Note: This will be deprecated at some point in favour of the # Solr 4 spatial sorting capabilities