diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/tables.py')
| -rw-r--r-- | bitbake/lib/toaster/toastergui/tables.py | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/bitbake/lib/toaster/toastergui/tables.py b/bitbake/lib/toaster/toastergui/tables.py index d0ed49625d..b7d977ea03 100644 --- a/bitbake/lib/toaster/toastergui/tables.py +++ b/bitbake/lib/toaster/toastergui/tables.py | |||
| @@ -20,7 +20,6 @@ | |||
| 20 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | 20 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| 21 | 21 | ||
| 22 | from toastergui.widgets import ToasterTable | 22 | from toastergui.widgets import ToasterTable |
| 23 | from toastergui.querysetfilter import QuerysetFilter | ||
| 24 | from orm.models import Recipe, ProjectLayer, Layer_Version, Machine, Project | 23 | from orm.models import Recipe, ProjectLayer, Layer_Version, Machine, Project |
| 25 | from orm.models import CustomImageRecipe, Package, Build, LogMessage, Task | 24 | from orm.models import CustomImageRecipe, Package, Build, LogMessage, Task |
| 26 | from orm.models import ProjectTarget | 25 | from orm.models import ProjectTarget |
| @@ -37,9 +36,13 @@ from toastergui.tablefilter import TableFilterActionDateRange | |||
| 37 | from toastergui.tablefilter import TableFilterActionDay | 36 | from toastergui.tablefilter import TableFilterActionDay |
| 38 | 37 | ||
| 39 | class ProjectFilters(object): | 38 | class ProjectFilters(object): |
| 40 | def __init__(self, project_layers): | 39 | @staticmethod |
| 41 | self.in_project = QuerysetFilter(Q(layer_version__in=project_layers)) | 40 | def in_project(project_layers): |
| 42 | self.not_in_project = QuerysetFilter(~Q(layer_version__in=project_layers)) | 41 | return Q(layer_version__in=project_layers) |
| 42 | |||
| 43 | @staticmethod | ||
| 44 | def not_in_project(project_layers): | ||
| 45 | return ~(ProjectFilters.in_project(project_layers)) | ||
| 43 | 46 | ||
| 44 | class LayersTable(ToasterTable): | 47 | class LayersTable(ToasterTable): |
| 45 | """Table of layers in Toaster""" | 48 | """Table of layers in Toaster""" |
| @@ -71,13 +74,13 @@ class LayersTable(ToasterTable): | |||
| 71 | in_project_action = TableFilterActionToggle( | 74 | in_project_action = TableFilterActionToggle( |
| 72 | "in_project", | 75 | "in_project", |
| 73 | "Layers added to this project", | 76 | "Layers added to this project", |
| 74 | QuerysetFilter(criteria) | 77 | criteria |
| 75 | ) | 78 | ) |
| 76 | 79 | ||
| 77 | not_in_project_action = TableFilterActionToggle( | 80 | not_in_project_action = TableFilterActionToggle( |
| 78 | "not_in_project", | 81 | "not_in_project", |
| 79 | "Layers not added to this project", | 82 | "Layers not added to this project", |
| 80 | QuerysetFilter(~criteria) | 83 | ~criteria |
| 81 | ) | 84 | ) |
| 82 | 85 | ||
| 83 | in_current_project_filter.add_action(in_project_action) | 86 | in_current_project_filter.add_action(in_project_action) |
| @@ -217,8 +220,6 @@ class MachinesTable(ToasterTable): | |||
| 217 | def setup_filters(self, *args, **kwargs): | 220 | def setup_filters(self, *args, **kwargs): |
| 218 | project = Project.objects.get(pk=kwargs['pid']) | 221 | project = Project.objects.get(pk=kwargs['pid']) |
| 219 | 222 | ||
| 220 | project_filters = ProjectFilters(self.project_layers) | ||
| 221 | |||
| 222 | in_current_project_filter = TableFilter( | 223 | in_current_project_filter = TableFilter( |
| 223 | "in_current_project", | 224 | "in_current_project", |
| 224 | "Filter by project machines" | 225 | "Filter by project machines" |
| @@ -227,13 +228,13 @@ class MachinesTable(ToasterTable): | |||
| 227 | in_project_action = TableFilterActionToggle( | 228 | in_project_action = TableFilterActionToggle( |
| 228 | "in_project", | 229 | "in_project", |
| 229 | "Machines provided by layers added to this project", | 230 | "Machines provided by layers added to this project", |
| 230 | project_filters.in_project | 231 | ProjectFilters.in_project(self.project_layers) |
| 231 | ) | 232 | ) |
| 232 | 233 | ||
| 233 | not_in_project_action = TableFilterActionToggle( | 234 | not_in_project_action = TableFilterActionToggle( |
| 234 | "not_in_project", | 235 | "not_in_project", |
| 235 | "Machines provided by layers not added to this project", | 236 | "Machines provided by layers not added to this project", |
| 236 | project_filters.not_in_project | 237 | ProjectFilters.not_in_project(self.project_layers) |
| 237 | ) | 238 | ) |
| 238 | 239 | ||
| 239 | in_current_project_filter.add_action(in_project_action) | 240 | in_current_project_filter.add_action(in_project_action) |
| @@ -350,8 +351,6 @@ class RecipesTable(ToasterTable): | |||
| 350 | return context | 351 | return context |
| 351 | 352 | ||
| 352 | def setup_filters(self, *args, **kwargs): | 353 | def setup_filters(self, *args, **kwargs): |
| 353 | project_filters = ProjectFilters(self.project_layers) | ||
| 354 | |||
| 355 | table_filter = TableFilter( | 354 | table_filter = TableFilter( |
| 356 | 'in_current_project', | 355 | 'in_current_project', |
| 357 | 'Filter by project recipes' | 356 | 'Filter by project recipes' |
| @@ -360,13 +359,13 @@ class RecipesTable(ToasterTable): | |||
| 360 | in_project_action = TableFilterActionToggle( | 359 | in_project_action = TableFilterActionToggle( |
| 361 | 'in_project', | 360 | 'in_project', |
| 362 | 'Recipes provided by layers added to this project', | 361 | 'Recipes provided by layers added to this project', |
| 363 | project_filters.in_project | 362 | ProjectFilters.in_project(self.project_layers) |
| 364 | ) | 363 | ) |
| 365 | 364 | ||
| 366 | not_in_project_action = TableFilterActionToggle( | 365 | not_in_project_action = TableFilterActionToggle( |
| 367 | 'not_in_project', | 366 | 'not_in_project', |
| 368 | 'Recipes provided by layers not added to this project', | 367 | 'Recipes provided by layers not added to this project', |
| 369 | project_filters.not_in_project | 368 | ProjectFilters.not_in_project(self.project_layers) |
| 370 | ) | 369 | ) |
| 371 | 370 | ||
| 372 | table_filter.add_action(in_project_action) | 371 | table_filter.add_action(in_project_action) |
| @@ -1140,13 +1139,13 @@ class BuildsTable(ToasterTable): | |||
| 1140 | successful_builds_action = TableFilterActionToggle( | 1139 | successful_builds_action = TableFilterActionToggle( |
| 1141 | 'successful_builds', | 1140 | 'successful_builds', |
| 1142 | 'Successful builds', | 1141 | 'Successful builds', |
| 1143 | QuerysetFilter(Q(outcome=Build.SUCCEEDED)) | 1142 | Q(outcome=Build.SUCCEEDED) |
| 1144 | ) | 1143 | ) |
| 1145 | 1144 | ||
| 1146 | failed_builds_action = TableFilterActionToggle( | 1145 | failed_builds_action = TableFilterActionToggle( |
| 1147 | 'failed_builds', | 1146 | 'failed_builds', |
| 1148 | 'Failed builds', | 1147 | 'Failed builds', |
| 1149 | QuerysetFilter(Q(outcome=Build.FAILED)) | 1148 | Q(outcome=Build.FAILED) |
| 1150 | ) | 1149 | ) |
| 1151 | 1150 | ||
| 1152 | outcome_filter.add_action(successful_builds_action) | 1151 | outcome_filter.add_action(successful_builds_action) |
| @@ -1226,13 +1225,13 @@ class BuildsTable(ToasterTable): | |||
| 1226 | with_failed_tasks_action = TableFilterActionToggle( | 1225 | with_failed_tasks_action = TableFilterActionToggle( |
| 1227 | 'with_failed_tasks', | 1226 | 'with_failed_tasks', |
| 1228 | 'Builds with failed tasks', | 1227 | 'Builds with failed tasks', |
| 1229 | QuerysetFilter(criteria) | 1228 | criteria |
| 1230 | ) | 1229 | ) |
| 1231 | 1230 | ||
| 1232 | without_failed_tasks_action = TableFilterActionToggle( | 1231 | without_failed_tasks_action = TableFilterActionToggle( |
| 1233 | 'without_failed_tasks', | 1232 | 'without_failed_tasks', |
| 1234 | 'Builds without failed tasks', | 1233 | 'Builds without failed tasks', |
| 1235 | QuerysetFilter(~criteria) | 1234 | ~criteria |
| 1236 | ) | 1235 | ) |
| 1237 | 1236 | ||
| 1238 | failed_tasks_filter.add_action(with_failed_tasks_action) | 1237 | failed_tasks_filter.add_action(with_failed_tasks_action) |
