[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GMG-Devel] [PATCH 26/83] Add view to handle search queries.
From: |
Alon Levy |
Subject: |
[GMG-Devel] [PATCH 26/83] Add view to handle search queries. |
Date: |
Tue, 25 Feb 2014 21:58:09 +0200 |
From: Praveen Kumar <address@hidden>
---
mediagoblin/plugins/search/views.py | 50 +++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
create mode 100644 mediagoblin/plugins/search/views.py
diff --git a/mediagoblin/plugins/search/views.py
b/mediagoblin/plugins/search/views.py
new file mode 100644
index 0000000..028c91d
--- /dev/null
+++ b/mediagoblin/plugins/search/views.py
@@ -0,0 +1,50 @@
+import logging
+
+from mediagoblin.plugins.search import forms
+from mediagoblin.plugins.search import registry
+
+from mediagoblin.tools.response import render_to_response, redirect
+
+
+_log = logging.getLogger(__name__)
+
+
+def search_in_indices(request, query):
+ indices = registry.IndexRegistry.indices()
+ all_results = []
+ for index in indices.itervalues():
+ results = index.search(query)
+ if len(results)>0:
+ for result in results:
+ obj_id = result['id']
+ obj = index.model.query.get(obj_id)
+ all_results.append({
+ 'slug': obj.slug,
+ 'url': obj.url_for_self(request.urlgen),
+ })
+ return all_results
+
+def search(request):
+ form = forms.SearchForm(request.form)
+ query = None
+
+ context = {
+ 'form': form,
+ 'results': None,
+ 'query': query,
+ 'results_found': False,
+ }
+
+ if request.method == 'POST' and form.validate():
+ query = form.query.data
+ all_results = search_in_indices(request, query)
+ context.update({
+ 'results': all_results,
+ 'results_found': True,
+ 'query': query,
+ })
+
+ return render_to_response(request, 'mediagoblin/search/search.html',
+ context)
+
+ render_to_response(request, 'mediagoblin/search/search.html', context)
--
1.8.5.3
- [GMG-Devel] [PATCH 16/83] Correct the index identifier., (continued)
- [GMG-Devel] [PATCH 16/83] Correct the index identifier., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 17/83] Collect all indices in indices.py, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 18/83] Add method to create a document from a model instance, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 19/83] Add event listeners for tracking ORM events for indices., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 20/83] Register indices and orm events for search., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 21/83] Fix bugs and add search method in SearchIndex, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 23/83] Add ORMEventsListener class to implement the ORM Events, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 22/83] Add ListenerRegistry class to collect all the listeners., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 24/83] Correct indentations in search.__init__, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 25/83] Add search forms., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 26/83] Add view to handle search queries.,
Alon Levy <=
- [GMG-Devel] [PATCH 27/83] Add html template for search page., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 28/83] Fix bugs, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 29/83] Add methods to interpret results by the SearchIndex object, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 30/83] fix parameters in search views, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 31/83] Refactor SearchIndex and add method to update an index., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 32/83] Add event listener for model update, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 33/83] Add listener for model delete event., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 34/83] Fix bugs in SearchIndex, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 35/83] Add indices for MediaEntry and MediaTag., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 36/83] Add schema for MediaTag., Alon Levy, 2014/02/25