Compare commits

...

6 Commits
1.1.1 ... 0.4.2

Author SHA1 Message Date
Oliver
b18f360daf 0.4.2 2021-08-02 08:43:04 +10:00
Oliver
20cc952982 Merge pull request #1887 from matmair/settings-safety
settings fixes

(cherry picked from commit d154ca08ea)
2021-08-02 08:42:34 +10:00
Oliver
cd39fd1dc2 Merge pull request #1890 from matmair/fix-for-1888
catch connection errors in exchange update

(cherry picked from commit db57e9516b)
2021-08-02 08:42:26 +10:00
Oliver
0e59c15773 0.4.1 2021-07-30 11:26:53 +10:00
Oliver
0a73032950 Merge pull request #1877 from eeintech/fix_search_js
Fixed missing comma propagating to translated JS files

(cherry picked from commit 2009773d9d)
2021-07-29 08:27:49 +10:00
Oliver
a7229b5b0b Merge pull request #1874 from SchrodingersGat/docker-dev-fix
Copy static files when starting dev server

(cherry picked from commit 50eb70f538)
2021-07-28 22:50:31 +10:00
6 changed files with 65 additions and 12 deletions

View File

@@ -1,4 +1,5 @@
from common.settings import currency_code_default, currency_codes
from urllib.error import HTTPError, URLError
from djmoney.contrib.exchange.backends.base import SimpleExchangeBackend
@@ -26,4 +27,8 @@ class InvenTreeExchange(SimpleExchangeBackend):
symbols = ','.join(currency_codes())
super().update_rates(base=base_currency, symbols=symbols)
try:
super().update_rates(base=base_currency, symbols=symbols)
# catch connection errors
except (HTTPError, URLError):
print('Encountered connection error while updating')

View File

@@ -0,0 +1,38 @@
"""
Custom management command to cleanup old settings that are not defined anymore
"""
from django.core.management.base import BaseCommand
class Command(BaseCommand):
"""
Cleanup old (undefined) settings in the database
"""
def handle(self, *args, **kwargs):
print("Collecting settings")
from common.models import InvenTreeSetting, InvenTreeUserSetting
# general settings
db_settings = InvenTreeSetting.objects.all()
model_settings = InvenTreeSetting.GLOBAL_SETTINGS
# check if key exist and delete if not
for setting in db_settings:
if setting.key not in model_settings:
setting.delete()
print(f"deleted setting '{setting.key}'")
# user settings
db_settings = InvenTreeUserSetting.objects.all()
model_settings = InvenTreeUserSetting.GLOBAL_SETTINGS
# check if key exist and delete if not
for setting in db_settings:
if setting.key not in model_settings:
setting.delete()
print(f"deleted user setting '{setting.key}'")
print("checked all settings")

View File

@@ -8,7 +8,7 @@ import re
import common.models
INVENTREE_SW_VERSION = "0.5.0 pre"
INVENTREE_SW_VERSION = "0.4.2"
INVENTREE_API_VERSION = 8

View File

@@ -20,6 +20,7 @@ from djmoney.contrib.exchange.models import convert_money
from djmoney.contrib.exchange.exceptions import MissingRate
from django.utils.translation import ugettext_lazy as _
from django.utils.html import format_html
from django.core.validators import MinValueValidator, URLValidator
from django.core.exceptions import ValidationError
@@ -58,12 +59,13 @@ class BaseInvenTreeSetting(models.Model):
# Query the database
for setting in results:
settings.append({
"key": setting.key.upper(),
"value": setting.value
})
if setting.key:
settings.append({
"key": setting.key.upper(),
"value": setting.value
})
keys.add(setting.key.upper())
keys.add(setting.key.upper())
# Specify any "default" values which are not in the database
for key in cls.GLOBAL_SETTINGS.keys():
@@ -90,10 +92,10 @@ class BaseInvenTreeSetting(models.Model):
# Numerical values remain the same
elif cls.validator_is_int(validator):
pass
# Wrap strings with quotes
else:
value = f"'{value}'"
value = format_html("'{}'", value)
setting["value"] = value

View File

@@ -6,12 +6,12 @@
var user_settings = {
{% for setting in USER_SETTINGS %}
{{ setting.key }}: {{ setting.value|safe }},
{{ setting.key }}: {{ setting.value }},
{% endfor %}
};
var global_settings = {
{% for setting in GLOBAL_SETTINGS %}
{{ setting.key }}: {{ setting.value|safe }},
{{ setting.key }}: {{ setting.value }},
{% endfor %}
};

View File

@@ -137,6 +137,14 @@ def rebuild(c):
manage(c, "rebuild_models")
@task
def clean_settings(c):
"""
Clean the setting tables of old settings
"""
manage(c, "clean_settings")
@task
def migrate(c):
"""
@@ -167,7 +175,7 @@ def static(c):
manage(c, "collectstatic --no-input")
@task(pre=[install, migrate, static])
@task(pre=[install, migrate, static, clean_settings])
def update(c):
"""
Update InvenTree installation.