diff options
author | Alexandru DAMIAN <alexandru.damian@intel.com> | 2015-03-09 18:42:17 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-03-16 17:44:07 +0000 |
commit | 42d1b65d1543cbb334e776bf0193ea9a8a14799e (patch) | |
tree | 5d70aaf9ee4574dc1eac00b19bbca162b45361a6 /bitbake | |
parent | 50c5ca5254395c7bd092993304c314d86422eb99 (diff) | |
download | ast2050-yocto-poky-42d1b65d1543cbb334e776bf0193ea9a8a14799e.zip ast2050-yocto-poky-42d1b65d1543cbb334e776bf0193ea9a8a14799e.tar.gz |
bitbake: toastergui: improve performance in the all targets page
This patch improves performance in the all targets display
by computing the preffered layer only for displayed targets,
instead of computing for all targets.
(Bitbake rev: 027e3b7c579e21b3164f2785578ae9905b4fb325)
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 9f1fbca..5b481cb 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py @@ -2752,21 +2752,21 @@ if toastermain.settings.MANAGED: queryset_with_search = _get_queryset(Recipe, queryset_all, None, search_term, ordering_string, '-name') - # get unique values for 'name' and 'version', and select the maximum ID for each entry (the max id is the newest one) + # get unique values for 'name', and select the maximum ID for each entry (the max id is the newest one) queryset_with_search_maxids = queryset_with_search.values('name').distinct().annotate(max_id=Max('id')).values_list('max_id') - queryset_with_search = queryset_with_search.filter(id__in=queryset_with_search_maxids).select_related('layer_version', 'layer_version__layer') + queryset_with_search = queryset_with_search.filter(id__in=queryset_with_search_maxids).select_related('layer_version', 'layer_version__layer', 'layer_version__up_branch') - objects = list(queryset_with_search) - for e in objects: - e.preffered_layerversion = e.layer_version.get_equivalents_wpriority(prj)[0] # retrieve the objects that will be displayed in the table; targets a paginator and gets a page range to display - target_info = _build_page_range(Paginator(objects, request.GET.get('count', 10)),request.GET.get('page', 1)) + target_info = _build_page_range(Paginator(queryset_with_search, request.GET.get('count', 10)),request.GET.get('page', 1)) + + for e in target_info.object_list: + e.preffered_layerversion = e.layer_version.get_equivalents_wpriority(prj)[0] context = { - 'projectlayerset' : jsonfilter(map(lambda x: x.layercommit.id, prj.projectlayer_set.all())), + 'projectlayerset' : jsonfilter(map(lambda x: x.layercommit.id, prj.projectlayer_set.all().select_related("layercommit"))), 'objects' : target_info, 'objectname' : "targets", 'default_orderby' : 'name:+', |