From: Alexandru DAMIAN Date: Mon, 10 Feb 2014 14:26:12 +0000 (+0000) Subject: toaster: mark dependency packages X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d11ed273dd6c520b16e9ccfe79476f340006a55d;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git toaster: mark dependency packages We need to mark the package entries that are created solely for dependency tracking purposes. In order to avoid altering the database schema, we mark the dependency targets with size = -1, since this is not a valid size anyway and makes for easy filtering. [YOCTO #5803] Signed-off-by: Alexandru DAMIAN --- diff --git a/lib/bb/ui/buildinfohelper.py b/lib/bb/ui/buildinfohelper.py index 4c9c96b1bc7..a0f10952f01 100644 --- a/lib/bb/ui/buildinfohelper.py +++ b/lib/bb/ui/buildinfohelper.py @@ -239,7 +239,11 @@ class ORMWrapper(object): size = package_info['FILES_INFO'][path] ) def _po_byname(p): - return Package.objects.get_or_create(build = build_obj, name = p)[0] + pkg, created = Package.objects.get_or_create(build = build_obj, name = p) + if created: + pkg.size = -1 + pkg.save() + return pkg # save soft dependency information if 'RDEPENDS' in package_info and package_info['RDEPENDS']: diff --git a/lib/toaster/toastergui/views.py b/lib/toaster/toastergui/views.py index 2b06e2136bc..c786df41fcf 100644 --- a/lib/toaster/toastergui/views.py +++ b/lib/toaster/toastergui/views.py @@ -366,7 +366,7 @@ def recipe(request, build_id, recipe_id): layer_version = Layer_Version.objects.filter(pk=object.layer_version_id)[0] layer = Layer.objects.filter(pk=layer_version.layer_id)[0] tasks = Task.objects.filter(recipe_id = recipe_id).filter(build_id = build_id) - packages = Package.objects.filter(recipe_id = recipe_id).filter(build_id = build_id) + packages = Package.objects.filter(recipe_id = recipe_id).filter(build_id = build_id).filter(size__gte=0) context = { 'build' : Build.objects.filter(pk=build_id)[0], @@ -725,7 +725,7 @@ def bpackage(request, build_id): if retval: return _redirect_parameters( 'packages', request.GET, mandatory_parameters, build_id = build_id) (filter_string, search_term, ordering_string) = _search_tuple(request, Package) - queryset = Package.objects.filter(build = build_id) + queryset = Package.objects.filter(build = build_id).filter(size__gte=0) queryset = _get_queryset(Package, queryset, filter_string, search_term, ordering_string) packages = _build_page_range(Paginator(queryset, request.GET.get('count', 100)),request.GET.get('page', 1))