From 7643ba3ea18d053347ca7d95c9da6f800a7acb6d Mon Sep 17 00:00:00 2001 From: David Reyna Date: Mon, 24 Mar 2014 21:32:08 -0700 Subject: 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 Signed-off-by: Richard Purdie --- bitbake/lib/toaster/toastergui/views.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'bitbake') 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): else: queryset = queryset.order_by(column) - return queryset + # insure only distinct records (e.g. from multiple search hits) are returned + return queryset.distinct() # shows the "all builds" page def builds(request): @@ -1060,10 +1061,8 @@ def configvars(request, build_id): return _redirect_parameters( 'configvars', request.GET, mandatory_parameters, build_id = build_id) queryset = Variable.objects.filter(build=build_id).exclude(variable_name__istartswith='B_').exclude(variable_name__istartswith='do_') - queryset_with_search = _get_queryset(Variable, queryset, None, search_term, ordering_string).distinct().exclude(variable_value='',vhistory__file_name__isnull=True) + queryset_with_search = _get_queryset(Variable, queryset, None, search_term, ordering_string).exclude(variable_value='',vhistory__file_name__isnull=True) queryset = _get_queryset(Variable, queryset, filter_string, search_term, ordering_string) - # remove duplicate records from multiple search hits in the VariableHistory table - queryset = queryset.distinct() # remove records where the value is empty AND there are no history files queryset = queryset.exclude(variable_value='',vhistory__file_name__isnull=True) -- cgit v1.2.3-54-g00ecf