[yocto] [layerindex-web][PATCH] views: support querying by layer name
Jose Lamego
jose.a.lamego at linux.intel.com
Mon Apr 3 12:31:29 PDT 2017
This change supports querying recipes that belong to a specific layer
by using the prefix "layer:" + the desired layer name, for example:
"layer: openembedded-core" and this string can be used by itself or
combined with other supported options.
[YOCTO #6618]
Signed-off-by: Jose Lamego <jose.a.lamego at linux.intel.com>
---
layerindex/views.py | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/layerindex/views.py b/layerindex/views.py
index 65a536a..5b66892 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -383,13 +383,16 @@ class RecipeSearchView(ListView):
query_string = self.request.GET.get('q', '')
init_qs = Recipe.objects.filter(layerbranch__branch__name=self.kwargs['branch'])
- # Support slightly crude search on inherits field
+ # Support slightly crude search on inherits/layer fields
query_items = query_string.split()
inherits = []
+ layers = []
query_terms = []
for item in query_items:
if item.startswith('inherits:'):
inherits.append(item.split(':')[1])
+ elif item.startswith('layer:'):
+ layers.append(item.split(':')[1])
else:
query_terms.append(item)
if inherits:
@@ -397,6 +400,14 @@ class RecipeSearchView(ListView):
for inherit in inherits:
init_qs = init_qs.filter(Q(inherits=inherit) | Q(inherits__startswith=inherit + ' ') | Q(inherits__endswith=' ' + inherit) | Q(inherits__contains=' %s ' % inherit))
query_string = ' '.join(query_terms)
+ if layers:
+ for layer in layers:
+ init_qs = init_qs.filter(
+ Q(layerbranch__layer__name=layer) |
+ Q(layerbranch__layer__name__startswith=layer + ' ') |
+ Q(layerbranch__layer__name__endswith=' ' + layer) |
+ Q(layerbranch__layer__name__contains=' %s ' % layer))
+ query_string = ' '.join(query_terms)
if query_string.strip():
order_by = ('pn', 'layerbranch__layer')
--
2.7.4
More information about the yocto
mailing list