diff --git a/ckanext/odsh/controller.py b/ckanext/odsh/controller.py index c7977b5bac39a15387284c55e094b83f48875fce..fb271c2741a8506a235f54ef239f8ff97bc34d36 100644 --- a/ckanext/odsh/controller.py +++ b/ckanext/odsh/controller.py @@ -2,79 +2,15 @@ from types import FunctionType import ckan.lib.base as base import decorator from ckanext.harvest.controllers.view import ViewController as HarvestController -from ckan.controllers.feed import FeedController -from ckan.controllers.feed import FeedController, ITEMS_LIMIT, _package_search, _create_atom_id -import ckan.lib.helpers as h import ckan.authz as authz import logging import ckan.logic as logic -from ckan.common import request, config abort = base.abort log = logging.getLogger(__name__) render = base.render get_action = logic.get_action - -class OdshFeedController(FeedController): - def custom(self): - extra_fields = ['ext_startdate', 'ext_enddate', - 'ext_bbox', 'ext_prev_extent'] - q = request.params.get('q', '') - fq = '' - search_params = {} - extras = {} - for (param, value) in list(request.params.items()): - if param not in ['q', 'page', 'sort'] + extra_fields \ - and len(value) and not param.startswith('_'): - search_params[param] = value - fq += ' %s:"%s"' % (param, value) - if param in extra_fields: - extras[param] = value - search_params['extras'] = extras - - page = h.get_page_number(request.params) - - limit = ITEMS_LIMIT - data_dict = { - 'q': q, - 'fq': fq, - 'start': (page - 1) * limit, - 'rows': limit, - 'sort': request.params.get('sort', None), - 'extras': extras - } - - item_count, results = _package_search(data_dict) - - navigation_urls = self._navigation_urls(request.params, - item_count=item_count, - limit=data_dict['rows'], - controller='feeds', - action='custom') - - feed_url = self._feed_url(request.params, - controller='feed', - action='custom') - - atom_url = h._url_with_params('/feeds/custom.atom', - list(search_params.items())) - - alternate_url = self._alternate_url(request.params) - - site_title = config.get('ckan.site_title', 'CKAN') - - return self.output_feed(results, - feed_title='%s - Custom query' % site_title, - feed_description='Recently created or updated' - ' datasets on %s. Custom query: \'%s\'' % - (site_title, q), - feed_link=alternate_url, - feed_guid=_create_atom_id(atom_url), - feed_url=feed_url, - navigation_urls=navigation_urls) - - def only_admin(func, *args, **kwargs): if not authz.is_sysadmin(c.user): abort(404) diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py index 41af53d1100203add3e8b9bdbd4314675ab64e99..4bfec2438a8e699cc2b7f2dac42118a3876b9086 100644 --- a/ckanext/odsh/plugin.py +++ b/ckanext/odsh/plugin.py @@ -2,20 +2,13 @@ from dateutil.parser import parse import json import logging -from multiline_formatter.formatter import MultilineMessagesFormatter -import os -from routes.mapper import SubMapper -import sys from collections import OrderedDict -from flask import Blueprint # imports from ckan -import ckan.lib.helpers as helpers from ckan.lib.plugins import DefaultTranslation, DefaultDatasetForm from ckan.logic.validators import tag_string_convert import ckan.plugins as plugins import ckan.plugins.toolkit as toolkit -import ckan.model as model # imports from this extension import ckanext.odsh.helpers as odsh_helpers @@ -25,14 +18,13 @@ from .helper_pkg_dict import HelperPgkDict import ckanext.odsh.logic.action as action import ckanext.odsh.validation as validation import ckanext.odsh.search as search -from ckanext.odsh.odsh_logger import OdshLogger import ckanext.odsh.tools as tools from ckanext.odsh.views import default from ckanext.odsh.views import package from ckanext.odsh.views import user from ckanext.odsh.views import dashboard from ckanext.odsh.views import harvest -from ckanext.dcat import blueprints as dcat_view +#from ckanext.dcat import blueprints as dcat_view log = logging.getLogger(__name__) @@ -45,7 +37,6 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm plugins.implements(plugins.IDatasetForm) plugins.implements(plugins.IFacets) plugins.implements(plugins.IPackageController, inherit=True) - plugins.implements(plugins.IRoutes, inherit=True) plugins.implements(plugins.ITemplateHelpers) plugins.implements(plugins.ITranslation) plugins.implements(plugins.IValidators) @@ -118,8 +109,8 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm toolkit.add_public_directory(config_, 'public') toolkit.add_resource('fanstatic', 'ckanext-odsh') - # IDatasetForm - + def after_map(self, map): + return map def package_types(self): # This plugin doesn't handle any special package types, it just # registers itself as the default (above). @@ -296,52 +287,6 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm return dict_pkg - # IRoutes - - map.redirect('/dataset/{id}/resource/{resource_id}', '/dataset/{id}') - - with SubMapper(map, controller='ckanext.odsh.controller:OdshFeedController') as m: - m.connect('/feeds/custom.atom', action='custom') - - - # redirect all user routes to custom controller - # with SubMapper(map, controller='ckanext.odsh.controller:OdshUserController') as m: - # m.connect('/user/edit', action='edit') - # m.connect( - # 'user_edit', '/user/edit/{id:.*}', action='edit', ckan_icon='cog') - # m.connect('user_delete', '/user/delete/{id}', action='delete') - # m.connect('/user/reset/{id:.*}', action='perform_reset') - # m.connect('/user/reset', action='request_reset') - # m.connect('register', '/user/register', action='register') - # m.connect('login', '/user/login', action='login') - # m.connect('/user/_logout', action='logout') - # m.connect('/user/logged_in', action='logged_in') - # m.connect('/user/logged_out', action='logged_out') - # m.connect('/user/logged_out_redirect', action='logged_out_page') - # m.connect('user_datasets', '/user/{id:(?!(generate_key|activity)).*}', action='read', - # ckan_icon='sitemap') - - map.connect( - 'comment_datarequest', - '/datarequest/new', - controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI', - action='new', - conditions=dict(method=['GET', 'POST']), - ckan_icon='comment' - ) - map.connect( - 'comment_datarequest', - '/datarequest/{id}', - controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI', - action='comment', - conditions=dict(method=['GET', 'POST']), - ckan_icon='comment' - ) - return map - - def after_map(self, map): - return map - # ITemplateHelpers def get_helpers(self):