diff options
Diffstat (limited to 'bitbake/lib/toaster/bldviewer/views.py')
-rw-r--r-- | bitbake/lib/toaster/bldviewer/views.py | 47 |
1 files changed, 35 insertions, 12 deletions
diff --git a/bitbake/lib/toaster/bldviewer/views.py b/bitbake/lib/toaster/bldviewer/views.py index 3eb785b6c6..7cb9b42379 100644 --- a/bitbake/lib/toaster/bldviewer/views.py +++ b/bitbake/lib/toaster/bldviewer/views.py | |||
@@ -24,15 +24,38 @@ from orm.models import Build, Target, Task, Layer, Layer_Version, Recipe, LogMes | |||
24 | from orm.models import Task_Dependency, Recipe_Dependency, Package, Package_File, Package_Dependency | 24 | from orm.models import Task_Dependency, Recipe_Dependency, Package, Package_File, Package_Dependency |
25 | from orm.models import Target_Installed_Package | 25 | from orm.models import Target_Installed_Package |
26 | from django.views.decorators.cache import cache_control | 26 | from django.views.decorators.cache import cache_control |
27 | from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger | ||
28 | |||
29 | |||
30 | def _build_page_range(paginator, index = 1): | ||
31 | try: | ||
32 | page = paginator.page(index) | ||
33 | except PageNotAnInteger: | ||
34 | page = paginator.page(1) | ||
35 | except EmptyPage: | ||
36 | page = paginator.page(paginator.num_pages) | ||
37 | |||
38 | page.page_range = [page.number] | ||
39 | crt_range = 0 | ||
40 | for i in range(1,5): | ||
41 | if (page.number + i) <= paginator.num_pages: | ||
42 | page.page_range = page.page_range + [ page.number + i] | ||
43 | crt_range +=1 | ||
44 | if (page.number - i) > 0: | ||
45 | page.page_range = [page.number -i] + page.page_range | ||
46 | crt_range +=1 | ||
47 | if crt_range == 4: | ||
48 | break | ||
49 | return page | ||
27 | 50 | ||
28 | @cache_control(no_store=True) | 51 | @cache_control(no_store=True) |
29 | def build(request): | 52 | def build(request): |
30 | template = 'build.html' | 53 | template = 'build.html' |
31 | build_info = Build.objects.all() | ||
32 | |||
33 | logs = LogMessage.objects.all() | 54 | logs = LogMessage.objects.all() |
34 | 55 | ||
35 | context = {'builds': build_info, 'logs': logs , | 56 | build_info = _build_page_range(Paginator(Build.objects.order_by("-id"), 10),request.GET.get('page', 1)) |
57 | |||
58 | context = {'objects': build_info, 'logs': logs , | ||
36 | 'hideshowcols' : [ | 59 | 'hideshowcols' : [ |
37 | {'name': 'Output', 'order':10}, | 60 | {'name': 'Output', 'order':10}, |
38 | {'name': 'Log', 'order':11}, | 61 | {'name': 'Log', 'order':11}, |
@@ -61,38 +84,38 @@ def _find_task_provider(task): | |||
61 | def task(request, build_id): | 84 | def task(request, build_id): |
62 | template = 'task.html' | 85 | template = 'task.html' |
63 | 86 | ||
64 | tasks = Task.objects.filter(build=build_id) | 87 | tasks = _build_page_range(Paginator(Task.objects.filter(build=build_id), 100),request.GET.get('page', 1)) |
65 | 88 | ||
66 | for t in tasks: | 89 | for t in tasks: |
67 | if t.outcome == Task.OUTCOME_COVERED: | 90 | if t.outcome == Task.OUTCOME_COVERED: |
68 | t.provider = _find_task_provider(t) | 91 | t.provider = _find_task_provider(t) |
69 | 92 | ||
70 | context = {'build': Build.objects.filter(pk=build_id)[0], 'tasks': tasks} | 93 | context = {'build': Build.objects.filter(pk=build_id)[0], 'objects': tasks} |
71 | 94 | ||
72 | return render(request, template, context) | 95 | return render(request, template, context) |
73 | 96 | ||
74 | def configuration(request, build_id): | 97 | def configuration(request, build_id): |
75 | template = 'configuration.html' | 98 | template = 'configuration.html' |
76 | variables = Variable.objects.filter(build=build_id) | 99 | variables = _build_page_range(Paginator(Variable.objects.filter(build=build_id), 50), request.GET.get('page', 1)) |
77 | context = {'build': Build.objects.filter(pk=build_id)[0], 'configuration' : variables} | 100 | context = {'build': Build.objects.filter(pk=build_id)[0], 'objects' : variables} |
78 | return render(request, template, context) | 101 | return render(request, template, context) |
79 | 102 | ||
80 | def bpackage(request, build_id): | 103 | def bpackage(request, build_id): |
81 | template = 'bpackage.html' | 104 | template = 'bpackage.html' |
82 | packages = Package.objects.filter(build = build_id) | 105 | packages = Package.objects.filter(build = build_id) |
83 | context = {'build': Build.objects.filter(pk=build_id)[0], 'packages' : packages} | 106 | context = {'build': Build.objects.filter(pk=build_id)[0], 'objects' : packages} |
84 | return render(request, template, context) | 107 | return render(request, template, context) |
85 | 108 | ||
86 | def bfile(request, build_id, package_id): | 109 | def bfile(request, build_id, package_id): |
87 | template = 'bfile.html' | 110 | template = 'bfile.html' |
88 | files = Package_File.objects.filter(package = package_id) | 111 | files = Package_File.objects.filter(package = package_id) |
89 | context = {'build': Build.objects.filter(pk=build_id)[0], 'files' : files} | 112 | context = {'build': Build.objects.filter(pk=build_id)[0], 'objects' : files} |
90 | return render(request, template, context) | 113 | return render(request, template, context) |
91 | 114 | ||
92 | def tpackage(request, build_id, target_id): | 115 | def tpackage(request, build_id, target_id): |
93 | template = 'package.html' | 116 | template = 'package.html' |
94 | packages = map(lambda x: x.package, list(Target_Installed_Package.objects.filter(target=target_id))) | 117 | packages = map(lambda x: x.package, list(Target_Installed_Package.objects.filter(target=target_id))) |
95 | context = {'build': Build.objects.filter(pk=build_id)[0], 'packages' : packages} | 118 | context = {'build': Build.objects.filter(pk=build_id)[0], 'objects' : packages} |
96 | return render(request, template, context) | 119 | return render(request, template, context) |
97 | 120 | ||
98 | def layer(request): | 121 | def layer(request): |
@@ -104,7 +127,7 @@ def layer(request): | |||
104 | for liv in li.versions: | 127 | for liv in li.versions: |
105 | liv.count = Recipe.objects.filter(layer_version__id = liv.id).count() | 128 | liv.count = Recipe.objects.filter(layer_version__id = liv.id).count() |
106 | 129 | ||
107 | context = {'layers': layer_info} | 130 | context = {'objects': layer_info} |
108 | 131 | ||
109 | return render(request, template, context) | 132 | return render(request, template, context) |
110 | 133 | ||
@@ -113,7 +136,7 @@ def layer_versions_recipes(request, layerversion_id): | |||
113 | template = 'recipe.html' | 136 | template = 'recipe.html' |
114 | recipes = Recipe.objects.filter(layer_version__id = layerversion_id) | 137 | recipes = Recipe.objects.filter(layer_version__id = layerversion_id) |
115 | 138 | ||
116 | context = {'recipes': recipes, | 139 | context = {'objects': recipes, |
117 | 'layer_version' : Layer_Version.objects.filter( id = layerversion_id )[0] | 140 | 'layer_version' : Layer_Version.objects.filter( id = layerversion_id )[0] |
118 | } | 141 | } |
119 | 142 | ||