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/toastermain | |
| 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/toastermain')
| -rw-r--r-- | bitbake/lib/toaster/toastermain/management/commands/buildslist.py | 6 | ||||
| -rw-r--r-- | bitbake/lib/toaster/toastermain/settings.py | 70 | ||||
| -rw-r--r-- | bitbake/lib/toaster/toastermain/urls.py | 8 |
3 files changed, 49 insertions, 35 deletions
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 | ||
