From 02a4997807ee995817d741985eea13d38e548007 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Mon, 9 Mar 2015 18:39:18 +0000 Subject: [PATCH] toastergui: improve data suggestion We improve the data suggestions in the project page. The machines suggestions now contain the layer name. The targets and machine do not show the layer branch. For targets, the layer name is searchable. For machines, the description field is searchable. [YOCTO #7153] [YOCTO #7154] Signed-off-by: Alexandru DAMIAN --- lib/toaster/toastergui/templates/project.html | 2 +- lib/toaster/toastergui/views.py | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/toaster/toastergui/templates/project.html b/lib/toaster/toastergui/templates/project.html index 06fc6a5b62b..f4a3a753586 100644 --- a/lib/toaster/toastergui/templates/project.html +++ b/lib/toaster/toastergui/templates/project.html @@ -355,7 +355,7 @@ vim: expandtab tabstop=2 You cannot really compare the builds for the new machine with the previous ones.
- + {% csrf_token %} diff --git a/lib/toaster/toastergui/views.py b/lib/toaster/toastergui/views.py index 9f0bb993e6f..9f1fbca2286 100755 --- a/lib/toaster/toastergui/views.py +++ b/lib/toaster/toastergui/views.py @@ -2353,7 +2353,8 @@ if toastermain.settings.MANAGED: # returns targets provided by current project layers if request.GET['type'] == "targets": - queryset_all = Recipe.objects.filter(name__icontains=request.GET.get('value','')) + search_token = request.GET.get('value','') + queryset_all = Recipe.objects.filter(Q(name__icontains=search_token) | Q(layer_version__layer__name__icontains=search_token) ) layer_equivalent_set = [] for i in prj.projectlayer_set.all(): layer_equivalent_set += i.layercommit.get_equivalents_wpriority(prj) @@ -2361,11 +2362,11 @@ if toastermain.settings.MANAGED: # if we have more than one hit here (for distinct name and version), max the id it out queryset_all_maxids = queryset_all.values('name').distinct().annotate(max_id=Max('id')).values_list('max_id') - queryset_all = queryset_all.filter(id__in = queryset_all_maxids).order_by("name") + queryset_all = queryset_all.filter(id__in = queryset_all_maxids).order_by("name").select_related("layer_version__layer") return HttpResponse(jsonfilter({ "error":"ok", - "list" : map ( lambda x: {"id": x.pk, "name": x.name, "detail":"[" + x.layer_version.layer.name + (" | " + x.layer_version.up_branch.name + "]" if x.layer_version.up_branch is not None else "]")}, + "list" : map ( lambda x: {"id": x.pk, "name": x.name, "detail":"[" + x.layer_version.layer.name +"]"}, queryset_all[:8]), }), content_type = "application/json") @@ -2376,10 +2377,11 @@ if toastermain.settings.MANAGED: if 'project_id' in request.session: queryset_all = queryset_all.filter(layer_version__in = prj.projectlayer_equivalent_set()).order_by("name") - return HttpResponse(jsonfilter({ "error":"ok", - "list" : map ( lambda x: {"id": x.pk, "name": x.name, "detail":"[" + x.layer_version.layer.name+ (" | " + x.layer_version.up_branch.name + "]" if x.layer_version.up_branch is not None else "]")}, - queryset_all.filter(name__icontains=request.GET.get('value',''))[:8]), + search_token = request.GET.get('value','') + querysetall = queryset_all.filter(Q(name__icontains=search_token) | Q(description__icontains=search_token)) + return HttpResponse(jsonfilter({ "error":"ok", + "list" : map ( lambda x: {"id": x.pk, "name": x.name, "detail":"[" + x.layer_version.layer.name+ "]"}, queryset_all[:8]) }), content_type = "application/json") # returns all projects -- 2.47.2