2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-19 21:45:39 +00:00

Provide global_settings and user_settings as context objects

- Adds a new context middleware
- Refactor the way that settings are provided to the javascript layer
This commit is contained in:
Oliver
2021-08-15 11:57:05 +10:00
parent 6c17e330c4
commit faab1f2464
5 changed files with 60 additions and 55 deletions

View File

@ -6,6 +6,7 @@ over and above the built-in Django tags.
import os
import sys
from django.utils.html import format_html
from django.utils.translation import ugettext_lazy as _
from django.conf import settings as djangosettings
@ -208,24 +209,6 @@ 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:
@ -262,6 +245,25 @@ def get_available_themes(*args, **kwargs):
return themes
@register.simple_tag()
def primitive_to_javascript(primitive):
"""
Convert a python primitive to a javascript primitive.
e.g. True -> true
'hello' -> '"hello"'
"""
if type(primitive) is bool:
return str(primitive).lower()
elif type(primitive) in [int, float]:
return primitive
else:
# Wrap with quotes
return format_html("'{}'", primitive)
@register.filter
def keyvalue(dict, key):
"""