diff options
-rw-r--r-- | lib/toaster/orm/models.py | 18 | ||||
-rwxr-xr-x | lib/toaster/toastergui/views.py | 13 |
2 files changed, 19 insertions, 12 deletions
diff --git a/lib/toaster/orm/models.py b/lib/toaster/orm/models.py index 5a6dcd72f..bb921fc98 100644 --- a/lib/toaster/orm/models.py +++ b/lib/toaster/orm/models.py @@ -120,6 +120,24 @@ class Build(models.Model): build_name = models.CharField(max_length=100) bitbake_version = models.CharField(max_length=50) + def completeper(self): + tf = Task.objects.filter(build = self) + tfc = tf.count() + if tfc > 0: + completeper = tf.exclude(order__isnull=True).count()*100/tf.count() + else: + completeper = 0 + return completeper + + def eta(self): + from django.utils import timezone + eta = 0 + completeper = self.completeper() + if self.completeper() > 0: + eta = timezone.now() + ((timezone.now() - self.started_on)*(100-completeper)/completeper) + return eta + + def get_sorted_target_list(self): tgts = Target.objects.filter(build_id = self.id).order_by( 'target' ); return( tgts ); diff --git a/lib/toaster/toastergui/views.py b/lib/toaster/toastergui/views.py index e68f8b002..86a34adf2 100755 --- a/lib/toaster/toastergui/views.py +++ b/lib/toaster/toastergui/views.py @@ -224,17 +224,6 @@ def builds(request): # build view-specific information; this is rendered specifically in the builds page, at the top of the page (i.e. Recent builds) build_mru = Build.objects.filter(completed_on__gte=(timezone.now()-timedelta(hours=24))).order_by("-started_on")[:3] - for b in [ x for x in build_mru if x.outcome == Build.IN_PROGRESS ]: - tf = Task.objects.filter(build = b) - tfc = tf.count() - if tfc > 0: - b.completeper = tf.exclude(order__isnull=True).count()*100/tf.count() - else: - b.completeper = 0 - - b.eta = 0 - if b.completeper > 0: - b.eta = timezone.now() + ((timezone.now() - b.started_on)*(100-b.completeper)/b.completeper) # set up list of fstypes for each build fstypes_map = {}; @@ -1854,7 +1843,7 @@ if toastermain.settings.MANAGED: context = { "project" : prj, #"buildrequests" : prj.buildrequest_set.filter(state=BuildRequest.REQ_QUEUED), - "buildrequests" : map(lambda x: (x, {"machine" : x.brvariable_set.filter(name="MACHINE")[0]}), prj.buildrequest_set.order_by("-pk")), + "buildrequests" : map(lambda x: (x, {"machine" : x.brvariable_set.filter(name="MACHINE")[0]}), prj.buildrequest_set.filter(state__lt = BuildRequest.REQ_INPROGRESS).order_by("-pk")), "builds" : prj.build_set.all(), "puser": puser, } |