summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2015-03-10 17:38:00 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-03-16 17:44:09 +0000
commit193989cec807120307cda50c616118dca4025b8a (patch)
tree4e63be374877262cbc2e6d985454b677e3acd31b /bitbake/lib/toaster/toastergui
parent2b629e618227632bc8b774796d760904fcca92f4 (diff)
downloadpoky-193989cec807120307cda50c616118dca4025b8a.tar.gz
bitbake: toastergui: tables display optimizations
This patch brings in a new set of optimizations in the tables pages, with the focus of reducing the number of SQL queries performed per row. (Bitbake rev: a1ad86febb9d8a4ee7f15aa726f267d64b8e0dc4) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/toastergui')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/targets.html2
-rwxr-xr-xbitbake/lib/toaster/toastergui/views.py14
2 files changed, 11 insertions, 5 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/targets.html b/bitbake/lib/toaster/toastergui/templates/targets.html
index 690c6a5d36..f918d6cff2 100644
--- a/bitbake/lib/toaster/toastergui/templates/targets.html
+++ b/bitbake/lib/toaster/toastergui/templates/targets.html
@@ -60,7 +60,7 @@
60 <td class="description">{% if o.description %}{{o.description}}{% else %}{{o.summary}}{%endif%}</td> 60 <td class="description">{% if o.description %}{{o.description}}{% else %}{{o.summary}}{%endif%}</td>
61 <td class="recipe-file"> 61 <td class="recipe-file">
62 <code>{{o.file_path}}</code> 62 <code>{{o.file_path}}</code>
63 <a href="{{o.get_vcs_link_url}}{{o.file_path}}" target="_blank"><i class="icon-share get-info"></i></a> 63 <a href="{{o.vcs_link_url}}" target="_blank"><i class="icon-share get-info"></i></a>
64 </td> 64 </td>
65 <td class="target-section">{{o.section}}</td> 65 <td class="target-section">{{o.section}}</td>
66 <td class="license">{{o.license}}</td> 66 <td class="license">{{o.license}}</td>
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index 90d47c640c..541b16ab1d 100755
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -515,17 +515,19 @@ def target_common( request, build_id, target_id, variant ):
515 packages_sum = queryset.aggregate( Sum( 'installed_size' )) 515 packages_sum = queryset.aggregate( Sum( 'installed_size' ))
516 queryset = _get_queryset( 516 queryset = _get_queryset(
517 Package, queryset, filter_string, search_term, ordering_string, 'name' ) 517 Package, queryset, filter_string, search_term, ordering_string, 'name' )
518 queryset = queryset.select_related("recipe", "recipe__layer_version", "recipe__layer_version__layer")
518 packages = _build_page_range( Paginator(queryset, pagesize), request.GET.get( 'page', 1 )) 519 packages = _build_page_range( Paginator(queryset, pagesize), request.GET.get( 'page', 1 ))
519 520
520 521
522
521 build = Build.objects.get( pk = build_id ) 523 build = Build.objects.get( pk = build_id )
522 524
523 # bring in package dependencies 525 # bring in package dependencies
524 for p in packages.object_list: 526 for p in packages.object_list:
525 p.runtime_dependencies = p.package_dependencies_source.filter( 527 p.runtime_dependencies = p.package_dependencies_source.filter(
526 target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS ) 528 target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS ).select_related("depends_on")
527 p.reverse_runtime_dependencies = p.package_dependencies_target.filter( 529 p.reverse_runtime_dependencies = p.package_dependencies_target.filter(
528 target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS ) 530 target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS ).select_related("package")
529 tc_package = { 531 tc_package = {
530 'name' : 'Package', 532 'name' : 'Package',
531 'qhelp' : 'Packaged output resulting from building a recipe included in this image', 533 'qhelp' : 'Packaged output resulting from building a recipe included in this image',
@@ -2755,7 +2757,7 @@ if toastermain.settings.MANAGED:
2755 # get unique values for 'name', and select the maximum ID for each entry (the max id is the newest one) 2757 # get unique values for 'name', and select the maximum ID for each entry (the max id is the newest one)
2756 queryset_with_search_maxids = queryset_with_search.values('name').distinct().annotate(max_id=Max('id')).values_list('max_id') 2758 queryset_with_search_maxids = queryset_with_search.values('name').distinct().annotate(max_id=Max('id')).values_list('max_id')
2757 2759
2758 queryset_with_search = queryset_with_search.filter(id__in=queryset_with_search_maxids).select_related('layer_version', 'layer_version__layer', 'layer_version__up_branch') 2760 queryset_with_search = queryset_with_search.filter(id__in=queryset_with_search_maxids).select_related('layer_version', 'layer_version__layer', 'layer_version__up_branch', 'layer_source')
2759 2761
2760 2762
2761 # retrieve the objects that will be displayed in the table; targets a paginator and gets a page range to display 2763 # retrieve the objects that will be displayed in the table; targets a paginator and gets a page range to display
@@ -2763,7 +2765,11 @@ if toastermain.settings.MANAGED:
2763 2765
2764 for e in target_info.object_list: 2766 for e in target_info.object_list:
2765 e.preffered_layerversion = e.layer_version.get_equivalents_wpriority(prj)[0] 2767 e.preffered_layerversion = e.layer_version.get_equivalents_wpriority(prj)[0]
2766 2768 e.vcs_link_url = Layer.objects.filter(name = e.preffered_layerversion.layer.name).exclude(vcs_web_file_base_url__isnull=True)[0].vcs_web_file_base_url
2769 if e.vcs_link_url != None:
2770 fp = e.preffered_layerversion.dirpath + "/" + e.file_path
2771 e.vcs_link_url = e.vcs_link_url.replace('%path%', fp)
2772 e.vcs_link_url = e.vcs_link_url.replace('%branch%', e.preffered_layerversion.up_branch.name)
2767 2773
2768 context = { 2774 context = {
2769 'projectlayerset' : jsonfilter(map(lambda x: x.layercommit.id, prj.projectlayer_set.all().select_related("layercommit"))), 2775 'projectlayerset' : jsonfilter(map(lambda x: x.layercommit.id, prj.projectlayer_set.all().select_related("layercommit"))),