From 8e5761e62a6b1ed4aa3a651d7b668f0c8a356a05 Mon Sep 17 00:00:00 2001 From: Sajeyks Date: Tue, 6 Oct 2026 01:10:06 +0300 Subject: [PATCH] Move settings and middleware to Django 1.11 style Use MIDDLEWARE with adapted old-style middleware, the template context processors, explicit bootstrap3 URLs, the captcha app name, and drop the obsolete migration module overrides and removed apps. --- dynamicweb/settings-test/__init__.py | 41 +++++-------------------- dynamicweb/settings/base.py | 45 +++++----------------------- dynamicweb/settings/local.py | 6 ++-- utils/forms.py | 2 +- utils/middleware.py | 11 +++++-- 5 files changed, 28 insertions(+), 77 deletions(-) diff --git a/dynamicweb/settings-test/__init__.py b/dynamicweb/settings-test/__init__.py index 1a8babdd..fcff0879 100644 --- a/dynamicweb/settings-test/__init__.py +++ b/dynamicweb/settings-test/__init__.py @@ -85,7 +85,6 @@ INSTALLED_APPS = ( 'taggit_autosuggest', 'django_select2', 'meta', - 'meta_mixin', # 'admin_enhancer', 'djangocms_blog', 'bootstrap3', @@ -96,12 +95,11 @@ INSTALLED_APPS = ( 'digitalglarus', ) -MIDDLEWARE_CLASSES = ( +MIDDLEWARE = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.locale.LocaleMiddleware', @@ -137,13 +135,13 @@ WSGI_APPLICATION = 'dynamicweb.wsgi.application' # items to be merged into the context. TEMPLATE_CONTEXT_PROCESSORS = ( "django.contrib.auth.context_processors.auth", - "django.core.context_processors.debug", - "django.core.context_processors.i18n", - "django.core.context_processors.media", - "django.core.context_processors.static", - "django.core.context_processors.tz", + "django.template.context_processors.debug", + "django.template.context_processors.i18n", + "django.template.context_processors.media", + "django.template.context_processors.static", + "django.template.context_processors.tz", "django.contrib.messages.context_processors.messages", - "django.core.context_processors.request", + "django.template.context_processors.request", 'sekizai.context_processors.sekizai', 'cms.context_processors.cms_settings', ) @@ -284,31 +282,6 @@ TEMPLATE_DIRS = ( META_SITE_PROTOCOL = 'http' META_USE_SITES = True -MIGRATION_MODULES = { - 'cms': 'cms.migrations', - 'filer': 'filer.migrations_django', - 'menus': 'menus.migrations_django', - 'djangocms_flash': 'djangocms_flash.migrations_django', - 'djangocms_googlemap': 'djangocms_googlemap.migrations_django', - 'djangocms_inherit': 'djangocms_inherit.migrations_django', - 'djangocms_link': 'djangocms_link.migrations_django', - 'djangocms_snippet': 'djangocms_snippet.migrations_django', - 'djangocms_teaser': 'djangocms_teaser.migrations_django', - 'djangocms_column': 'djangocms_column.migrations_django', - 'djangocms_flash': 'djangocms_flash.migrations_django', - 'djangocms_googlemap': 'djangocms_googlemap.migrations_django', - 'djangocms_inherit': 'djangocms_inherit.migrations_django', - 'djangocms_style': 'djangocms_style.migrations_django', - 'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django', - 'cmsplugin_filer_file': 'cmsplugin_filer_file.migrations_django', - 'cmsplugin_filer_folder': 'cmsplugin_filer_folder.migrations_django', - 'cmsplugin_filer_link': 'cmsplugin_filer_link.migrations_django', - 'cmsplugin_filer_teaser': 'cmsplugin_filer_teaser.migrations_django', - 'cmsplugin_filer_utils': 'cmsplugin_filer_utils.migrations_django', - 'cmsplugin_filer_video': 'cmsplugin_filer_video.migrations_django', - 'djangocms_text_ckeditor': 'djangocms_text_ckeditor.migrations', -} - STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py index 8bd24bd5..96c254e3 100644 --- a/dynamicweb/settings/base.py +++ b/dynamicweb/settings/base.py @@ -113,7 +113,6 @@ INSTALLED_APPS = ( 'taggit_autosuggest', # 'django_select2', 'meta', - 'meta_mixin', 'bootstrap3', 'compressor', 'filer', @@ -125,7 +124,6 @@ INSTALLED_APPS = ( 'aldryn_common', 'aldryn_newsblog', 'aldryn_people', - 'aldryn_reversion', 'aldryn_translation_tools', 'treebeard', # utilities for implementing a tree 'sekizai', # for javascript and css management @@ -137,7 +135,7 @@ INSTALLED_APPS = ( 'djangocms_file', 'djangocms_picture', 'djangocms_video', - 'django_recaptcha', + 'captcha', # 'djangocms_flash', # 'djangocms_googlemap', # 'djangocms_inherit', @@ -169,13 +167,12 @@ INSTALLED_APPS = ( 'webhook', ) -MIDDLEWARE_CLASSES = ( +MIDDLEWARE = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'utils.middleware.MultipleProxyMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.locale.LocaleMiddleware', @@ -185,7 +182,7 @@ MIDDLEWARE_CLASSES = ( 'cms.middleware.toolbar.ToolbarMiddleware', 'cms.middleware.language.LanguageCookieMiddleware', 'multisite.middleware.DynamicSiteMiddleware', - 'djangocms_multisite.middleware.CMSMultiSiteMiddleware', + 'utils.middleware.CMSMultiSiteMiddleware', ) CSRF_FAILURE_VIEW = 'hosting.views.forbidden_view' @@ -217,9 +214,9 @@ TEMPLATES = [ 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', - "django.core.context_processors.media", - "django.core.context_processors.static", - "django.core.context_processors.tz", + "django.template.context_processors.media", + "django.template.context_processors.static", + "django.template.context_processors.tz", "django.contrib.messages.context_processors.messages", 'sekizai.context_processors.sekizai', 'cms.context_processors.cms_settings', @@ -415,27 +412,6 @@ MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media') MEDIA_URL = APP_ROOT_ENDPOINT + 'media/' FILE_UPLOAD_PERMISSIONS = 0o644 -MIGRATION_MODULES = { - 'cms': 'cms.migrations', - # 'filer': 'filer.migrations_django', - # 'menus': 'menus.migrations_django', - 'djangocms_flash': 'djangocms_flash.migrations_django', - 'djangocms_googlemap': 'djangocms_googlemap.migrations_django', - 'djangocms_inherit': 'djangocms_inherit.migrations_django', - 'djangocms_link': 'djangocms_link.migrations_django', - 'djangocms_teaser': 'djangocms_teaser.migrations_django', - 'djangocms_column': 'djangocms_column.migrations_django', - 'djangocms_style': 'djangocms_style.migrations_django', - 'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django', - 'cmsplugin_filer_file': 'cmsplugin_filer_file.migrations_django', - 'cmsplugin_filer_folder': 'cmsplugin_filer_folder.migrations_django', - 'cmsplugin_filer_link': 'cmsplugin_filer_link.migrations_django', - 'cmsplugin_filer_teaser': 'cmsplugin_filer_teaser.migrations_django', - 'cmsplugin_filer_utils': 'cmsplugin_filer_utils.migrations_django', - 'cmsplugin_filer_video': 'cmsplugin_filer_video.migrations_django', - 'djangocms_text_ckeditor': 'djangocms_text_ckeditor.migrations', -} - STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', @@ -468,19 +444,14 @@ BOOTSTRAP3 = { # The URL to the jQuery JavaScript file 'jquery_url': '%sdatacenterlight/js/jquery-1.11.1.min.js' % STATIC_URL, - # The Bootstrap base URL - 'base_url': '%sdatacenterlight/bootstrap-3.3.4/' % STATIC_URL, - # The complete URL to the Bootstrap CSS file - # (None means derive it from base_url) - 'css_url': None, + 'css_url': '%sdatacenterlight/bootstrap-3.3.4/css/bootstrap.min.css' % STATIC_URL, # The complete URL to the Bootstrap CSS file (None means no theme) 'theme_url': None, # The complete URL to the Bootstrap JavaScript file - # (None means derive it from base_url) - 'javascript_url': None, + 'javascript_url': '%sdatacenterlight/bootstrap-3.3.4/js/bootstrap.min.js' % STATIC_URL, # Put JavaScript in the HEAD section of the HTML document # (only relevant if you use bootstrap3.html) diff --git a/dynamicweb/settings/local.py b/dynamicweb/settings/local.py index 28d49bb2..3bd04f63 100644 --- a/dynamicweb/settings/local.py +++ b/dynamicweb/settings/local.py @@ -15,11 +15,11 @@ CACHES = { } } -MIDDLEWARE_CLASSES = ( +MIDDLEWARE = ( 'utils.middleware.DevSiteSwitcherMiddleware', -) + MIDDLEWARE_CLASSES +) + MIDDLEWARE -MIDDLEWARE_CLASSES += ("debug_toolbar.middleware.DebugToolbarMiddleware",) +MIDDLEWARE += ("debug_toolbar.middleware.DebugToolbarMiddleware",) INSTALLED_APPS += ( 'django_extensions', diff --git a/utils/forms.py b/utils/forms.py index 3cc57578..50161a11 100644 --- a/utils/forms.py +++ b/utils/forms.py @@ -4,7 +4,7 @@ from django.core.mail import EmailMultiAlternatives from django.template.loader import render_to_string from django.utils.translation import ugettext_lazy as _ -from django_recaptcha.fields import ReCaptchaField +from captcha.fields import ReCaptchaField from membership.models import CustomUser from .models import ContactMessage, BillingAddress, UserBillingAddress diff --git a/utils/middleware.py b/utils/middleware.py index faf3b23a..103ae3d6 100644 --- a/utils/middleware.py +++ b/utils/middleware.py @@ -3,9 +3,16 @@ import re from django.conf import settings from django.http import HttpResponse +from django.utils.deprecation import MiddlewareMixin + +from djangocms_multisite.middleware import CMSMultiSiteMiddleware as _CMSMultiSite -class MultipleProxyMiddleware(object): +class CMSMultiSiteMiddleware(MiddlewareMixin, _CMSMultiSite): + """The package's middleware is old-style (no get_response); adapt it""" + + +class MultipleProxyMiddleware(MiddlewareMixin): FORWARDED_FOR_FIELDS = [ 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED_HOST', @@ -24,7 +31,7 @@ class MultipleProxyMiddleware(object): request.META[field] = parts[-1].strip() -class DevSiteSwitcherMiddleware(object): +class DevSiteSwitcherMiddleware(MiddlewareMixin): """ Dev/test only (enabled from settings/local.py, i.e. DEBUG=True).