diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index c5a90ac7f3..cda30b0a27 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -92,6 +92,12 @@ DEBUG = _is_true(get_setting( CONFIG.get('debug', True) )) +# Determine if we are running in "demo mode" +DEMO_MODE = _is_true(get_setting( + 'INVENTREE_DEMO', + CONFIG.get('demo', False) +)) + DOCKER = _is_true(get_setting( 'INVENTREE_DOCKER', False @@ -234,7 +240,10 @@ STATIC_COLOR_THEMES_DIR = os.path.join(STATIC_ROOT, 'css', 'color-themes') MEDIA_URL = '/media/' if DEBUG: - logger.info("InvenTree running in DEBUG mode") + logger.info("InvenTree running with DEBUG enabled") + +if DEMO_MODE: + logger.warning("InvenTree running in DEMO mode") logger.debug(f"MEDIA_ROOT: '{MEDIA_ROOT}'") logger.debug(f"STATIC_ROOT: '{STATIC_ROOT}'") diff --git a/InvenTree/InvenTree/utils.py b/InvenTree/InvenTree/utils.py deleted file mode 100644 index dc28da81a0..0000000000 --- a/InvenTree/InvenTree/utils.py +++ /dev/null @@ -1,13 +0,0 @@ -from rest_framework.views import exception_handler - - -def api_exception_handler(exc, context): - response = exception_handler(exc, context) - - # Now add the HTTP status code to the response. - if response is not None: - - data = {'error': response.data} - response.data = data - - return response diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py index 42c66cf78e..e31fb9e398 100644 --- a/InvenTree/part/templatetags/inventree_extras.py +++ b/InvenTree/part/templatetags/inventree_extras.py @@ -90,6 +90,13 @@ def inventree_in_debug_mode(*args, **kwargs): return djangosettings.DEBUG +@register.simple_tag() +def inventree_demo_mode(*args, **kwargs): + """ Return True if the server is running in DEMO mode """ + + return djangosettings.DEMO_MODE + + @register.simple_tag() def inventree_docker_mode(*args, **kwargs): """ Return True if the server is running as a Docker image """ diff --git a/InvenTree/templates/InvenTree/settings/user.html b/InvenTree/templates/InvenTree/settings/user.html index 2b2637330c..d22c89954f 100644 --- a/InvenTree/templates/InvenTree/settings/user.html +++ b/InvenTree/templates/InvenTree/settings/user.html @@ -12,12 +12,15 @@ {% endblock %} {% block actions %} +{% inventree_demo_mode as demo %} +{% if not demo %}
{% trans "Edit" %}
{% trans "Set Password" %}
+{% endif %} {% endblock %} {% block content %} diff --git a/InvenTree/templates/account/login.html b/InvenTree/templates/account/login.html index fbe48224b4..6e62560bfa 100644 --- a/InvenTree/templates/account/login.html +++ b/InvenTree/templates/account/login.html @@ -1,5 +1,6 @@ {% extends "account/base.html" %} +{% load inventree_extras %} {% load i18n account socialaccount crispy_forms_tags inventree_extras %} {% block head_title %}{% trans "Sign In" %}{% endblock %} @@ -10,6 +11,7 @@ {% settings_value 'LOGIN_ENABLE_PWD_FORGOT' as enable_pwd_forgot %} {% settings_value 'LOGIN_ENABLE_SSO' as enable_sso %} {% mail_configured as mail_conf %} +{% inventree_demo_mode as demo %}

{% trans "Sign In" %}

@@ -36,9 +38,16 @@ for a account and sign in below:{% endblocktrans %}

- {% if mail_conf and enable_pwd_forgot %} + {% if mail_conf and enable_pwd_forgot and not demo %} {% trans "Forgot Password?" %} {% endif %} + {% if demo %} +

+

+ {% trans "InvenTree demo instance" %} - {% trans "Click here for login details" %} +
+

+ {% endif %} {% if enable_sso %} diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html index 6dc0d7d78a..262a749bfa 100644 --- a/InvenTree/templates/base.html +++ b/InvenTree/templates/base.html @@ -86,25 +86,20 @@
- - {% if server_restart_required %} -
+ + {% block alerts %} +
+ + {% if server_restart_required %} -
- {% endif %} - - {% block alerts %} -
- + {% endif %}
{% endblock %} diff --git a/InvenTree/templates/navbar.html b/InvenTree/templates/navbar.html index eeb049d320..c339d7b4e1 100644 --- a/InvenTree/templates/navbar.html +++ b/InvenTree/templates/navbar.html @@ -4,6 +4,7 @@ {% settings_value 'BARCODE_ENABLE' as barcodes %} {% settings_value 'STICKY_HEADER' user=request.user as sticky %} +{% inventree_demo_mode as demo %}