1
0
mirror of https://github.com/fspc/workstand.git synced 2025-02-23 09:13:23 -05:00

Merge branch 'feature/search-view' into development

This commit is contained in:
Drew Larson 2016-06-01 21:05:48 -06:00
commit 4982094d50
6 changed files with 42 additions and 6 deletions

View File

@ -29,7 +29,7 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'haystack',
'webpack_loader',
'compressor',
@ -142,4 +142,11 @@ WEBPACK_LOADER = {
'POLL_INTERVAL': 0.1,
'IGNORE': ['.+\.hot-update.js', '.+\.map']
}
}
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'),
},
}

View File

@ -0,0 +1,9 @@
from haystack import indexes
from .models import Member
class MemberIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
def get_model(self):
return Member

View File

@ -0,0 +1,2 @@
{{ object.email }}
{{ object.get_full_name }}

View File

@ -1,7 +1,8 @@
from django.conf.urls import url
from .views import MemberFormView
from .views import MemberFormView, MemberSearchView
urlpatterns = [
url(r'^new/$', MemberFormView.as_view(), name='signup'),
url(r'^search/(?P<query>[\w@\.\+]+)/$', MemberSearchView.as_view(), name='member_search'),
url(r'^edit/(?P<member_id>[0-9]+)/$', MemberFormView.as_view(), name='member_edit')
]

View File

@ -1,12 +1,17 @@
import logging
from django.contrib import messages
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseRedirect
from django.template.response import TemplateResponse
from django.views.generic import View
from django.core.urlresolvers import reverse
import json
from haystack.query import SearchQuerySet
from .forms import MemberForm
from .models import Member
import logging
logger = logging.getLogger('bikeshop')
@ -46,3 +51,13 @@ class MemberFormView(View):
if member:
context['member'] = member
return TemplateResponse(request, 'member_form.html', context=context)
class MemberSearchView(View):
def get(self, request, query):
sqs = SearchQuerySet().models(Member).autocomplete(text=query)[:5]
results = [dict(name=result.object.get_full_name(), email=result.object.email, id=result.object.id) for result in sqs]
data = json.dumps(dict(results=results))
return HttpResponse(data, content_type='application/json')

View File

@ -4,4 +4,6 @@ django-widget-tweaks==1.4.1
psycopg2==2.6.1
django-libsass==0.6
django_compressor==2.0
python-dateutil==2.5.3
python-dateutil==2.5.3
whoosh==2.7.4
git+git://github.com/django-haystack/django-haystack.git