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.lam...@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 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto