From 406d7bcf807e6d9705d65f4dd9b6f713f3aeae02 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 20 Oct 2020 08:41:08 +1100 Subject: [PATCH] Load build order prefix setting --- InvenTree/InvenTree/helpers.py | 9 +++++++++ InvenTree/build/models.py | 6 ++++-- InvenTree/build/templates/build/build_base.html | 2 +- InvenTree/common/models.py | 4 ++++ InvenTree/templates/js/build.html | 8 ++++++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py index 13b770539c..da96c7ee79 100644 --- a/InvenTree/InvenTree/helpers.py +++ b/InvenTree/InvenTree/helpers.py @@ -19,9 +19,18 @@ from django.contrib.auth.models import Permission import InvenTree.version +from common.models import InvenTreeSetting from .settings import MEDIA_URL, STATIC_URL +def getSetting(key, backup_value=None): + """ + Shortcut for reading a setting value from the database + """ + + return InvenTreeSetting.get_setting(key, backup_value=backup_value) + + def generateTestKey(test_name): """ Generate a test 'key' for a given test name. diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index 196b25978c..877affd144 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -22,7 +22,7 @@ from markdownx.models import MarkdownxField from mptt.models import MPTTModel, TreeForeignKey from InvenTree.status_codes import BuildStatus -from InvenTree.helpers import increment +from InvenTree.helpers import increment, getSetting from InvenTree.validators import validate_build_order_reference import InvenTree.fields @@ -56,7 +56,9 @@ class Build(MPTTModel): def __str__(self): - return f"BO{self.reference}" + prefix = getSetting("BUILDORDER_REFERENCE_PREFIX") + + return f"{prefix}{self.reference}" def get_absolute_url(self): return reverse('build-detail', kwargs={'pk': self.id}) diff --git a/InvenTree/build/templates/build/build_base.html b/InvenTree/build/templates/build/build_base.html index 68fd28101d..a366459908 100644 --- a/InvenTree/build/templates/build/build_base.html +++ b/InvenTree/build/templates/build/build_base.html @@ -71,7 +71,7 @@ src="{% static 'img/blank_image.png' %}" {% trans "Build Order Reference" %} - {{ build.reference }} + {{ build }} diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 731c37c6ce..31f8e12260 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -62,6 +62,10 @@ class InvenTreeSetting(models.Model): If it does not exist, return the backup value (default = None) """ + # If no backup value is specified, atttempt to retrieve a "default" value + if backup_value is None: + backup_value = InvenTreeSetting.DEFAULT_VALUES.get(key, None) + try: settings = InvenTreeSetting.objects.filter(key__iexact=key) diff --git a/InvenTree/templates/js/build.html b/InvenTree/templates/js/build.html index 027d8d9d5e..08d9ec2af9 100644 --- a/InvenTree/templates/js/build.html +++ b/InvenTree/templates/js/build.html @@ -1,4 +1,5 @@ {% load i18n %} +{% load inventree_extras %} function loadBuildTable(table, options) { // Display a table of Build objects @@ -40,6 +41,13 @@ function loadBuildTable(table, options) { sortable: true, switchable: false, formatter: function(value, row, index, field) { + + var prefix = "{% inventree_setting 'BUILDORDER_REFERENCE_PREFIX' 'BO' %}"; + + if (prefix) { + value = `${prefix}${value}`; + } + return renderLink(value, '/build/' + row.pk + '/'); } },