[extensions-web] search: Extend versions before sending them to the query
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [extensions-web] search: Extend versions before sending them to the query
- Date: Fri, 12 Apr 2013 16:31:22 +0000 (UTC)
commit 8e9ee410b82b4cfa44aaa693443b86d5a8dfc924
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Fri Apr 12 12:30:42 2013 -0400
search: Extend versions before sending them to the query
Otherwise, an extension with full 3.6 compatibility may not appear
for a user using 3.6.1, or similar.
sweettooth/extensions/search.py | 2 +-
sweettooth/extensions/views.py | 22 +++++++++++-----------
2 files changed, 12 insertions(+), 12 deletions(-)
---
diff --git a/sweettooth/extensions/search.py b/sweettooth/extensions/search.py
index 1ac3c23..040aa7a 100644
--- a/sweettooth/extensions/search.py
+++ b/sweettooth/extensions/search.py
@@ -55,7 +55,7 @@ def combine_queries(op, queries):
return reduce(make_query, queries)
def make_version_queries(versions):
- queries = [xapian.Query("V%s" % (v,)) for v in versions]
+ queries = [xapian.Query("V%s" % (v.version_string,)) for v in versions]
return combine_queries(xapian.Query.OP_OR, queries)
def enquire(querystring, versions=None):
diff --git a/sweettooth/extensions/views.py b/sweettooth/extensions/views.py
index a64ed86..69e20e7 100644
--- a/sweettooth/extensions/views.py
+++ b/sweettooth/extensions/views.py
@@ -117,12 +117,10 @@ def shell_update(request):
return operations
-def ajax_query_params_query(request, n_per_page):
+def ajax_query_params_query(request, versions, n_per_page):
version_qs = models.ExtensionVersion.objects.visible()
- version_strings = request.GET.getlist('shell_version')
- if version_strings and version_strings not in (['all'], ['-1']):
- versions = set(get_versions_for_version_strings(version_strings))
+ if versions:
version_qs = version_qs.filter(shell_versions__in=versions)
queryset = models.Extension.objects.distinct().filter(versions__in=version_qs)
@@ -165,14 +163,10 @@ def ajax_query_params_query(request, n_per_page):
return page_obj.object_list, paginator.num_pages
-def ajax_query_search_query(request, n_per_page):
+def ajax_query_search_query(request, versions, n_per_page):
querystring = request.GET.get('search', '')
- version_strings = request.GET.getlist('shell_version')
- if version_strings in (['all'], ['-1']):
- version_strings = None
-
- database, enquire = search.enquire(querystring, version_strings)
+ database, enquire = search.enquire(querystring, versions)
page = request.GET.get('page', 1)
try:
@@ -208,12 +202,18 @@ def ajax_query_view(request):
except (KeyError, ValueError), e:
n_per_page = 10
+ version_strings = request.GET.getlist('shell_version')
+ if version_strings and version_strings not in (['all'], ['-1']):
+ versions = set(get_versions_for_version_strings(version_strings))
+ else:
+ versions = None
+
if request.GET.get('search', ''):
func = ajax_query_search_query
else:
func = ajax_query_params_query
- object_list, num_pages = func(request, n_per_page)
+ object_list, num_pages = func(request, versions, n_per_page)
return dict(extensions=[ajax_details(e) for e in object_list],
total=len(object_list),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]