summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
authorDavid Reyna <David.Reyna@windriver.com>2014-03-24 21:32:08 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-28 13:44:51 +0000
commit7643ba3ea18d053347ca7d95c9da6f800a7acb6d (patch)
tree565c56328039bec029de9c3e20dfef182bad2ae5 /bitbake/lib
parent056fbc47c76f5ff238fb01302f0dce457dabc08d (diff)
downloadpoky-7643ba3ea18d053347ca7d95c9da6f800a7acb6d.tar.gz
bitbake: toaster: insure _get_query returns distinct records
The '_get_query' can return duplicate records if a search term appears multiple times in the same row, so the queryset must be made distinct before returning. This commit also removes the initial special case for configvars in favor of this general solution. [YOCTO #6012] (Bitbake rev: d21b64bad8a6a5e23eab552868d555f6e004f4c7) Signed-off-by: David Reyna <David.Reyna@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/toaster/toastergui/views.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index 4f31ddb4bf..8f6e201ec2 100644
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -192,7 +192,8 @@ def _get_queryset(model, queryset, filter_string, search_term, ordering_string):
192 else: 192 else:
193 queryset = queryset.order_by(column) 193 queryset = queryset.order_by(column)
194 194
195 return queryset 195 # insure only distinct records (e.g. from multiple search hits) are returned
196 return queryset.distinct()
196 197
197# shows the "all builds" page 198# shows the "all builds" page
198def builds(request): 199def builds(request):
@@ -1060,10 +1061,8 @@ def configvars(request, build_id):
1060 return _redirect_parameters( 'configvars', request.GET, mandatory_parameters, build_id = build_id) 1061 return _redirect_parameters( 'configvars', request.GET, mandatory_parameters, build_id = build_id)
1061 1062
1062 queryset = Variable.objects.filter(build=build_id).exclude(variable_name__istartswith='B_').exclude(variable_name__istartswith='do_') 1063 queryset = Variable.objects.filter(build=build_id).exclude(variable_name__istartswith='B_').exclude(variable_name__istartswith='do_')
1063 queryset_with_search = _get_queryset(Variable, queryset, None, search_term, ordering_string).distinct().exclude(variable_value='',vhistory__file_name__isnull=True) 1064 queryset_with_search = _get_queryset(Variable, queryset, None, search_term, ordering_string).exclude(variable_value='',vhistory__file_name__isnull=True)
1064 queryset = _get_queryset(Variable, queryset, filter_string, search_term, ordering_string) 1065 queryset = _get_queryset(Variable, queryset, filter_string, search_term, ordering_string)
1065 # remove duplicate records from multiple search hits in the VariableHistory table
1066 queryset = queryset.distinct()
1067 # remove records where the value is empty AND there are no history files 1066 # remove records where the value is empty AND there are no history files
1068 queryset = queryset.exclude(variable_value='',vhistory__file_name__isnull=True) 1067 queryset = queryset.exclude(variable_value='',vhistory__file_name__isnull=True)
1069 1068