From 5529bcd860d2932b967a064ae28690ac5a725342 Mon Sep 17 00:00:00 2001 From: Elliot Smith Date: Tue, 12 Jul 2016 16:14:42 +0100 Subject: [PATCH] toaster: show "Tasks starting..." until the first task completes To prevent showing a "0% of tasks complete" message for a long time, don't show the progress bar until the first task has finished. While waiting for that first task, show a message about tasks starting instead. [YOCTO #9631] Signed-off-by: Elliot Smith --- lib/toaster/orm/models.py | 13 +++++++++ .../toastergui/templates/mrb_section.html | 28 ++++++++++++++++--- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/lib/toaster/orm/models.py b/lib/toaster/orm/models.py index 4641736addc..cfa243c5958 100644 --- a/lib/toaster/orm/models.py +++ b/lib/toaster/orm/models.py @@ -628,6 +628,17 @@ class Build(models.Model): return self.outcome == Build.IN_PROGRESS and \ self.recipes_parsed < self.recipes_to_parse + def is_starting(self): + """ + True if the build has no completed tasks yet and is still just starting + tasks. + + Note that the mechanism for testing whether a Task is "done" is whether + its order field is set, as per the completeper() method. + """ + return self.outcome == Build.IN_PROGRESS and \ + self.task_build.filter(order__isnull=False).count() == 0 + def get_state(self): """ Get the state of the build; one of 'Succeeded', 'Failed', 'In Progress', @@ -643,6 +654,8 @@ class Build(models.Model): return 'Queued' elif self.is_parsing(): return 'Parsing' + elif self.is_starting(): + return 'Starting' else: return self.get_outcome_text() diff --git a/lib/toaster/toastergui/templates/mrb_section.html b/lib/toaster/toastergui/templates/mrb_section.html index 880485d45fe..b74f7239324 100644 --- a/lib/toaster/toastergui/templates/mrb_section.html +++ b/lib/toaster/toastergui/templates/mrb_section.html @@ -71,6 +71,8 @@ <%include tmpl='#succeeded-or-failed-build-template'/%> <%else state == 'Cancelling'%> <%include tmpl='#cancelling-build-template'/%> + <%else state == 'Starting'%> + <%include tmpl='#starting-template'/%> <%else state == 'In Progress'%> <%include tmpl='#in-progress-build-template'/%> <%else state == 'Cancelled'%> @@ -81,8 +83,9 @@ - + + + +