summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/builddashboard.html2
-rw-r--r--bitbake/lib/toaster/toastergui/views.py73
2 files changed, 47 insertions, 28 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/builddashboard.html b/bitbake/lib/toaster/toastergui/templates/builddashboard.html
index 891d86078b..fa4b194eb9 100644
--- a/bitbake/lib/toaster/toastergui/templates/builddashboard.html
+++ b/bitbake/lib/toaster/toastergui/templates/builddashboard.html
@@ -155,7 +155,7 @@
155 <h4><a href="{% url 'recipes' build.pk %}">Recipes</a> & <a href="{% url 'packages' build.pk %}">Packages</a></h4> 155 <h4><a href="{% url 'recipes' build.pk %}">Recipes</a> & <a href="{% url 'packages' build.pk %}">Packages</a></h4>
156 <dl> 156 <dl>
157 <dt>Recipes built</dt><dd><a href="{% url 'recipes' build.pk %}">{{recipecount}}</a></dd> 157 <dt>Recipes built</dt><dd><a href="{% url 'recipes' build.pk %}">{{recipecount}}</a></dd>
158 <dt>Packages built</dt><dd><a href="{% url 'packages' build.pk %}">{{build.package_set.all.count}}</a></dd> 158 <dt>Packages built</dt><dd><a href="{% url 'packages' build.pk %}">{{packagecount}}</a></dd>
159 </dl> 159 </dl>
160 </div> 160 </div>
161</div> 161</div>
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index e346ac4cf1..2da81c1ede 100644
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -381,42 +381,60 @@ def builds(request):
381# Each build may contain multiple targets and each target 381# Each build may contain multiple targets and each target
382# may generate multiple image files. display them all. 382# may generate multiple image files. display them all.
383# 383#
384def builddashboard(request, build_id): 384def builddashboard( request, build_id ):
385 template = "builddashboard.html" 385 template = "builddashboard.html"
386 if Build.objects.filter(pk=build_id).count() == 0 : 386 if Build.objects.filter( pk=build_id ).count( ) == 0 :
387 return redirect(builds) 387 return redirect( builds )
388 build = Build.objects.filter(pk = build_id)[0]; 388 build = Build.objects.filter( pk = build_id )[ 0 ];
389 layerVersionId = Layer_Version.objects.filter( build = build_id ); 389 layerVersionId = Layer_Version.objects.filter( build = build_id );
390 recipeCount = Recipe.objects.filter( layer_version__id__in = layerVersionId ).count( ); 390 recipeCount = Recipe.objects.filter( layer_version__id__in = layerVersionId ).count( );
391 tgts = Target.objects.filter( build_id = build_id ).order_by( 'target' ); 391 tgts = Target.objects.filter( build_id = build_id ).order_by( 'target' );
392 392
393 ##
393 # set up custom target list with computed package and image data 394 # set up custom target list with computed package and image data
394 targets = [ ]; 395 #
395 ntargets = 0; 396
396 hasImages = False; 397 targets = [ ]
398 ntargets = 0
399 hasImages = False
397 for t in tgts: 400 for t in tgts:
398 elem = { }; 401 elem = { }
399 elem[ 'target' ] = t; 402 elem[ 'target' ] = t
400 if ( t.is_image ): 403 if ( t.is_image ):
401 hasImages = True; 404 hasImages = True
402 npkg = 0; 405 npkg = 0
403 pkgsz = 0; 406 pkgsz = 0
404 pid= 0; 407 pid= 0
405 tp = Target_Installed_Package.objects.filter( target_id = t.id ); 408 tp = Target_Installed_Package.objects.filter( target_id = t.id )
406 package = None; 409 package = None
407 for p in tp: 410 for p in tp:
408 pid = p.package_id; 411 pid = p.package_id
409 package = Package.objects.get( pk = p.package_id ) 412 package = Package.objects.get( pk = p.package_id )
410 pkgsz = pkgsz + package.size; 413 pkgsz = pkgsz + package.size
411 npkg = npkg + 1; 414 if ( package.installed_name ):
412 elem[ 'npkg' ] = npkg; 415 npkg = npkg + 1
413 elem[ 'pkgsz' ] = pkgsz; 416 elem[ 'npkg' ] = npkg
414 ti = Target_Image_File.objects.filter( target_id = t.id ); 417 elem[ 'pkgsz' ] = pkgsz
415 imageFiles = [ ]; 418 ti = Target_Image_File.objects.filter( target_id = t.id )
419 imageFiles = [ ]
416 for i in ti: 420 for i in ti:
417 imageFiles.append({ 'path': i.file_name, 'size' : i.file_size }); 421 ndx = i.file_name.rfind( '/' )
418 elem[ 'imageFiles' ] = imageFiles; 422 if ( ndx < 0 ):
419 targets.append( elem ); 423 ndx = 0;
424 f = i.file_name[ ndx + 1: ]
425 imageFiles.append({ 'path': f, 'size' : i.file_size })
426 elem[ 'imageFiles' ] = imageFiles
427 targets.append( elem )
428
429 ##
430 # how many packages in this build - ignore anonymous ones
431 #
432
433 packageCount = 0
434 packages = Package.objects.filter( build_id = build_id )
435 for p in packages:
436 if ( p.installed_name ):
437 packageCount = packageCount + 1
420 438
421 context = { 439 context = {
422 'build' : build, 440 'build' : build,
@@ -424,9 +442,10 @@ def builddashboard(request, build_id):
424 'ntargets' : ntargets, 442 'ntargets' : ntargets,
425 'targets' : targets, 443 'targets' : targets,
426 'recipecount' : recipeCount, 444 'recipecount' : recipeCount,
427 'logmessages' : LogMessage.objects.filter(build=build_id), 445 'packagecount' : packageCount,
446 'logmessages' : LogMessage.objects.filter( build = build_id ),
428 } 447 }
429 return render(request, template, context) 448 return render( request, template, context )
430 449
431 450
432def task(request, build_id, task_id): 451def task(request, build_id, task_id):