summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/orm/models.py
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2016-01-15 13:00:49 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-01-15 16:29:59 +0000
commit294579b531d5a96a17aa863554e71f4680d35812 (patch)
treed42f10f98cb26d233860eec59cbdf0799d53ae28 /bitbake/lib/toaster/orm/models.py
parent6c12ca7f932d2fa06c2f2e2e6c98c76bb4d487d3 (diff)
downloadpoky-294579b531d5a96a17aa863554e71f4680d35812.tar.gz
bitbake: toastergui: convert all builds page to ToasterTable
For better long-term maintainability, use ToasterTable instead of Django template and view code to display the all builds page. NB the builds.html template has been left in, as this will otherwise cause conflicts when merging the new theme. [YOCTO #8738] (Bitbake rev: e0590fc8103afeb4c5e613a826057555c8193d59) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r--bitbake/lib/toaster/orm/models.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index b7975ef865..3dc4d6d891 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -447,6 +447,12 @@ class Build(models.Model):
447 return Build.BUILD_OUTCOME[int(self.outcome)][1] 447 return Build.BUILD_OUTCOME[int(self.outcome)][1]
448 448
449 @property 449 @property
450 def failed_tasks(self):
451 """ Get failed tasks for the build """
452 tasks = self.task_build.all()
453 return tasks.filter(order__gt=0, outcome=Task.OUTCOME_FAILED)
454
455 @property
450 def errors(self): 456 def errors(self):
451 return (self.logmessage_set.filter(level=LogMessage.ERROR) | 457 return (self.logmessage_set.filter(level=LogMessage.ERROR) |
452 self.logmessage_set.filter(level=LogMessage.EXCEPTION) | 458 self.logmessage_set.filter(level=LogMessage.EXCEPTION) |
@@ -457,8 +463,32 @@ class Build(models.Model):
457 return self.logmessage_set.filter(level=LogMessage.WARNING) 463 return self.logmessage_set.filter(level=LogMessage.WARNING)
458 464
459 @property 465 @property
466 def timespent(self):
467 return self.completed_on - self.started_on
468
469 @property
460 def timespent_seconds(self): 470 def timespent_seconds(self):
461 return (self.completed_on - self.started_on).total_seconds() 471 return self.timespent.total_seconds()
472
473 @property
474 def target_labels(self):
475 """
476 Sorted (a-z) "target1:task, target2, target3" etc. string for all
477 targets in this build
478 """
479 targets = self.target_set.all()
480 target_labels = []
481 target_label = None
482
483 for target in targets:
484 target_label = target.target
485 if target.task:
486 target_label = target_label + ':' + target.task
487 target_labels.append(target_label)
488
489 target_labels.sort()
490
491 return target_labels
462 492
463 def get_current_status(self): 493 def get_current_status(self):
464 """ 494 """