[yocto] [layerindex-web][PATCH 2/2] views: ensure exact matches on name are shown first in recipe search
Paul Eggleton
paul.eggleton at linux.intel.com
Tue Oct 18 20:56:35 PDT 2016
Improves slightly on 3155206e54413f72df3b3b41280eafd332a58ba4 by doing
an exact match on name and showing that first - now when you search for
"git" you really do get the git recipe first in the list.
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
layerindex/views.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/layerindex/views.py b/layerindex/views.py
index 3e78c58..7045a12 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -378,6 +378,9 @@ class RecipeSearchView(ListView):
if query_string.strip():
order_by = ('pn', 'layerbranch__layer')
+ qs0 = init_qs.filter(pn=query_string).order_by(*order_by)
+ qs0 = recipes_preferred_count(qs0)
+
entry_query = simplesearch.get_query(query_string, ['pn'])
qs1 = init_qs.filter(entry_query).order_by(*order_by)
qs1 = recipes_preferred_count(qs1)
@@ -386,7 +389,7 @@ class RecipeSearchView(ListView):
qs2 = init_qs.filter(entry_query).order_by(*order_by)
qs2 = recipes_preferred_count(qs2)
- qs = list(utils.chain_unique(qs1, qs2))
+ qs = list(utils.chain_unique(qs0, qs1, qs2))
else:
if 'q' in self.request.GET:
qs = init_qs.order_by('pn', 'layerbranch__layer')
@@ -732,13 +735,15 @@ class ClassicRecipeSearchView(RecipeSearchView):
if query_string.strip():
order_by = ('pn', 'layerbranch__layer')
+ qs0 = init_qs.filter(pn==query_string).order_by(*order_by)
+
entry_query = simplesearch.get_query(query_string, ['pn'])
qs1 = init_qs.filter(entry_query).order_by(*order_by)
entry_query = simplesearch.get_query(query_string, ['summary', 'description'])
qs2 = init_qs.filter(entry_query).order_by(*order_by)
- qs = list(utils.chain_unique(qs1, qs2))
+ qs = list(utils.chain_unique(qs0, qs1, qs2))
else:
if 'q' in self.request.GET:
qs = init_qs.order_by('pn', 'layerbranch__layer')
--
2.5.5
More information about the yocto
mailing list