mirror of
				https://github.com/fspc/workstand.git
				synced 2025-10-31 08:25:35 -04:00 
			
		
		
		
	Merge branch 'feature/search-view' into development
This commit is contained in:
		
						commit
						4982094d50
					
				| @ -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'), | ||||
|     }, | ||||
| } | ||||
							
								
								
									
										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') | ||||
| @ -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 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user