2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-29 12:06:44 +00:00

using functions for currency codes

This commit is contained in:
Matthias 2021-07-01 10:41:23 +02:00
parent 983255a05e
commit 951e8910ba
5 changed files with 15 additions and 9 deletions

View File

@ -1,5 +1,5 @@
from django.conf import settings as inventree_settings from django.conf import settings as inventree_settings
from common.settings import currency_code_default from common.settings import currency_code_default, currency_codes
from djmoney.contrib.exchange.backends.base import SimpleExchangeBackend from djmoney.contrib.exchange.backends.base import SimpleExchangeBackend
@ -25,6 +25,6 @@ class InvenTreeExchange(SimpleExchangeBackend):
def update_rates(self, base_currency=currency_code_default()): def update_rates(self, base_currency=currency_code_default()):
symbols = ','.join(inventree_settings.CURRENCIES) symbols = ','.join(currency_codes())
super().update_rates(base=base_currency, symbols=symbols) super().update_rates(base=base_currency, symbols=symbols)

View File

@ -171,7 +171,7 @@ def update_exchange_rates():
from InvenTree.exchange import InvenTreeExchange from InvenTree.exchange import InvenTreeExchange
from djmoney.contrib.exchange.models import ExchangeBackend, Rate from djmoney.contrib.exchange.models import ExchangeBackend, Rate
from django.conf import settings from django.conf import settings
from common.settings import currency_code_default from common.settings import currency_code_default, currency_codes
except AppRegistryNotReady: except AppRegistryNotReady:
# Apps not yet loaded! # Apps not yet loaded!
logger.info("Could not perform 'update_exchange_rates' - App registry not ready") logger.info("Could not perform 'update_exchange_rates' - App registry not ready")
@ -200,7 +200,7 @@ def update_exchange_rates():
backend.update_rates(base_currency=base) backend.update_rates(base_currency=base)
# Remove any exchange rates which are not in the provided currencies # Remove any exchange rates which are not in the provided currencies
Rate.objects.filter(backend="InvenTreeExchange").exclude(currency__in=settings.CURRENCIES).delete() Rate.objects.filter(backend="InvenTreeExchange").exclude(currency__in=currency_codes()).delete()
def send_email(subject, body, recipients, from_email=None): def send_email(subject, body, recipients, from_email=None):

View File

@ -22,6 +22,7 @@ from decimal import Decimal
import InvenTree.tasks import InvenTree.tasks
from stock.models import StockLocation from stock.models import StockLocation
from common.settings import currency_codes
class ValidatorTest(TestCase): class ValidatorTest(TestCase):
@ -337,13 +338,11 @@ class CurrencyTests(TestCase):
with self.assertRaises(MissingRate): with self.assertRaises(MissingRate):
convert_money(Money(100, 'AUD'), 'USD') convert_money(Money(100, 'AUD'), 'USD')
currencies = settings.CURRENCIES
InvenTree.tasks.update_exchange_rates() InvenTree.tasks.update_exchange_rates()
rates = Rate.objects.all() rates = Rate.objects.all()
self.assertEqual(rates.count(), len(currencies)) self.assertEqual(rates.count(), len(currency_codes()))
# Now that we have some exchange rate information, we can perform conversions # Now that we have some exchange rate information, we can perform conversions

View File

@ -21,7 +21,7 @@ from django.views.generic import ListView, DetailView, CreateView, FormView, Del
from django.views.generic.base import RedirectView, TemplateView from django.views.generic.base import RedirectView, TemplateView
from djmoney.contrib.exchange.models import ExchangeBackend, Rate from djmoney.contrib.exchange.models import ExchangeBackend, Rate
from common.settings import currency_code_default from common.settings import currency_code_default, currency_codes
from part.models import Part, PartCategory from part.models import Part, PartCategory
from stock.models import StockLocation, StockItem from stock.models import StockLocation, StockItem
@ -822,7 +822,7 @@ class CurrencySettingsView(TemplateView):
ctx['settings'] = InvenTreeSetting.objects.all().order_by('key') ctx['settings'] = InvenTreeSetting.objects.all().order_by('key')
ctx["base_currency"] = currency_code_default() ctx["base_currency"] = currency_code_default()
ctx["currencies"] = settings.CURRENCIES ctx["currencies"] = currency_codes
ctx["rates"] = Rate.objects.filter(backend="InvenTreeExchange") ctx["rates"] = Rate.objects.filter(backend="InvenTreeExchange")

View File

@ -31,6 +31,13 @@ def currency_code_mappings():
return [(a, a) for a in settings.CURRENCIES] return [(a, a) for a in settings.CURRENCIES]
def currency_codes():
"""
Returns the current currency codes
"""
return [a for a in settings.CURRENCIES]
def stock_expiry_enabled(): def stock_expiry_enabled():
""" """