Skip to content
Snippets Groups Projects
Commit 450101cf authored by anonymous's avatar anonymous
Browse files

moves code from controller to action

parent 2d1782de
No related branches found
No related tags found
No related merge requests found
......@@ -15,10 +15,7 @@ from ckan.common import c, request, config
import hashlib
import ckan.plugins.toolkit as toolkit
from ckanext.dcat.controllers import DCATController
from ckan.lib.search.common import (
make_connection, SearchError, SearchQueryError
)
import pysolr
abort = base.abort
log = logging.getLogger(__name__)
......@@ -163,21 +160,3 @@ class OdshFeedController(FeedController):
feed_guid=_create_atom_id(atom_url),
feed_url=feed_url,
navigation_urls=navigation_urls)
class OdshAutocompleteController(ApiController):
def autocomplete(self, q):
query = {
'spellcheck.q': q,
'wt': 'json'}
conn = make_connection(decode_dates=False)
log.debug('Suggest query: %r' % query)
try:
solr_response = conn.search('', search_handler='suggest', **query)
except pysolr.SolrError as e:
raise SearchError('SOLR returned an error running query: %r Error: %r' %
(query, e))
suggest = solr_response.raw_response.get('spellcheck')
return base.response.body_file.write(str(suggest))
......@@ -9,11 +9,11 @@ $(function () {
html: true,
minLength: 2,
source: function (request, response) {
var url = ckan.SITE_ROOT + '/autocomplete/' + request.term;
$.getJSON(url)
var url = ckan.SITE_ROOT + '/api/action/autocomplete';
$.getJSON(url, {q: request.term})
.done(function (data) {
console.log(data);
response(data['result']);
response(data);
});
}
});
......
......@@ -3,6 +3,10 @@ from ckan.logic.action.create import package_create, user_create, group_member_c
import ckan.model as model
import ckan.lib.dictization.model_dictize as model_dictize
import ckan.plugins.toolkit as toolkit
from ckan.lib.search.common import (
make_connection, SearchError, SearchQueryError
)
import pysolr
log = logging.getLogger(__name__)
......@@ -33,3 +37,20 @@ def odsh_user_create(context, data_dict):
for group in groups:
group_member_create(context, {'id': group, 'username': user.get('name'), 'role': 'member'})
return model_dictize.user_dictize(model.User.get(user.get('name')), context)
def autocomplete(self, q):
query = {
'spellcheck.q': q,
'wt': 'json'}
conn = make_connection(decode_dates=False)
log.debug('Suggest query: %r' % query)
try:
solr_response = conn.search('', search_handler='suggest', **query)
except pysolr.SolrError as e:
raise SearchError('SOLR returned an error running query: %r Error: %r' %
(query, e))
suggest = solr_response.raw_response.get('spellcheck')
return suggest
......@@ -87,10 +87,8 @@ class OdshIcapPlugin(plugins.SingletonPlugin):
class OdshAutocompletePlugin(plugins.SingletonPlugin):
plugins.implements(plugins.IRoutes, inherit=True)
def before_map(self, map):
controller = 'ckanext.odsh.controller:OdshAutocompleteController'
map.connect('/autocomplete/{q}', controller=controller, action='autocomplete')
return map
def get_actions(self):
return {'autocomplete': action.autocomplete}
class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment