[Toaster] [PATCH 2/2] toaster: fix sorting after hiding a column in build tables
Michael Wood
michael.g.wood at intel.com
Tue Apr 19 09:32:11 PDT 2016
Sent to bitbake-devel and added to toaster-next
Thanks,
Michael
On 29/03/16 10:07, Elliot Smith wrote:
> When hiding a column in the build tasks or build packages included
> table, if the column is set as the current order by for the table, the
> order by is not reset to the default. The result is that the table
> stays sorted by the hidden column.
>
> Set the default_orderby for these two tables correctly to ensure the
> corresponding table is re-sorted when a column is hidden, if that column
> was being used as the order by.
>
> [YOCTO #9011]
>
> Signed-off-by: Elliot Smith <elliot.smith at intel.com>
> ---
> .../lib/toaster/toastergui/templates/tasks.html | 2 +-
> bitbake/lib/toaster/toastergui/views.py | 50 +++++++++++-----------
> 2 files changed, 26 insertions(+), 26 deletions(-)
>
> diff --git a/bitbake/lib/toaster/toastergui/templates/tasks.html b/bitbake/lib/toaster/toastergui/templates/tasks.html
> index 23eb957..84bc103 100644
> --- a/bitbake/lib/toaster/toastergui/templates/tasks.html
> +++ b/bitbake/lib/toaster/toastergui/templates/tasks.html
> @@ -131,7 +131,7 @@
> <script type="text/javascript">
>
> $(document).ready(function() {
> - // enable blue hightlight animation for the order link
> + // highlight heading on the column for the field used for ordering
> if (location.href.search('#') > -1) {
> var task_order = location.href.split('#')[1];
> $("#" + task_order).addClass("highlight");
> diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
> index cc7ad17..71c74e2 100755
> --- a/bitbake/lib/toaster/toastergui/views.py
> +++ b/bitbake/lib/toaster/toastergui/views.py
> @@ -662,7 +662,9 @@ def recipe_packages(request, build_id, recipe_id):
>
> def target_common( request, build_id, target_id, variant ):
> template = "target.html"
> - (pagesize, orderby) = _get_parameters_values(request, 25, 'name:+')
> + default_orderby = 'name:+'
> +
> + (pagesize, orderby) = _get_parameters_values(request, 25, default_orderby)
> mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby': orderby }
> retval = _verify_parameters( request.GET, mandatory_parameters )
> if retval:
> @@ -682,8 +684,6 @@ def target_common( request, build_id, target_id, variant ):
> queryset = queryset.select_related("recipe", "recipe__layer_version", "recipe__layer_version__layer")
> packages = _build_page_range( Paginator(queryset, pagesize), request.GET.get( 'page', 1 ))
>
> -
> -
> build = Build.objects.get( pk = build_id )
>
> # bring in package dependencies
> @@ -800,7 +800,7 @@ eans multiple licenses exist that cover different parts of the source',
> 'objects' : packages,
> 'packages_sum' : packages_sum[ 'installed_size__sum' ],
> 'object_search_display': "packages included",
> - 'default_orderby' : orderby,
> + 'default_orderby' : default_orderby,
> 'tablecols' : [
> tc_package,
> tc_packageVersion,
> @@ -995,29 +995,29 @@ def tasks_common(request, build_id, variant, task_anchor):
> anchor=task_anchor
>
> # default ordering depends on variant
> - if 'buildtime' == variant:
> - title_variant='Time'
> - object_search_display="time data"
> - filter_search_display="tasks"
> - (pagesize, orderby) = _get_parameters_values(request, 25, 'elapsed_time:-')
> - elif 'diskio' == variant:
> - title_variant='Disk I/O'
> - object_search_display="disk I/O data"
> - filter_search_display="tasks"
> - (pagesize, orderby) = _get_parameters_values(request, 25, 'disk_io:-')
> - elif 'cputime' == variant:
> + default_orderby = None
> + filter_search_display = 'tasks'
> +
> + if 'buildtime' == variant:
> + default_orderby = 'elapsed_time:-'
> + title_variant = 'Time'
> + object_search_display = 'time data'
> + elif 'diskio' == variant:
> + default_orderby = 'disk_io:-'
> + title_variant = 'Disk I/O'
> + object_search_display = 'disk I/O data'
> + elif 'cputime' == variant:
> + default_orderby = 'cpu_time_system:-'
> title_variant='CPU time'
> - object_search_display="CPU time data"
> - filter_search_display="tasks"
> - (pagesize, orderby) = _get_parameters_values(request, 25, 'cpu_time_system:-')
> - else :
> - title_variant='Tasks'
> - object_search_display="tasks"
> - filter_search_display="tasks"
> - (pagesize, orderby) = _get_parameters_values(request, 25, 'order:+')
> + object_search_display = 'CPU time data'
> + else:
> + default_orderby = 'order:+'
> + title_variant = 'Tasks'
> + object_search_display = 'tasks'
>
> + (pagesize, orderby) = _get_parameters_values(request, 25, default_orderby)
>
> - mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby': orderby }
> + mandatory_parameters = {'count': pagesize, 'page' : 1, 'orderby': orderby}
>
> template = 'tasks.html'
> retval = _verify_parameters( request.GET, mandatory_parameters )
> @@ -1211,7 +1211,7 @@ def tasks_common(request, build_id, variant, task_anchor):
> 'mainheading': title_variant,
> 'build': build,
> 'objects': task_objects,
> - 'default_orderby' : orderby,
> + 'default_orderby' : default_orderby,
> 'search_term': search_term,
> 'total_count': queryset_with_search.count(),
> 'tablecols':[
More information about the toaster
mailing list