Skip to contentSkip to conversation

search enhancements

PATCH New Alex Franco 1 participant 3 messages Oct 30, 2015

lore
Share & tools
lore
#0 lore raw

cover search enhancements

Take layer name into account when searching for recipes and change recipe search results behavior so that when a single search result is returned, it redirects to that recipe detail view.

[YOCTO #6618]

Alex Franco (2):
[layerindex-web] views.py: single result redirect [layerindex-web] views.py: layer in recipe search

 layerindex/views.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
Signature · 1 line
2.6.1
#1 lore raw

PATCH 1/2 views.py: single result redirect

When the recipe search returns a single result, redirect to it instead of showing the full result list view.

[YOCTO #6618]

---
 layerindex/views.py | 6 ++++++
 1 file changed, 6 insertions(+)
layerindex/views.py +6 -0
index 7e877ac..8be3311 100644
@@ -368,6 +368,12 @@ class RecipeSearchView(ListView):
     context_object_name = 'recipe_list'
     paginate_by = 50
 
+    def render_to_response(self, context, **kwargs):
+        if len(self.object_list) == 1:
+            return HttpResponseRedirect("/layerindex/recipe/%s/" % self.object_list[0].id)
+        else:
+            return super(ListView, self).render_to_response(context, **kwargs)
+
     def get_queryset(self):
         _check_url_branch(self.kwargs)
         query_string = self.request.GET.get('q', '')
Signature · 1 line
2.6.1
#2 lore raw

PATCH 2/2 views.py: layer in recipe search

In reply to Alex Franco

Take layer name into account when searching for recipes. This is accomplished by adding a layer name to the simplesearch.getquery call in the recipe search view.

[YOCTO #6618]

---
 layerindex/views.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
layerindex/views.py +1 -1
index 8be3311..c85940b 100644
@@ -379,7 +379,7 @@ class RecipeSearchView(ListView):
         query_string = self.request.GET.get('q', '')
         init_qs = Recipe.objects.filter(layerbranch__branch__name=self.kwargs['branch'])
         if query_string.strip():
-            entry_query = simplesearch.get_query(query_string, ['pn', 'summary', 'description', 'filename'])
+            entry_query = simplesearch.get_query(query_string, ['pn', 'summary', 'description', 'filename', 'layerbranch__layer__name'])
             qs = init_qs.filter(entry_query).order_by('pn', 'layerbranch__layer')
         else:
             if 'q' in self.request.GET:
Signature · 1 line
2.6.1