summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2016-07-12 15:54:43 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-19 08:56:51 +0100
commitb0585e6b0c8d4b9a7d2102e615fff0ef069e0f98 (patch)
tree7f9db275e0727896d9dab0d0b6eff74c79da92e1 /bitbake/lib/toaster
parent844e1f9e1dff7f5dc1eb68dd75121a07576a7b0f (diff)
downloadpoky-b0585e6b0c8d4b9a7d2102e615fff0ef069e0f98.tar.gz
bitbake: toaster: display Target targets in build dashboard
The build dashboard was showing the targets for the build in the page heading and title as "Target object". Add a filter which extracts the "target" from each Target object as a string so that the heading and title display correctly. Also sort the image file suffixes alphabetically. [YOCTO #8556] (Bitbake rev: 33a24992139e7dc05d14bbe1da60299b732945aa) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: bavery <brian.avery@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/builddashboard.html9
-rw-r--r--bitbake/lib/toaster/toastergui/templatetags/field_values_filter.py18
2 files changed, 23 insertions, 4 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/builddashboard.html b/bitbake/lib/toaster/toastergui/templates/builddashboard.html
index 04a57ef64f..dcda2a891f 100644
--- a/bitbake/lib/toaster/toastergui/templates/builddashboard.html
+++ b/bitbake/lib/toaster/toastergui/templates/builddashboard.html
@@ -1,8 +1,9 @@
1{% extends "basebuildpage.html" %} 1{% extends "basebuildpage.html" %}
2{% load humanize %} 2{% load humanize %}
3{% load projecttags %} 3{% load projecttags %}
4{% load field_values_filter %}
4 5
5{% block title %} {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %} 6{% block title %} {{build.get_sorted_target_list|field_values:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %}
6{% block parentbreadcrumb %} 7{% block parentbreadcrumb %}
7{% if build.get_sorted_target_list.count > 0 %} 8{% if build.get_sorted_target_list.count > 0 %}
8 {{build.get_sorted_target_list.0.target}} 9 {{build.get_sorted_target_list.0.target}}
@@ -15,7 +16,7 @@
15<!-- page title --> 16<!-- page title -->
16<div class="col-md-10"> 17<div class="col-md-10">
17 <div class="page-header build-data"> 18 <div class="page-header build-data">
18 <h1>{{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}}</h1> 19 <h1>{{build.get_sorted_target_list|field_values:"target"|join:", "}} {{build.machine}}</h1>
19 </div> 20 </div>
20 21
21<!-- build result bar --> 22<!-- build result bar -->
@@ -113,7 +114,7 @@
113 </dt> 114 </dt>
114 <dd> 115 <dd>
115 <ul class="list-unstyled"> 116 <ul class="list-unstyled">
116 {% for i in target.imageFiles %} 117 {% for i in target.imageFiles|dictsort:"suffix" %}
117 <li> 118 <li>
118 <a href="{% url 'build_artifact' build.pk 'imagefile' i.id %}"> 119 <a href="{% url 'build_artifact' build.pk 'imagefile' i.id %}">
119 {{i.suffix}} 120 {{i.suffix}}
@@ -261,7 +262,7 @@
261 if (location.href.search('#warnings') > -1) { 262 if (location.href.search('#warnings') > -1) {
262 $('#warning-info').addClass('in'); 263 $('#warning-info').addClass('in');
263 } 264 }
264 265
265 //show warnings section when requested from the build outcome 266 //show warnings section when requested from the build outcome
266 $(".show-warnings").click(function() { 267 $(".show-warnings").click(function() {
267 $('#warning-info').addClass('in'); 268 $('#warning-info').addClass('in');
diff --git a/bitbake/lib/toaster/toastergui/templatetags/field_values_filter.py b/bitbake/lib/toaster/toastergui/templatetags/field_values_filter.py
new file mode 100644
index 0000000000..5a73af797c
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templatetags/field_values_filter.py
@@ -0,0 +1,18 @@
1from django import template
2
3register = template.Library()
4
5def field_values(iterable, field):
6 """
7 Convert an iterable of models into a list of strings, one for each model,
8 where the string for each model is the value of the field "field".
9 """
10 objects = []
11
12 if field:
13 for item in iterable:
14 objects.append(getattr(item, field))
15
16 return objects
17
18register.filter('field_values', field_values) \ No newline at end of file