From bb8f95be148d5905bf5a624cd62c4d4ee1f22f86 Mon Sep 17 00:00:00 2001 From: Real-Gecko Date: Wed, 17 Jun 2020 15:15:58 +0600 Subject: [PATCH 1/2] Some improvements for appsettings app --- appsettings/admin.py | 3 --- appsettings/context_processors.py | 13 +++++++++++++ appsettings/middleware.py | 10 ++++++++++ appsettings/settings.py | 18 ++++++++++++++++++ webvirtcloud/settings.py.template | 2 ++ 5 files changed, 43 insertions(+), 3 deletions(-) delete mode 100644 appsettings/admin.py create mode 100644 appsettings/context_processors.py create mode 100644 appsettings/middleware.py create mode 100644 appsettings/settings.py diff --git a/appsettings/admin.py b/appsettings/admin.py deleted file mode 100644 index 8c38f3f3..00000000 --- a/appsettings/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/appsettings/context_processors.py b/appsettings/context_processors.py new file mode 100644 index 00000000..59916309 --- /dev/null +++ b/appsettings/context_processors.py @@ -0,0 +1,13 @@ +from .settings import app_settings as settings + + +def app_settings(request): + """ + Simple context processor that puts the config into every\ + RequestContext. Just make sure you have a setting like this:: + TEMPLATE_CONTEXT_PROCESSORS = ( + # ... + 'appsettings.context_processors.app_settings', + ) + """ + return {"app_settings": settings} diff --git a/appsettings/middleware.py b/appsettings/middleware.py new file mode 100644 index 00000000..737477de --- /dev/null +++ b/appsettings/middleware.py @@ -0,0 +1,10 @@ +from .settings import app_settings, get_settings + + +class AppSettingsMiddleware(object): + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + get_settings() + return self.get_response(request) diff --git a/appsettings/settings.py b/appsettings/settings.py new file mode 100644 index 00000000..2c8a7f5a --- /dev/null +++ b/appsettings/settings.py @@ -0,0 +1,18 @@ +from .models import AppSettings + + +class Settings(object): + pass + + +app_settings = Settings() + + +def get_settings(): + try: + entries = AppSettings.objects.all() + except: + pass + + for entry in entries: + setattr(app_settings, entry.key, entry.val) diff --git a/webvirtcloud/settings.py.template b/webvirtcloud/settings.py.template index 44eabc8c..f12e57bb 100644 --- a/webvirtcloud/settings.py.template +++ b/webvirtcloud/settings.py.template @@ -50,6 +50,7 @@ MIDDLEWARE = [ 'django.contrib.auth.middleware.RemoteUserMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'appsettings.middleware.AppSettingsMiddleware', ] ROOT_URLCONF = 'webvirtcloud.urls' @@ -67,6 +68,7 @@ TEMPLATES = [ 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', + 'appsettings.context_processors.app_settings', ], 'libraries': { 'common_tags': 'webvirtcloud.common_tags', From eda233ada739353d6ebd490bf2b1fa68aabdae46 Mon Sep 17 00:00:00 2001 From: Real-Gecko Date: Wed, 17 Jun 2020 15:23:44 +0600 Subject: [PATCH 2/2] Fix appsettings --- appsettings/settings.py | 2 +- instances/templates/instance.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/appsettings/settings.py b/appsettings/settings.py index 2c8a7f5a..c63a9f03 100644 --- a/appsettings/settings.py +++ b/appsettings/settings.py @@ -15,4 +15,4 @@ def get_settings(): pass for entry in entries: - setattr(app_settings, entry.key, entry.val) + setattr(app_settings, entry.key, entry.value) diff --git a/instances/templates/instance.html b/instances/templates/instance.html index d25ce0b2..6ee4ef3f 100644 --- a/instances/templates/instance.html +++ b/instances/templates/instance.html @@ -1704,7 +1704,7 @@
{% trans "Disk I/O - {% if bottom_bar %} + {% if app_settings.VIEW_INSTANCE_DETAIL_BOTTOM_BAR == 'True' %} {% include 'bottom_bar.html' %} {% endif %}