summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/tables.py
diff options
context:
space:
mode:
authorMichael Wood <michael.g.wood@intel.com>2015-05-18 20:08:28 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-05-29 11:59:45 +0100
commit2de01a68eb6a9ca74384957c674928944c235269 (patch)
tree7dbe5a8a2a169dac697bed032263c624e9c2be7e /bitbake/lib/toaster/toastergui/tables.py
parenta0ea663b83ecf5f286844420b071101feefc3d22 (diff)
downloadpoky-2de01a68eb6a9ca74384957c674928944c235269.tar.gz
bitbake: toaster: Port layerdetails to ToasterTables
This ports the layerdetails page to using ToasterTables Also some whitespace and strict clean ups in the existing layerdetails js and html template. (Bitbake rev: 8ce35f81631e31539aeb82f8a85abbb3312e5097) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/toastergui/tables.py')
-rw-r--r--bitbake/lib/toaster/toastergui/tables.py87
1 files changed, 78 insertions, 9 deletions
diff --git a/bitbake/lib/toaster/toastergui/tables.py b/bitbake/lib/toaster/toastergui/tables.py
index e6395834a5..78a7cb095e 100644
--- a/bitbake/lib/toaster/toastergui/tables.py
+++ b/bitbake/lib/toaster/toastergui/tables.py
@@ -132,7 +132,6 @@ class LayersTable(ToasterTable):
132 static_data_name="add-del-layers", 132 static_data_name="add-del-layers",
133 static_data_template='{% include "layer_btn.html" %}') 133 static_data_template='{% include "layer_btn.html" %}')
134 134
135
136class MachinesTable(ToasterTable): 135class MachinesTable(ToasterTable):
137 """Table of Machines in Toaster""" 136 """Table of Machines in Toaster"""
138 137
@@ -178,8 +177,7 @@ class MachinesTable(ToasterTable):
178 self.add_column(title="Machine file", 177 self.add_column(title="Machine file",
179 hidden=True, 178 hidden=True,
180 static_data_name="machinefile", 179 static_data_name="machinefile",
181 static_data_template=machine_file_template, 180 static_data_template=machine_file_template)
182 field_name="name")
183 181
184 self.add_column(title="Select", 182 self.add_column(title="Select",
185 help_text="Sets the selected machine as the project machine. You can only have one machine per project", 183 help_text="Sets the selected machine as the project machine. You can only have one machine per project",
@@ -189,6 +187,33 @@ class MachinesTable(ToasterTable):
189 field_name="layer_version__id") 187 field_name="layer_version__id")
190 188
191 189
190class LayerMachinesTable(MachinesTable):
191 """ Smaller version of the Machines table for use in layer details """
192
193 def __init__(self, *args, **kwargs):
194 MachinesTable.__init__(self)
195
196 def setup_queryset(self, *args, **kwargs):
197 MachinesTable.setup_queryset(self, *args, **kwargs)
198
199 self.queryset = self.queryset.filter(layer_version__pk=int(kwargs['layerid']))
200 self.static_context_extra['in_prj'] = ProjectLayer.objects.filter(Q(project=kwargs['pid']) and Q(layercommit=kwargs['layerid'])).count()
201
202 def setup_columns(self, *args, **kwargs):
203 self.add_column(title="Machine",
204 hideable=False,
205 orderable=True,
206 field_name="name")
207
208 self.add_column(title="Description",
209 field_name="description")
210
211 select_btn_template = '<a href="{% url "project" extra.pid %}#/machineselect={{data.name}}" class="btn btn-block select-machine-btn" {% if extra.in_prj == 0%}disabled="disabled"{%endif%}>Select machine</a>'
212
213 self.add_column(title="Select machine",
214 static_data_name="add-del-layers",
215 static_data_template=select_btn_template)
216
192 217
193class RecipesTable(ToasterTable): 218class RecipesTable(ToasterTable):
194 """Table of Recipes in Toaster""" 219 """Table of Recipes in Toaster"""
@@ -267,13 +292,57 @@ class RecipesTable(ToasterTable):
267 static_data_name="add-del-layers", 292 static_data_name="add-del-layers",
268 static_data_template='{% include "recipe_btn.html" %}') 293 static_data_template='{% include "recipe_btn.html" %}')
269 294
295class LayerRecipesTable(RecipesTable):
296 """ Smaller version of the Machines table for use in layer details """
297
298 def __init__(self, *args, **kwargs):
299 RecipesTable.__init__(self)
300
301 def setup_queryset(self, *args, **kwargs):
302 RecipesTable.setup_queryset(self, *args, **kwargs)
303 self.queryset = self.queryset.filter(layer_version__pk=int(kwargs['layerid']))
304
305 self.static_context_extra['in_prj'] = ProjectLayer.objects.filter(Q(project=kwargs['pid']) and Q(layercommit=kwargs['layerid'])).count()
306
307 def setup_columns(self, *args, **kwargs):
308 self.add_column(title="Recipe",
309 help_text="Information about a single piece of software, including where to download the source, configuration options, how to compile the source files and how to package the compiled output",
310 hideable=False,
311 orderable=True,
312 field_name="name")
313
314 self.add_column(title="Description",
315 field_name="get_description_or_summary")
316
317
318 build_recipe_template ='<button class="btn btn-block build-target-btn" data-target-name="{{data.name}}" {%if extra.in_prj == 0 %}disabled="disabled"{%endif%}>Build recipe</button>'
319
320 self.add_column(title="Build recipe",
321 static_data_name="add-del-layers",
322 static_data_template=build_recipe_template)
323
324
325
326
327
328
329
330
270# This needs to be staticaly defined here as django reads the url patterns 331# This needs to be staticaly defined here as django reads the url patterns
271# on start up 332# on start up
272urlpatterns = ( 333urlpatterns = (
273 url(r'^machines/(?P<cmd>\w+)*', MachinesTable.as_view(), 334 url(r'^machines/(?P<cmd>\w+)*', MachinesTable.as_view(),
274 name=MachinesTable.__name__.lower()), 335 name=MachinesTable.__name__.lower()),
275 url(r'^layers/(?P<cmd>\w+)*', LayersTable.as_view(), 336 url(r'^layers/(?P<cmd>\w+)*', LayersTable.as_view(),
276 name=LayersTable.__name__.lower()), 337 name=LayersTable.__name__.lower()),
277 url(r'^recipes/(?P<cmd>\w+)*', RecipesTable.as_view(), 338 url(r'^recipes/(?P<cmd>\w+)*', RecipesTable.as_view(),
278 name=RecipesTable.__name__.lower()), 339 name=RecipesTable.__name__.lower()),
340
341 # layer details tables
342 url(r'^layer/(?P<layerid>\d+)/recipes/(?P<cmd>\w+)*',
343 LayerRecipesTable.as_view(),
344 name=LayerRecipesTable.__name__.lower()),
345 url(r'^layer/(?P<layerid>\d+)/machines/(?P<cmd>\w+)*',
346 LayerMachinesTable.as_view(),
347 name=LayerMachinesTable.__name__.lower()),
279) 348)