mirror of
https://github.com/fspc/workstand.git
synced 2025-04-04 10:03:22 -04:00
Basic search endpoint.
This commit is contained in:
parent
8036e47c61
commit
99cd30ec25
9
bikeshop_project/registration/search_indexes.py
Normal file
9
bikeshop_project/registration/search_indexes.py
Normal 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
|
@ -0,0 +1,2 @@
|
||||
{{ object.email }}
|
||||
{{ object.get_full_name }}
|
@ -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')
|
||||
]
|
||||
|
@ -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')
|
Loading…
x
Reference in New Issue
Block a user