Prevent removal of all columns on tasks and recipe tables
cover Prevent removal of all columns on tasks and recipe tables
All of the columns for the tasks and recipes tables (sub-pages of the build-dashboard) are optional. This means you can remove all the columns for those tables and make them disappear from the page.
Set the non-hideable columns and add some UI tests to check that those columns are disabled in the edit columns drop-down.
The following changes since commit 0bf1a5a6c8d731a0f4f75091621dc999ee6d5ce1:
toaster: fix download URL for task logs (2016-07-20 17:05:57 +0300)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib ed/submit/elliot/toaster/9833-remove_columns
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=ed/submit/elliot/toaster/9833-remove_columns
Elliot Smith (3):
toaster: set non-hideable columns for build tasks table
toaster: set non-hideable columns for built recipes table
toaster-tests: add tasks and recipes sub-page tests
.../browser/test_builddashboard_page_recipes.py | 66 ++++++++++++++++++++++ .../browser/test_builddashboard_page_tasks.py | 65 +++++++++++++++++++++ bitbake/lib/toaster/toastergui/buildtables.py | 7 ++- 3 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py create mode 100644 bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py
--
Regards,
Ed
PATCH 1/3 toaster: set non-hideable columns for build tasks table
From: Elliot Smith <[email protected]>
The task, recipe and order columns in the build tasks table should not be hideable. If they are, it's possible for the table to have all of its columns hidden so that it no longer displays.
Set the hideable property to prevent these columns from being hidden.
[YOCTO #9833]
--- bitbake/lib/toaster/toastergui/buildtables.py | 3 +++ 1 file changed, 3 insertions(+)
bitbake/lib/toaster/toastergui/buildtables.py +3 -0
@@ -431,17 +431,20 @@ class BuildTasksTable(BuildTablesMixin): self.add_column(title="Order", static_data_name="order", static_data_template='{{data.order}}', + hideable=False, orderable=True) self.add_column(title="Task", static_data_name="task_name", static_data_template=task_link_tmpl( "{{data.task_name}}"), + hideable=False, orderable=True) self.add_column(title="Recipe", static_data_name='recipe__name', static_data_template=recipe_name_tmpl, + hideable=False, orderable=True) self.add_column(title="Recipe version",
Signature · 1 line
2.6.6
PATCH 2/3 toaster: set non-hideable columns for built recipes table
In reply to Ed BartoshFrom: Elliot Smith <[email protected]>
None of the columns in the built recipes table are marked as not hideable, so it is possible to remove all the columns and make the table disappear.
Set the recipe name and version columns as not hideable.
Also rename the "Name" column to "Recipe", for consistency with the design and with other recipe tables.
[YOCTO #9833]
--- bitbake/lib/toaster/toastergui/buildtables.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
bitbake/lib/toaster/toastergui/buildtables.py +3 -1
@@ -295,13 +295,15 @@ class BuiltRecipesTable(BuildTablesMixin): {% endif %}{% endwith %}{% endwith %} ''' - self.add_column(title="Name", + self.add_column(title="Recipe", field_name="name", static_data_name='name', orderable=True, + hideable=False, static_data_template=recipe_name_tmpl) self.add_column(title="Version", + hideable=False, field_name="version") self.add_column(title="Dependencies",
Signature · 1 line
2.6.6
PATCH 3/3 toaster-tests: add tasks and recipes sub-page tests
In reply to Ed BartoshFrom: Elliot Smith <[email protected]>
Add tests for the tasks and recipes sub-pages of the build dashboard.
[YOCTO #9833]
--- .../browser/test_builddashboard_page_recipes.py | 66 ++++++++++++++++++++++ .../browser/test_builddashboard_page_tasks.py | 65 +++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py create mode 100644 bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py
bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py new file +66 -0
@@ -0,0 +1,66 @@ +#! /usr/bin/env python +# ex:ts=4:sw=4:sts=4:et +# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- +# +# BitBake Toaster Implementation +# +# Copyright (C) 2013-2016 Intel Corporation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from django.core.urlresolvers import reverse +from django.utils import timezone +from tests.browser.selenium_helpers import SeleniumTestCase +from orm.models import Project, Build, Recipe, Task, Layer, Layer_Version +from orm.models import Target + +class TestBuilddashboardPageRecipes(SeleniumTestCase): + """ Test build dashboard recipes sub-page """ + + def setUp(self): + project = Project.objects.get_or_create_default_project() + + now = timezone.now() + + self.build = Build.objects.create(project=project, + started_on=now, + completed_on=now) + + layer = Layer.objects.create() + + layer_version = Layer_Version.objects.create(layer=layer, + build=self.build) + + recipe = Recipe.objects.create(layer_version=layer_version) + + task = Task.objects.create(build=self.build, recipe=recipe, order=1) + + Target.objects.create(build=self.build, task=task, target='do_build') + + def test_build_recipes_columns(self): + """ + Check that non-hideable columns of the table on the recipes sub-page + are disabled on the edit columns dropdown. + """ + url = reverse('recipes', args=(self.build.id,)) + self.get(url) + + self.wait_until_visible('#edit-columns-button') + + # check that options for the non-hideable columns are disabled + non_hideable = ['name', 'version'] + + for column in non_hideable: + selector = 'input#checkbox-%s[disabled="disabled"]' % column + self.wait_until_present(selector)
bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py new file +65 -0
65 lines not on this page · raw message
Signature · 1 line
2.6.6