summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Reyna <David.Reyna@windriver.com>2014-04-10 21:43:11 -0700
committerAlexandru DAMIAN <alexandru.damian@intel.com>2014-06-20 14:46:36 +0100
commite88e5a79c992ef3218f47adff0587d4f69c01432 (patch)
treeea10b9580b43161eae7f873796d222c05b8b79cf
parent527f7d8ec2f4e75d6f62a967900b27faea317af9 (diff)
downloadbitbake-e88e5a79c992ef3218f47adff0587d4f69c01432.tar.gz
toaster: sort outcome and sstate columns by string value
Sort the 'outcome' and 'sstate_result' columns by their description string values and not their numerical values. [YOCTO #5921] Signed-off-by: David Reyna <David.Reyna@windriver.com>
-rw-r--r--lib/toaster/orm/models.py12
-rw-r--r--lib/toaster/toastergui/views.py9
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/toaster/orm/models.py b/lib/toaster/orm/models.py
index c344c66be..22c66a9a2 100644
--- a/lib/toaster/orm/models.py
+++ b/lib/toaster/orm/models.py
@@ -166,9 +166,18 @@ class Task(models.Model):
def get_related_setscene(self):
return Task.objects.related_setscene(self)
+ def get_outcome_text(self):
+ return Task.TASK_OUTCOME[self.outcome + 1][1]
+
def get_outcome_help(self):
return Task.TASK_OUTCOME_HELP[self.outcome][1]
+ def get_sstate_text(self):
+ if self.sstate_result==Task.SSTATE_NA:
+ return ''
+ else:
+ return Task.SSTATE_RESULT[self.sstate_result][1]
+
def get_executed_display(self):
if self.task_executed:
return "Executed"
@@ -200,6 +209,9 @@ class Task(models.Model):
message = models.CharField(max_length=240)
logfile = models.FilePathField(max_length=255, blank=True)
+ outcome_text = property(get_outcome_text)
+ sstate_text = property(get_sstate_text)
+
class Meta:
ordering = ('order', 'recipe' ,)
unique_together = ('build', 'recipe', 'task_name', )
diff --git a/lib/toaster/toastergui/views.py b/lib/toaster/toastergui/views.py
index 53be9671d..3d2ed4c7c 100644
--- a/lib/toaster/toastergui/views.py
+++ b/lib/toaster/toastergui/views.py
@@ -853,7 +853,14 @@ def tasks_common(request, build_id, variant, task_anchor):
(filter_string, search_term, ordering_string) = _search_tuple(request, Task)
queryset_all = Task.objects.filter(build=build_id).exclude(order__isnull=True).exclude(outcome=Task.OUTCOME_NA)
queryset_with_search = _get_queryset(Task, queryset_all, None , search_term, ordering_string, 'order')
- queryset = _get_queryset(Task, queryset_all, filter_string, search_term, ordering_string, 'order')
+ if ordering_string.startswith('outcome'):
+ queryset = _get_queryset(Task, queryset_all, filter_string, search_term, 'order:+', 'order')
+ queryset = sorted(queryset, key=lambda ur: (ur.outcome_text), reverse=ordering_string.endswith('-'))
+ elif ordering_string.startswith('sstate_result'):
+ queryset = _get_queryset(Task, queryset_all, filter_string, search_term, 'order:+', 'order')
+ queryset = sorted(queryset, key=lambda ur: (ur.sstate_text), reverse=ordering_string.endswith('-'))
+ else:
+ queryset = _get_queryset(Task, queryset_all, filter_string, search_term, ordering_string, 'order')
# compute the anchor's page
if anchor: