bitbake: toasterui: fix time estimation in project page

This patch fixes the time estimation to build completion
in project page. Additionally it fixes the Most Recent Builds
section used in various pages in managed mode, and proper
time to build estimation in all pages.

[YOCTO #7004]

(Bitbake rev: 5fecfda0e47c2ecba9b7c903c6d258eefa431aa0)

Signed-off-by: Alexandru Damian <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexandru Damian authored and Richard Purdie committed 2015-02-20 12:58:19 +00:00
1 parent 6dbd214fdf
commit 9c358bd1d7
4 files changed
+24 -7

No files matched your search

+1 -1
View File
@@ -194,7 +194,7 @@ class Build(models.Model):
eta = timezone.now()
completeper = self.completeper()
if self.completeper() > 0:
eta = timezone.now() + ((timezone.now() - self.started_on)*(100-completeper)/completeper)
eta += ((eta - self.started_on)*100)/completeper
return eta
@@ -136,6 +136,16 @@ projectApp.filter('timediff', function() {
}
});
// add "time to future" eta that computes time from now to a point in the future
projectApp.filter('toeta', function() {
return function(input) {
var crtmiliseconds = new Date().getTime();
diff = (parseInt(input) - crtmiliseconds ) / 1000;
console.log("Debug: future time ", input, "crt time", crtmiliseconds, ":", diff);
return diff < 0 ? 300 : diff;
}
});
/**
* main controller for the project page
*/
@@ -259,7 +269,14 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
var i = 0;
for (i = 0 ; i < $scope.builds.length; i ++) {
if ($scope.builds[i].id > elem.id) continue;
if ($scope.builds[i].id == elem.id) { found=true; break;}
if ($scope.builds[i].id == elem.id) {
found=true;
// do deep data copy
for (var attr in elem) {
$scope.builds[i][attr] = elem[attr];
}
break;
}
if ($scope.builds[i].id < elem.id) break;
}
if (!found) {
@@ -272,8 +289,8 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
var found = false;
var i = 0;
for (i = 0; i < $scope.builds.length; i ++) {
if ($scope.builds[i].id > elem.id) continue;
if ($scope.builds[i].id == elem.id) { found=true; break;}
if ($scope.builds[i].id > elem.id) continue;
if ($scope.builds[i].id == elem.id) { found=true; break; }
if ($scope.builds[i].id < elem.id) break;
}
if (!found) {
@@ -281,6 +298,7 @@ projectApp.controller('prjCtrl', function($scope, $modal, $http, $interval, $loc
}
});
$scope.fetchLayersForTargets();
}
if (_data.targets !== undefined) {
@@ -2,8 +2,7 @@
{% load projecttags %}
{% load humanize %}
{%if len.mru > 0%}
{%if mru|length > 0%}
<div class="page-header top-air">
<h1>
Latest builds
@@ -196,7 +196,7 @@ vim: expandtab tabstop=2
<div style="width: {[b.build[0].completeper]}%;" class="bar"></div>
</div>
</div>
<div class="text-right lead">ETA: {[b.build[0].eta|date:"HH:mm:ss"]}</div>
<div class="text-right lead">ETA in {[b.build[0].eta|toeta|timediff]}</div>
</case>
</case>