mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Display boolean values as checkboxes
This commit is contained in:
parent
3a325399c6
commit
432ecc1d96
@ -191,6 +191,23 @@ class InvenTreeSetting(models.Model):
|
|||||||
else:
|
else:
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_setting_object(cls, key):
|
||||||
|
"""
|
||||||
|
Return an InvenTreeSetting object matching the given key.
|
||||||
|
|
||||||
|
- Key is case-insensitive
|
||||||
|
- Returns None if no match is made
|
||||||
|
"""
|
||||||
|
|
||||||
|
key = str(key).strip().upper()
|
||||||
|
|
||||||
|
try:
|
||||||
|
setting = InvenTreeSetting.objects.filter(key__iexact=key).first()
|
||||||
|
return setting
|
||||||
|
except (InvenTreeSetting.DoesNotExist):
|
||||||
|
return None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_setting_pk(cls, key):
|
def get_setting_pk(cls, key):
|
||||||
"""
|
"""
|
||||||
@ -199,12 +216,11 @@ class InvenTreeSetting(models.Model):
|
|||||||
If the setting does not exist, return None
|
If the setting does not exist, return None
|
||||||
"""
|
"""
|
||||||
|
|
||||||
key = str(key).strip().upper()
|
setting = InvenTreeSetting.get_setting_object(cls)
|
||||||
|
|
||||||
try:
|
if setting:
|
||||||
setting = InvenTreeSetting.objects.filter(key__iexact=key).first()
|
|
||||||
return setting.pk
|
return setting.pk
|
||||||
except InvenTreeSetting.DoesNotExist:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -218,15 +234,12 @@ class InvenTreeSetting(models.Model):
|
|||||||
if backup_value is None:
|
if backup_value is None:
|
||||||
backup_value = cls.get_default_value(key)
|
backup_value = cls.get_default_value(key)
|
||||||
|
|
||||||
try:
|
setting = InvenTreeSetting.get_setting_object(key)
|
||||||
settings = InvenTreeSetting.objects.filter(key__iexact=key)
|
|
||||||
|
|
||||||
if len(settings) > 0:
|
if setting:
|
||||||
return settings[0].value
|
return setting.value
|
||||||
else:
|
else:
|
||||||
return backup_value
|
return backup_value
|
||||||
except InvenTreeSetting.DoesNotExist:
|
|
||||||
return backup_value
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def set_setting(cls, key, value, user, create=True):
|
def set_setting(cls, key, value, user, create=True):
|
||||||
@ -325,6 +338,15 @@ class InvenTreeSetting(models.Model):
|
|||||||
|
|
||||||
return validator == bool
|
return validator == bool
|
||||||
|
|
||||||
|
def as_bool(self):
|
||||||
|
"""
|
||||||
|
Return the value of this setting converted to a boolean value.
|
||||||
|
|
||||||
|
Warning: Only use on values where is_bool evaluates to true!
|
||||||
|
"""
|
||||||
|
|
||||||
|
return InvenTree.helpers.str2bool(self.value)
|
||||||
|
|
||||||
|
|
||||||
class Currency(models.Model):
|
class Currency(models.Model):
|
||||||
"""
|
"""
|
||||||
|
@ -5,7 +5,8 @@ import os
|
|||||||
|
|
||||||
from django import template
|
from django import template
|
||||||
from InvenTree import version, settings
|
from InvenTree import version, settings
|
||||||
from InvenTree.helpers import decimal2string
|
|
||||||
|
import InvenTree.helpers
|
||||||
|
|
||||||
from common.models import InvenTreeSetting, ColorTheme
|
from common.models import InvenTreeSetting, ColorTheme
|
||||||
|
|
||||||
@ -16,9 +17,15 @@ register = template.Library()
|
|||||||
def decimal(x, *args, **kwargs):
|
def decimal(x, *args, **kwargs):
|
||||||
""" Simplified rendering of a decimal number """
|
""" Simplified rendering of a decimal number """
|
||||||
|
|
||||||
return decimal2string(x)
|
return InvenTree.helpers.decimal2string(x)
|
||||||
|
|
||||||
|
|
||||||
|
@register.simple_tag()
|
||||||
|
def str2bool(x, *args, **kwargs):
|
||||||
|
""" Convert a string to a boolean value """
|
||||||
|
|
||||||
|
return InvenTree.helpers.str2bool(x)
|
||||||
|
|
||||||
@register.simple_tag()
|
@register.simple_tag()
|
||||||
def inrange(n, *args, **kwargs):
|
def inrange(n, *args, **kwargs):
|
||||||
""" Return range(n) for iterating through a numeric quantity """
|
""" Return range(n) for iterating through a numeric quantity """
|
||||||
@ -86,6 +93,19 @@ def inventree_docs_url(*args, **kwargs):
|
|||||||
return "https://inventree.readthedocs.io/"
|
return "https://inventree.readthedocs.io/"
|
||||||
|
|
||||||
|
|
||||||
|
@register.simple_tag()
|
||||||
|
def setting_object(key, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Return a setting object speciifed by the given key
|
||||||
|
(Or return None if the setting does not exist)
|
||||||
|
"""
|
||||||
|
|
||||||
|
setting = InvenTreeSetting.get_setting_object(key)
|
||||||
|
|
||||||
|
print("Setting:", key, setting)
|
||||||
|
|
||||||
|
return setting
|
||||||
|
|
||||||
@register.simple_tag()
|
@register.simple_tag()
|
||||||
def settings_name(key, *args, **kwargs):
|
def settings_name(key, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -1,10 +1,24 @@
|
|||||||
{% load inventree_extras %}
|
{% load inventree_extras %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% setting_object key as setting %}
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>{% settings_name key %}</b></td>
|
<td><b>{% settings_name key %}</b></td>
|
||||||
<td><b>{% settings_value key %}</b>{% settings_units key %}</td>
|
<td>
|
||||||
<td>{% settings_description key %}</td>
|
{% if setting.is_bool %}
|
||||||
|
<div>
|
||||||
|
<input fieldname='{{ setting.key }}' class='slidey' type='checkbox' data-offstyle='warning' data-onstyle='success' data-size='small' data-toggle='toggle' disabled autocomplete='off' {% if setting.as_bool %}checked=''{% endif %}>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{% if setting.value %}
|
||||||
|
<b>{% settings_value key %}</b>{% settings_units key %}</td>
|
||||||
|
{% else %}
|
||||||
|
<i>{% trans "No value set" %}</i>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
<td>
|
||||||
|
{% settings_description key %}
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class='btn-group float-right'>
|
<div class='btn-group float-right'>
|
||||||
<button class='btn btn-default btn-glyph btn-edit-setting' pk='{% settings_pk key %}' setting='{{ key }}' title='{% trans "Edit setting" %}'>
|
<button class='btn btn-default btn-glyph btn-edit-setting' pk='{% settings_pk key %}' setting='{{ key }}' title='{% trans "Edit setting" %}'>
|
||||||
|
Loading…
Reference in New Issue
Block a user