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

moves code from controller to action

parent 2d1782de
Branches
Tags
No related merge requests found
...@@ -15,10 +15,7 @@ from ckan.common import c, request, config ...@@ -15,10 +15,7 @@ from ckan.common import c, request, config
import hashlib import hashlib
import ckan.plugins.toolkit as toolkit import ckan.plugins.toolkit as toolkit
from ckanext.dcat.controllers import DCATController from ckanext.dcat.controllers import DCATController
from ckan.lib.search.common import (
make_connection, SearchError, SearchQueryError
)
import pysolr
abort = base.abort abort = base.abort
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
...@@ -163,21 +160,3 @@ class OdshFeedController(FeedController): ...@@ -163,21 +160,3 @@ class OdshFeedController(FeedController):
feed_guid=_create_atom_id(atom_url), feed_guid=_create_atom_id(atom_url),
feed_url=feed_url, feed_url=feed_url,
navigation_urls=navigation_urls) 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 () { ...@@ -9,11 +9,11 @@ $(function () {
html: true, html: true,
minLength: 2, minLength: 2,
source: function (request, response) { source: function (request, response) {
var url = ckan.SITE_ROOT + '/autocomplete/' + request.term; var url = ckan.SITE_ROOT + '/api/action/autocomplete';
$.getJSON(url) $.getJSON(url, {q: request.term})
.done(function (data) { .done(function (data) {
console.log(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 ...@@ -3,6 +3,10 @@ from ckan.logic.action.create import package_create, user_create, group_member_c
import ckan.model as model import ckan.model as model
import ckan.lib.dictization.model_dictize as model_dictize import ckan.lib.dictization.model_dictize as model_dictize
import ckan.plugins.toolkit as toolkit import ckan.plugins.toolkit as toolkit
from ckan.lib.search.common import (
make_connection, SearchError, SearchQueryError
)
import pysolr
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
...@@ -33,3 +37,20 @@ def odsh_user_create(context, data_dict): ...@@ -33,3 +37,20 @@ def odsh_user_create(context, data_dict):
for group in groups: for group in groups:
group_member_create(context, {'id': group, 'username': user.get('name'), 'role': 'member'}) group_member_create(context, {'id': group, 'username': user.get('name'), 'role': 'member'})
return model_dictize.user_dictize(model.User.get(user.get('name')), context) 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): ...@@ -87,10 +87,8 @@ class OdshIcapPlugin(plugins.SingletonPlugin):
class OdshAutocompletePlugin(plugins.SingletonPlugin): class OdshAutocompletePlugin(plugins.SingletonPlugin):
plugins.implements(plugins.IRoutes, inherit=True) plugins.implements(plugins.IRoutes, inherit=True)
def before_map(self, map): def get_actions(self):
controller = 'ckanext.odsh.controller:OdshAutocompleteController' return {'autocomplete': action.autocomplete}
map.connect('/autocomplete/{q}', controller=controller, action='autocomplete')
return map
class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm): 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