diff options
author | David Reyna <David.Reyna@windriver.com> | 2017-06-27 13:44:28 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-06-28 16:02:15 +0100 |
commit | d74bcbeaf241a67871d62b7e2c17900ae900642e (patch) | |
tree | bd0bf6037a0de26e7668f146ec6ff4afde07e54f /bitbake/lib/toaster | |
parent | c3058ec4a4f2f4c57116816a5bede1e61a5a4cc4 (diff) | |
download | poky-d74bcbeaf241a67871d62b7e2c17900ae900642e.tar.gz |
bitbake: toaster: address Django-1.10 API deprecations
There are four main API deprecations in Django-1.10:
(a) String view arguments to url() must be replaced by
the explicit class reference
(b) New TEMPLATES stucture in settings.py consolidates
TEMPLATE_DIRS, TEMPLATE_CONTEXT_PROCESSORS,
TEMPLATE_LOADERS, TEMPLATE_STRING_IF_INVALID, and
TEMPLATE_DEBUG
(c) patterns() wrapper in url() is removed, with
urlpatterns now a simple list
(d) NoArgsCommand in commands() must be replace by
BaseCommand, and handle_noargs() changed to
handle()
Also, the Django version checker must be updated to accept
two digit sub-version numbers (e.g. "1.8" < "1.10")
[YOCTO #11684]
(Bitbake rev: e4c7a94fac7a53fc146387a57e5a09b9ec3caca0)
Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster')
8 files changed, 96 insertions, 79 deletions
diff --git a/bitbake/lib/toaster/bldcollector/urls.py b/bitbake/lib/toaster/bldcollector/urls.py index 64722f2cdc..076afdb722 100644 --- a/bitbake/lib/toaster/bldcollector/urls.py +++ b/bitbake/lib/toaster/bldcollector/urls.py | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # BitBake Toaster Implementation | 2 | # BitBake Toaster Implementation |
3 | # | 3 | # |
4 | # Copyright (C) 2014 Intel Corporation | 4 | # Copyright (C) 2014-2017 Intel Corporation |
5 | # | 5 | # |
6 | # This program is free software; you can redistribute it and/or modify | 6 | # This program is free software; you can redistribute it and/or modify |
7 | # it under the terms of the GNU General Public License version 2 as | 7 | # it under the terms of the GNU General Public License version 2 as |
@@ -19,7 +19,9 @@ | |||
19 | 19 | ||
20 | from django.conf.urls import patterns, include, url | 20 | from django.conf.urls import patterns, include, url |
21 | 21 | ||
22 | urlpatterns = patterns('bldcollector.views', | 22 | import bldcollector.views |
23 | |||
24 | urlpatterns = [ | ||
23 | # landing point for pushing a bitbake_eventlog.json file to this toaster instace | 25 | # landing point for pushing a bitbake_eventlog.json file to this toaster instace |
24 | url(r'^eventfile$', 'eventfile', name='eventfile'), | 26 | url(r'^eventfile$', bldcollector.views.eventfile, name='eventfile'), |
25 | ) | 27 | ] |
diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py b/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py index 2ed994f61f..d11166ef53 100644 --- a/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py +++ b/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py | |||
@@ -1,4 +1,4 @@ | |||
1 | from django.core.management.base import NoArgsCommand, CommandError | 1 | from django.core.management.base import BaseCommand, CommandError |
2 | from django.db import transaction | 2 | from django.db import transaction |
3 | 3 | ||
4 | from django.core.management import call_command | 4 | from django.core.management import call_command |
@@ -18,7 +18,7 @@ def DN(path): | |||
18 | return os.path.dirname(path) | 18 | return os.path.dirname(path) |
19 | 19 | ||
20 | 20 | ||
21 | class Command(NoArgsCommand): | 21 | class Command(BaseCommand): |
22 | args = "" | 22 | args = "" |
23 | help = "Verifies that the configured settings are valid and usable, or prompts the user to fix the settings." | 23 | help = "Verifies that the configured settings are valid and usable, or prompts the user to fix the settings." |
24 | 24 | ||
@@ -152,7 +152,7 @@ class Command(NoArgsCommand): | |||
152 | 152 | ||
153 | 153 | ||
154 | 154 | ||
155 | def handle_noargs(self, **options): | 155 | def handle(self, **options): |
156 | retval = 0 | 156 | retval = 0 |
157 | retval += self._verify_build_environment() | 157 | retval += self._verify_build_environment() |
158 | retval += self._verify_default_settings() | 158 | retval += self._verify_default_settings() |
diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py index df11f9d162..8eacb5e896 100644 --- a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py +++ b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py | |||
@@ -1,4 +1,4 @@ | |||
1 | from django.core.management.base import NoArgsCommand | 1 | from django.core.management.base import BaseCommand |
2 | from django.db import transaction | 2 | from django.db import transaction |
3 | from django.db.models import Q | 3 | from django.db.models import Q |
4 | 4 | ||
@@ -16,7 +16,7 @@ import os | |||
16 | logger = logging.getLogger("toaster") | 16 | logger = logging.getLogger("toaster") |
17 | 17 | ||
18 | 18 | ||
19 | class Command(NoArgsCommand): | 19 | class Command(BaseCommand): |
20 | args = "" | 20 | args = "" |
21 | help = "Schedules and executes build requests as possible. "\ | 21 | help = "Schedules and executes build requests as possible. "\ |
22 | "Does not return (interrupt with Ctrl-C)" | 22 | "Does not return (interrupt with Ctrl-C)" |
@@ -168,7 +168,7 @@ class Command(NoArgsCommand): | |||
168 | except Exception as e: | 168 | except Exception as e: |
169 | logger.warn("runbuilds: schedule exception %s" % str(e)) | 169 | logger.warn("runbuilds: schedule exception %s" % str(e)) |
170 | 170 | ||
171 | def handle_noargs(self, **options): | 171 | def handle(self, **options): |
172 | pidfile_path = os.path.join(os.environ.get("BUILDDIR", "."), | 172 | pidfile_path = os.path.join(os.environ.get("BUILDDIR", "."), |
173 | ".runbuilds.pid") | 173 | ".runbuilds.pid") |
174 | 174 | ||
diff --git a/bitbake/lib/toaster/orm/management/commands/lsupdates.py b/bitbake/lib/toaster/orm/management/commands/lsupdates.py index 68c6c423d8..90f07c9dc5 100644 --- a/bitbake/lib/toaster/orm/management/commands/lsupdates.py +++ b/bitbake/lib/toaster/orm/management/commands/lsupdates.py | |||
@@ -4,7 +4,7 @@ | |||
4 | # | 4 | # |
5 | # BitBake Toaster Implementation | 5 | # BitBake Toaster Implementation |
6 | # | 6 | # |
7 | # Copyright (C) 2016 Intel Corporation | 7 | # Copyright (C) 2016-2017 Intel Corporation |
8 | # | 8 | # |
9 | # This program is free software; you can redistribute it and/or modify | 9 | # This program is free software; you can redistribute it and/or modify |
10 | # it under the terms of the GNU General Public License version 2 as | 10 | # it under the terms of the GNU General Public License version 2 as |
@@ -19,7 +19,7 @@ | |||
19 | # with this program; if not, write to the Free Software Foundation, Inc., | 19 | # with this program; if not, write to the Free Software Foundation, Inc., |
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 django.core.management.base import NoArgsCommand | 22 | from django.core.management.base import BaseCommand |
23 | 23 | ||
24 | from orm.models import LayerSource, Layer, Release, Layer_Version | 24 | from orm.models import LayerSource, Layer, Release, Layer_Version |
25 | from orm.models import LayerVersionDependency, Machine, Recipe | 25 | from orm.models import LayerVersionDependency, Machine, Recipe |
@@ -56,7 +56,7 @@ class Spinner(threading.Thread): | |||
56 | self.signal = False | 56 | self.signal = False |
57 | 57 | ||
58 | 58 | ||
59 | class Command(NoArgsCommand): | 59 | class Command(BaseCommand): |
60 | args = "" | 60 | args = "" |
61 | help = "Updates locally cached information from a layerindex server" | 61 | help = "Updates locally cached information from a layerindex server" |
62 | 62 | ||
@@ -307,5 +307,5 @@ class Command(NoArgsCommand): | |||
307 | 307 | ||
308 | os.system('setterm -cursor on') | 308 | os.system('setterm -cursor on') |
309 | 309 | ||
310 | def handle_noargs(self, **options): | 310 | def handle(self, **options): |
311 | self.update() | 311 | self.update() |
diff --git a/bitbake/lib/toaster/toastergui/urls.py b/bitbake/lib/toaster/toastergui/urls.py index d92f190aed..1ad79a4dd3 100644 --- a/bitbake/lib/toaster/toastergui/urls.py +++ b/bitbake/lib/toaster/toastergui/urls.py | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # BitBake Toaster Implementation | 2 | # BitBake Toaster Implementation |
3 | # | 3 | # |
4 | # Copyright (C) 2013 Intel Corporation | 4 | # Copyright (C) 2013-2017 Intel Corporation |
5 | # | 5 | # |
6 | # This program is free software; you can redistribute it and/or modify | 6 | # This program is free software; you can redistribute it and/or modify |
7 | # it under the terms of the GNU General Public License version 2 as | 7 | # it under the terms of the GNU General Public License version 2 as |
@@ -25,49 +25,50 @@ from toastergui import buildtables | |||
25 | from toastergui import typeaheads | 25 | from toastergui import typeaheads |
26 | from toastergui import api | 26 | from toastergui import api |
27 | from toastergui import widgets | 27 | from toastergui import widgets |
28 | from toastergui import views | ||
28 | 29 | ||
29 | urlpatterns = patterns('toastergui.views', | 30 | urlpatterns = [ |
30 | # landing page | 31 | # landing page |
31 | url(r'^landing/$', 'landing', name='landing'), | 32 | url(r'^landing/$', views.landing, name='landing'), |
32 | 33 | ||
33 | url(r'^builds/$', | 34 | url(r'^builds/$', |
34 | tables.AllBuildsTable.as_view(template_name="builds-toastertable.html"), | 35 | tables.AllBuildsTable.as_view(template_name="builds-toastertable.html"), |
35 | name='all-builds'), | 36 | name='all-builds'), |
36 | 37 | ||
37 | # build info navigation | 38 | # build info navigation |
38 | url(r'^build/(?P<build_id>\d+)$', 'builddashboard', name="builddashboard"), | 39 | url(r'^build/(?P<build_id>\d+)$', views.builddashboard, name="builddashboard"), |
39 | url(r'^build/(?P<build_id>\d+)/tasks/$', | 40 | url(r'^build/(?P<build_id>\d+)/tasks/$', |
40 | buildtables.BuildTasksTable.as_view( | 41 | buildtables.BuildTasksTable.as_view( |
41 | template_name="buildinfo-toastertable.html"), | 42 | template_name="buildinfo-toastertable.html"), |
42 | name='tasks'), | 43 | name='tasks'), |
43 | 44 | ||
44 | url(r'^build/(?P<build_id>\d+)/task/(?P<task_id>\d+)$', 'task', name='task'), | 45 | url(r'^build/(?P<build_id>\d+)/task/(?P<task_id>\d+)$', views.task, name='task'), |
45 | 46 | ||
46 | url(r'^build/(?P<build_id>\d+)/recipes/$', | 47 | url(r'^build/(?P<build_id>\d+)/recipes/$', |
47 | buildtables.BuiltRecipesTable.as_view( | 48 | buildtables.BuiltRecipesTable.as_view( |
48 | template_name="buildinfo-toastertable.html"), | 49 | template_name="buildinfo-toastertable.html"), |
49 | name='recipes'), | 50 | name='recipes'), |
50 | 51 | ||
51 | url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)/active_tab/(?P<active_tab>\d{1})$', 'recipe', name='recipe'), | 52 | url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)/active_tab/(?P<active_tab>\d{1})$', views.recipe, name='recipe'), |
52 | 53 | ||
53 | url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)$', 'recipe', name='recipe'), | 54 | url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)$', views.recipe, name='recipe'), |
54 | url(r'^build/(?P<build_id>\d+)/recipe_packages/(?P<recipe_id>\d+)$', 'recipe_packages', name='recipe_packages'), | 55 | url(r'^build/(?P<build_id>\d+)/recipe_packages/(?P<recipe_id>\d+)$', views.recipe_packages, name='recipe_packages'), |
55 | 56 | ||
56 | url(r'^build/(?P<build_id>\d+)/packages/$', | 57 | url(r'^build/(?P<build_id>\d+)/packages/$', |
57 | buildtables.BuiltPackagesTable.as_view( | 58 | buildtables.BuiltPackagesTable.as_view( |
58 | template_name="buildinfo-toastertable.html"), | 59 | template_name="buildinfo-toastertable.html"), |
59 | name='packages'), | 60 | name='packages'), |
60 | 61 | ||
61 | url(r'^build/(?P<build_id>\d+)/package/(?P<package_id>\d+)$', 'package_built_detail', | 62 | url(r'^build/(?P<build_id>\d+)/package/(?P<package_id>\d+)$', views.package_built_detail, |
62 | name='package_built_detail'), | 63 | name='package_built_detail'), |
63 | url(r'^build/(?P<build_id>\d+)/package_built_dependencies/(?P<package_id>\d+)$', | 64 | url(r'^build/(?P<build_id>\d+)/package_built_dependencies/(?P<package_id>\d+)$', |
64 | 'package_built_dependencies', name='package_built_dependencies'), | 65 | views.package_built_dependencies, name='package_built_dependencies'), |
65 | url(r'^build/(?P<build_id>\d+)/package_included_detail/(?P<target_id>\d+)/(?P<package_id>\d+)$', | 66 | url(r'^build/(?P<build_id>\d+)/package_included_detail/(?P<target_id>\d+)/(?P<package_id>\d+)$', |
66 | 'package_included_detail', name='package_included_detail'), | 67 | views.package_included_detail, name='package_included_detail'), |
67 | url(r'^build/(?P<build_id>\d+)/package_included_dependencies/(?P<target_id>\d+)/(?P<package_id>\d+)$', | 68 | url(r'^build/(?P<build_id>\d+)/package_included_dependencies/(?P<target_id>\d+)/(?P<package_id>\d+)$', |
68 | 'package_included_dependencies', name='package_included_dependencies'), | 69 | views.package_included_dependencies, name='package_included_dependencies'), |
69 | url(r'^build/(?P<build_id>\d+)/package_included_reverse_dependencies/(?P<target_id>\d+)/(?P<package_id>\d+)$', | 70 | url(r'^build/(?P<build_id>\d+)/package_included_reverse_dependencies/(?P<target_id>\d+)/(?P<package_id>\d+)$', |
70 | 'package_included_reverse_dependencies', name='package_included_reverse_dependencies'), | 71 | views.package_included_reverse_dependencies, name='package_included_reverse_dependencies'), |
71 | 72 | ||
72 | url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$', | 73 | url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$', |
73 | buildtables.InstalledPackagesTable.as_view( | 74 | buildtables.InstalledPackagesTable.as_view( |
@@ -75,11 +76,11 @@ urlpatterns = patterns('toastergui.views', | |||
75 | name='target'), | 76 | name='target'), |
76 | 77 | ||
77 | 78 | ||
78 | url(r'^dentries/build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$', 'xhr_dirinfo', name='dirinfo_ajax'), | 79 | url(r'^dentries/build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$', views.xhr_dirinfo, name='dirinfo_ajax'), |
79 | url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo$', 'dirinfo', name='dirinfo'), | 80 | url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo$', views.dirinfo, name='dirinfo'), |
80 | url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo_filepath/_(?P<file_path>(?:/[^/\n]+)*)$', 'dirinfo', name='dirinfo_filepath'), | 81 | url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo_filepath/_(?P<file_path>(?:/[^/\n]+)*)$', views.dirinfo, name='dirinfo_filepath'), |
81 | url(r'^build/(?P<build_id>\d+)/configuration$', 'configuration', name='configuration'), | 82 | url(r'^build/(?P<build_id>\d+)/configuration$', views.configuration, name='configuration'), |
82 | url(r'^build/(?P<build_id>\d+)/configvars$', 'configvars', name='configvars'), | 83 | url(r'^build/(?P<build_id>\d+)/configvars$', views.configvars, name='configvars'), |
83 | url(r'^build/(?P<build_id>\d+)/buildtime$', | 84 | url(r'^build/(?P<build_id>\d+)/buildtime$', |
84 | buildtables.BuildTimeTable.as_view( | 85 | buildtables.BuildTimeTable.as_view( |
85 | template_name="buildinfo-toastertable.html"), | 86 | template_name="buildinfo-toastertable.html"), |
@@ -97,26 +98,26 @@ urlpatterns = patterns('toastergui.views', | |||
97 | 98 | ||
98 | # image information dir | 99 | # image information dir |
99 | url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/packagefile/(?P<packagefile_id>\d+)$', | 100 | url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/packagefile/(?P<packagefile_id>\d+)$', |
100 | 'image_information_dir', name='image_information_dir'), | 101 | views.image_information_dir, name='image_information_dir'), |
101 | 102 | ||
102 | # build download artifact | 103 | # build download artifact |
103 | url(r'^build/(?P<build_id>\d+)/artifact/(?P<artifact_type>\w+)/id/(?P<artifact_id>\w+)', 'build_artifact', name="build_artifact"), | 104 | url(r'^build/(?P<build_id>\d+)/artifact/(?P<artifact_type>\w+)/id/(?P<artifact_id>\w+)', views.build_artifact, name="build_artifact"), |
104 | 105 | ||
105 | # project URLs | 106 | # project URLs |
106 | url(r'^newproject/$', 'newproject', name='newproject'), | 107 | url(r'^newproject/$', views.newproject, name='newproject'), |
107 | 108 | ||
108 | url(r'^projects/$', | 109 | url(r'^projects/$', |
109 | tables.ProjectsTable.as_view(template_name="projects-toastertable.html"), | 110 | tables.ProjectsTable.as_view(template_name="projects-toastertable.html"), |
110 | name='all-projects'), | 111 | name='all-projects'), |
111 | 112 | ||
112 | url(r'^project/(?P<pid>\d+)/$', 'project', name='project'), | 113 | url(r'^project/(?P<pid>\d+)/$', views.project, name='project'), |
113 | url(r'^project/(?P<pid>\d+)/configuration$', 'projectconf', name='projectconf'), | 114 | url(r'^project/(?P<pid>\d+)/configuration$', views.projectconf, name='projectconf'), |
114 | url(r'^project/(?P<pid>\d+)/builds/$', | 115 | url(r'^project/(?P<pid>\d+)/builds/$', |
115 | tables.ProjectBuildsTable.as_view(template_name="projectbuilds-toastertable.html"), | 116 | tables.ProjectBuildsTable.as_view(template_name="projectbuilds-toastertable.html"), |
116 | name='projectbuilds'), | 117 | name='projectbuilds'), |
117 | 118 | ||
118 | # the import layer is a project-specific functionality; | 119 | # the import layer is a project-specific functionality; |
119 | url(r'^project/(?P<pid>\d+)/importlayer$', 'importlayer', name='importlayer'), | 120 | url(r'^project/(?P<pid>\d+)/importlayer$', views.importlayer, name='importlayer'), |
120 | 121 | ||
121 | # the table pages that have been converted to ToasterTable widget | 122 | # the table pages that have been converted to ToasterTable widget |
122 | url(r'^project/(?P<pid>\d+)/machines/$', | 123 | url(r'^project/(?P<pid>\d+)/machines/$', |
@@ -142,7 +143,7 @@ urlpatterns = patterns('toastergui.views', | |||
142 | name="projectlayers"), | 143 | name="projectlayers"), |
143 | 144 | ||
144 | url(r'^project/(?P<pid>\d+)/layer/(?P<layerid>\d+)$', | 145 | url(r'^project/(?P<pid>\d+)/layer/(?P<layerid>\d+)$', |
145 | 'layerdetails', name='layerdetails'), | 146 | views.layerdetails, name='layerdetails'), |
146 | 147 | ||
147 | url(r'^project/(?P<pid>\d+)/layer/(?P<layerid>\d+)/recipes/$', | 148 | url(r'^project/(?P<pid>\d+)/layer/(?P<layerid>\d+)/recipes/$', |
148 | tables.LayerRecipesTable.as_view(template_name="generic-toastertable-page.html"), | 149 | tables.LayerRecipesTable.as_view(template_name="generic-toastertable-page.html"), |
@@ -166,7 +167,7 @@ urlpatterns = patterns('toastergui.views', | |||
166 | name="customrecipe"), | 167 | name="customrecipe"), |
167 | 168 | ||
168 | url(r'^project/(?P<pid>\d+)/customrecipe/(?P<recipe_id>\d+)/download$', | 169 | url(r'^project/(?P<pid>\d+)/customrecipe/(?P<recipe_id>\d+)/download$', |
169 | 'customrecipe_download', | 170 | views.customrecipe_download, |
170 | name="customrecipedownload"), | 171 | name="customrecipedownload"), |
171 | 172 | ||
172 | url(r'^project/(?P<pid>\d+)/recipe/(?P<recipe_id>\d+)$', | 173 | url(r'^project/(?P<pid>\d+)/recipe/(?P<recipe_id>\d+)$', |
@@ -186,9 +187,9 @@ urlpatterns = patterns('toastergui.views', | |||
186 | typeaheads.GitRevisionTypeAhead.as_view(), | 187 | typeaheads.GitRevisionTypeAhead.as_view(), |
187 | name='xhr_gitrevtypeahead'), | 188 | name='xhr_gitrevtypeahead'), |
188 | 189 | ||
189 | url(r'^xhr_testreleasechange/(?P<pid>\d+)$', 'xhr_testreleasechange', | 190 | url(r'^xhr_testreleasechange/(?P<pid>\d+)$', views.xhr_testreleasechange, |
190 | name='xhr_testreleasechange'), | 191 | name='xhr_testreleasechange'), |
191 | url(r'^xhr_configvaredit/(?P<pid>\d+)$', 'xhr_configvaredit', | 192 | url(r'^xhr_configvaredit/(?P<pid>\d+)$', views.xhr_configvaredit, |
192 | name='xhr_configvaredit'), | 193 | name='xhr_configvaredit'), |
193 | 194 | ||
194 | url(r'^xhr_layer/(?P<pid>\d+)/(?P<layerversion_id>\d+)$', | 195 | url(r'^xhr_layer/(?P<pid>\d+)/(?P<layerversion_id>\d+)$', |
@@ -200,7 +201,7 @@ urlpatterns = patterns('toastergui.views', | |||
200 | name='xhr_layer'), | 201 | name='xhr_layer'), |
201 | 202 | ||
202 | # JS Unit tests | 203 | # JS Unit tests |
203 | url(r'^js-unit-tests/$', 'jsunittests', name='js-unit-tests'), | 204 | url(r'^js-unit-tests/$', views.jsunittests, name='js-unit-tests'), |
204 | 205 | ||
205 | # image customisation functionality | 206 | # image customisation functionality |
206 | url(r'^xhr_customrecipe/(?P<recipe_id>\d+)' | 207 | url(r'^xhr_customrecipe/(?P<recipe_id>\d+)' |
@@ -237,4 +238,4 @@ urlpatterns = patterns('toastergui.views', | |||
237 | 238 | ||
238 | # default redirection | 239 | # default redirection |
239 | url(r'^$', RedirectView.as_view(url='landing', permanent=True)), | 240 | url(r'^$', RedirectView.as_view(url='landing', permanent=True)), |
240 | ) | 241 | ] |
diff --git a/bitbake/lib/toaster/toastermain/management/commands/buildslist.py b/bitbake/lib/toaster/toastermain/management/commands/buildslist.py index 8dfef0aa00..70b5812d98 100644 --- a/bitbake/lib/toaster/toastermain/management/commands/buildslist.py +++ b/bitbake/lib/toaster/toastermain/management/commands/buildslist.py | |||
@@ -1,13 +1,13 @@ | |||
1 | from django.core.management.base import NoArgsCommand, CommandError | 1 | from django.core.management.base import BaseCommand, CommandError |
2 | from orm.models import Build | 2 | from orm.models import Build |
3 | import os | 3 | import os |
4 | 4 | ||
5 | 5 | ||
6 | 6 | ||
7 | class Command(NoArgsCommand): | 7 | class Command(BaseCommand): |
8 | args = "" | 8 | args = "" |
9 | help = "Lists current builds" | 9 | help = "Lists current builds" |
10 | 10 | ||
11 | def handle_noargs(self,**options): | 11 | def handle(self,**options): |
12 | for b in Build.objects.all(): | 12 | for b in Build.objects.all(): |
13 | print("%d: %s %s %s" % (b.pk, b.machine, b.distro, ",".join([x.target for x in b.target_set.all()]))) | 13 | print("%d: %s %s %s" % (b.pk, b.machine, b.distro, ",".join([x.target for x in b.target_set.all()]))) |
diff --git a/bitbake/lib/toaster/toastermain/settings.py b/bitbake/lib/toaster/toastermain/settings.py index 1fd649c080..54ab31f302 100644 --- a/bitbake/lib/toaster/toastermain/settings.py +++ b/bitbake/lib/toaster/toastermain/settings.py | |||
@@ -24,7 +24,6 @@ | |||
24 | import os | 24 | import os |
25 | 25 | ||
26 | DEBUG = True | 26 | DEBUG = True |
27 | TEMPLATE_DEBUG = DEBUG | ||
28 | 27 | ||
29 | # Set to True to see the SQL queries in console | 28 | # Set to True to see the SQL queries in console |
30 | SQL_DEBUG = False | 29 | SQL_DEBUG = False |
@@ -161,12 +160,47 @@ STATICFILES_FINDERS = ( | |||
161 | # Make this unique, and don't share it with anybody. | 160 | # Make this unique, and don't share it with anybody. |
162 | SECRET_KEY = 'NOT_SUITABLE_FOR_HOSTED_DEPLOYMENT' | 161 | SECRET_KEY = 'NOT_SUITABLE_FOR_HOSTED_DEPLOYMENT' |
163 | 162 | ||
164 | # List of callables that know how to import templates from various sources. | 163 | class InvalidString(str): |
165 | TEMPLATE_LOADERS = ( | 164 | def __mod__(self, other): |
166 | 'django.template.loaders.filesystem.Loader', | 165 | from django.template.base import TemplateSyntaxError |
167 | 'django.template.loaders.app_directories.Loader', | 166 | raise TemplateSyntaxError( |
168 | # 'django.template.loaders.eggs.Loader', | 167 | "Undefined variable or unknown value for: \"%s\"" % other) |
169 | ) | 168 | |
169 | TEMPLATES = [ | ||
170 | { | ||
171 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', | ||
172 | 'DIRS': [ | ||
173 | # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". | ||
174 | # Always use forward slashes, even on Windows. | ||
175 | # Don't forget to use absolute paths, not relative paths. | ||
176 | ], | ||
177 | 'OPTIONS': { | ||
178 | 'context_processors': [ | ||
179 | # Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this | ||
180 | # list if you haven't customized them: | ||
181 | 'django.contrib.auth.context_processors.auth', | ||
182 | 'django.template.context_processors.debug', | ||
183 | 'django.template.context_processors.i18n', | ||
184 | 'django.template.context_processors.media', | ||
185 | 'django.template.context_processors.static', | ||
186 | 'django.template.context_processors.tz', | ||
187 | 'django.contrib.messages.context_processors.messages', | ||
188 | # Custom | ||
189 | 'django.core.context_processors.request', | ||
190 | 'toastergui.views.managedcontextprocessor', | ||
191 | |||
192 | ], | ||
193 | 'loaders': [ | ||
194 | # List of callables that know how to import templates from various sources. | ||
195 | 'django.template.loaders.filesystem.Loader', | ||
196 | 'django.template.loaders.app_directories.Loader', | ||
197 | #'django.template.loaders.eggs.Loader', | ||
198 | ], | ||
199 | 'string_if_invalid': InvalidString("%s"), | ||
200 | 'debug': DEBUG, | ||
201 | }, | ||
202 | }, | ||
203 | ] | ||
170 | 204 | ||
171 | MIDDLEWARE_CLASSES = ( | 205 | MIDDLEWARE_CLASSES = ( |
172 | 'django.middleware.common.CommonMiddleware', | 206 | 'django.middleware.common.CommonMiddleware', |
@@ -203,22 +237,6 @@ ROOT_URLCONF = 'toastermain.urls' | |||
203 | # Python dotted path to the WSGI application used by Django's runserver. | 237 | # Python dotted path to the WSGI application used by Django's runserver. |
204 | WSGI_APPLICATION = 'toastermain.wsgi.application' | 238 | WSGI_APPLICATION = 'toastermain.wsgi.application' |
205 | 239 | ||
206 | TEMPLATE_DIRS = ( | ||
207 | # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". | ||
208 | # Always use forward slashes, even on Windows. | ||
209 | # Don't forget to use absolute paths, not relative paths. | ||
210 | ) | ||
211 | |||
212 | TEMPLATE_CONTEXT_PROCESSORS = ('django.contrib.auth.context_processors.auth', | ||
213 | 'django.core.context_processors.debug', | ||
214 | 'django.core.context_processors.i18n', | ||
215 | 'django.core.context_processors.media', | ||
216 | 'django.core.context_processors.static', | ||
217 | 'django.core.context_processors.tz', | ||
218 | 'django.contrib.messages.context_processors.messages', | ||
219 | "django.core.context_processors.request", | ||
220 | 'toastergui.views.managedcontextprocessor', | ||
221 | ) | ||
222 | 240 | ||
223 | INSTALLED_APPS = ( | 241 | INSTALLED_APPS = ( |
224 | 'django.contrib.auth', | 242 | 'django.contrib.auth', |
@@ -348,10 +366,4 @@ connection_created.connect(activate_synchronous_off) | |||
348 | # | 366 | # |
349 | 367 | ||
350 | 368 | ||
351 | class InvalidString(str): | ||
352 | def __mod__(self, other): | ||
353 | from django.template.base import TemplateSyntaxError | ||
354 | raise TemplateSyntaxError( | ||
355 | "Undefined variable or unknown value for: \"%s\"" % other) | ||
356 | 369 | ||
357 | TEMPLATE_STRING_IF_INVALID = InvalidString("%s") | ||
diff --git a/bitbake/lib/toaster/toastermain/urls.py b/bitbake/lib/toaster/toastermain/urls.py index 1f8599edc3..bb325596bb 100644 --- a/bitbake/lib/toaster/toastermain/urls.py +++ b/bitbake/lib/toaster/toastermain/urls.py | |||
@@ -23,6 +23,8 @@ from django.conf.urls import patterns, include, url | |||
23 | from django.views.generic import RedirectView | 23 | from django.views.generic import RedirectView |
24 | from django.views.decorators.cache import never_cache | 24 | from django.views.decorators.cache import never_cache |
25 | 25 | ||
26 | import bldcollector.views | ||
27 | |||
26 | import logging | 28 | import logging |
27 | 29 | ||
28 | logger = logging.getLogger("toaster") | 30 | logger = logging.getLogger("toaster") |
@@ -31,7 +33,7 @@ logger = logging.getLogger("toaster") | |||
31 | from django.contrib import admin | 33 | from django.contrib import admin |
32 | admin.autodiscover() | 34 | admin.autodiscover() |
33 | 35 | ||
34 | urlpatterns = patterns('', | 36 | urlpatterns = [ |
35 | 37 | ||
36 | # Examples: | 38 | # Examples: |
37 | # url(r'^toaster/', include('toaster.foo.urls')), | 39 | # url(r'^toaster/', include('toaster.foo.urls')), |
@@ -42,11 +44,11 @@ urlpatterns = patterns('', | |||
42 | 44 | ||
43 | # This is here to maintain backward compatibility and will be deprecated | 45 | # This is here to maintain backward compatibility and will be deprecated |
44 | # in the future. | 46 | # in the future. |
45 | url(r'^orm/eventfile$', 'bldcollector.views.eventfile'), | 47 | url(r'^orm/eventfile$', bldcollector.views.eventfile), |
46 | 48 | ||
47 | # if no application is selected, we have the magic toastergui app here | 49 | # if no application is selected, we have the magic toastergui app here |
48 | url(r'^$', never_cache(RedirectView.as_view(url='/toastergui/', permanent=True))), | 50 | url(r'^$', never_cache(RedirectView.as_view(url='/toastergui/', permanent=True))), |
49 | ) | 51 | ] |
50 | 52 | ||
51 | import toastermain.settings | 53 | import toastermain.settings |
52 | 54 | ||