From cef09acd543e5f3fc637d4648f6955dddea3d465 Mon Sep 17 00:00:00 2001
From: Oliver <oliver.henry.walters@gmail.com>
Date: Sun, 15 Aug 2021 12:05:53 +1000
Subject: [PATCH] Partial reversion of some stuff

---
 InvenTree/InvenTree/context.py                | 20 -------------------
 InvenTree/InvenTree/settings.py               |  1 -
 .../part/templatetags/inventree_extras.py     | 18 +++++++++++++++++
 InvenTree/templates/js/dynamic/settings.js    |  8 ++++++--
 4 files changed, 24 insertions(+), 23 deletions(-)

diff --git a/InvenTree/InvenTree/context.py b/InvenTree/InvenTree/context.py
index 6f59840967..85a320afb4 100644
--- a/InvenTree/InvenTree/context.py
+++ b/InvenTree/InvenTree/context.py
@@ -72,26 +72,6 @@ def status_codes(request):
     }
 
 
-def inventree_settings(request):
-    """
-    Adds two context objects to the request:
-
-    user_settings - A key:value dict of all user InvenTree settings for the current user
-    global_settings - A key:value dict of all global InvenTree settings
-
-    Providing a single context object for all settings should reduce the number of db hits
-    """
-
-    ctx = {}
-
-    if request.user:
-        ctx["user_settings"] = common.models.InvenTreeUserSetting.allValues(user=request.user)
-
-    ctx["global_settings"] = common.models.InvenTreeSetting.allValues()
-
-    return ctx
-
-
 def user_roles(request):
     """
     Return a map of the current roles assigned to the user.
diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py
index 1ea4815f65..96b7da140d 100644
--- a/InvenTree/InvenTree/settings.py
+++ b/InvenTree/InvenTree/settings.py
@@ -324,7 +324,6 @@ TEMPLATES = [
                 'InvenTree.context.health_status',
                 'InvenTree.context.status_codes',
                 'InvenTree.context.user_roles',
-                'InvenTree.context.inventree_settings',
             ],
         },
     },
diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py
index 054cd0be95..f36746e7a2 100644
--- a/InvenTree/part/templatetags/inventree_extras.py
+++ b/InvenTree/part/templatetags/inventree_extras.py
@@ -209,6 +209,24 @@ def settings_value(key, *args, **kwargs):
     return InvenTreeSetting.get_setting(key)
 
 
+@register.simple_tag()
+def user_settings(user, *args, **kwargs):
+    """
+    Return all USER settings as a key:value dict
+    """
+
+    return InvenTreeUserSetting.allValues(user=user)
+
+
+@register.simple_tag()
+def global_settings(*args, **kwargs):
+    """
+    Return all GLOBAL InvenTree settings as a key:value dict
+    """
+
+    return InvenTreeSetting.allValues()
+
+
 @register.simple_tag()
 def get_color_theme_css(username):
     try:
diff --git a/InvenTree/templates/js/dynamic/settings.js b/InvenTree/templates/js/dynamic/settings.js
index 3f96e9d988..60172ead64 100644
--- a/InvenTree/templates/js/dynamic/settings.js
+++ b/InvenTree/templates/js/dynamic/settings.js
@@ -1,14 +1,18 @@
 {% load inventree_extras %}
 // InvenTree settings
 
+{% user_settings request.user as USER_SETTINGS %}
+
 var user_settings = {
-    {% for key, value in user_settings.items %}
+    {% for key, value in USER_SETTINGS.items %}
     {{ key }}: {% primitive_to_javascript value %},
     {% endfor %}
 };
 
+{% global_settings as GLOBAL_SETTINGS %}
+
 var global_settings = {
-    {% for key, value in global_settings.items %}
+    {% for key, value in GLOBAL_SETTINGS.items %}
     {{ key }}: {% primitive_to_javascript value %},
     {% endfor %}
 };
\ No newline at end of file