bitbake: toaster: reduce redundant foreign key lookups

Replace redundant foreign key lookups with "with" to improve all
recipes page load time. Do depends pre-lookup in the view class,
and use python itertation instead of filter() all to achieve x16
processing speedup.

[YOCTO #6137]

(Bitbake rev: a68a6dc50c11cc59e7c873414e3e22ac2644dea7)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>

Conflicts:
	bitbake/lib/toaster/toastergui/views.py
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
David Reyna
2014-05-21 15:15:09 +01:00
committed by Richard Purdie
parent defe227135
commit bf9ff3de5f
2 changed files with 29 additions and 6 deletions

15
bitbake/lib/toaster/toastergui/views.py Normal file → Executable file
View File

@@ -1074,11 +1074,26 @@ def recipes(request, build_id):
recipes = _build_page_range(Paginator(queryset, request.GET.get('count', 100)),request.GET.get('page', 1))
# prefetch the forward and reverse recipe dependencies
deps = { }; revs = { }
queryset_dependency=Recipe_Dependency.objects.filter(recipe__layer_version__build_id = build_id)
for recipe in recipes:
deplist = [ ]
for recipe_dep in [x for x in queryset_dependency if x.recipe_id == recipe.id]:
deplist.append(recipe_dep)
deps[recipe.id] = deplist
revlist = [ ]
for recipe_dep in [x for x in queryset_dependency if x.depends_on_id == recipe.id]:
revlist.append(recipe_dep)
revs[recipe.id] = revlist
context = {
'objectname': 'recipes',
'build': Build.objects.filter(pk=build_id)[0],
'objects': recipes,
'default_orderby' : 'name:+',
'recipe_deps' : deps,
'recipe_revs' : revs,
'tablecols':[
{
'name':'Recipe',