From 6d5b2d3227f1bf0a92971e473ab226374e8359a3 Mon Sep 17 00:00:00 2001 From: eeintech Date: Wed, 19 May 2021 17:06:41 -0400 Subject: [PATCH] Added 'Currencies' settings view in global settings --- InvenTree/InvenTree/tasks.py | 4 +- InvenTree/InvenTree/urls.py | 3 ++ InvenTree/InvenTree/views.py | 15 +++++++ .../InvenTree/settings/currencies.html | 43 +++++++++++++++++++ .../templates/InvenTree/settings/global.html | 2 - .../templates/InvenTree/settings/tabs.html | 3 ++ 6 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 InvenTree/templates/InvenTree/settings/currencies.html diff --git a/InvenTree/InvenTree/tasks.py b/InvenTree/InvenTree/tasks.py index 0076bb9544..fb6a45f368 100644 --- a/InvenTree/InvenTree/tasks.py +++ b/InvenTree/InvenTree/tasks.py @@ -175,9 +175,9 @@ def update_exchange_rates(): # Get backend if 'InvenTreeManualExchangeBackend' in settings.EXCHANGE_BACKEND: - backend = InvenTreeFixerExchangeBackend() - else: backend = InvenTreeManualExchangeBackend() + else: + backend = InvenTreeFixerExchangeBackend() # Update rates backend.update_rates() diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index ab2ced7d5e..d3132ca2a8 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -41,6 +41,7 @@ from .views import IndexView, SearchView, DatabaseStatsView from .views import SettingsView, EditUserView, SetPasswordView from .views import AppearanceSelectView, SettingCategorySelectView from .views import DynamicJsView +from .views import ExchangeRatesView from common.views import SettingEdit @@ -90,6 +91,8 @@ settings_urls = [ url(r'^build/?', SettingsView.as_view(template_name='InvenTree/settings/build.html'), name='settings-build'), url(r'^purchase-order/?', SettingsView.as_view(template_name='InvenTree/settings/po.html'), name='settings-po'), url(r'^sales-order/?', SettingsView.as_view(template_name='InvenTree/settings/so.html'), name='settings-so'), + url(r'^currencies/?', SettingsView.as_view(template_name='InvenTree/settings/currencies.html'), name='settings-currencies'), + url(r'^echange-rates/?', ExchangeRatesView.as_view(), name='refresh-exchange-rates'), url(r'^(?P\d+)/edit/', SettingEdit.as_view(), name='setting-edit'), diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index d285efae36..bd03a18dda 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -27,6 +27,7 @@ from users.models import check_user_role, RuleSet from .forms import DeleteForm, EditUserForm, SetPasswordForm from .forms import ColorThemeSelectForm, SettingCategorySelectForm from .helpers import str2bool +from .tasks import update_exchange_rates from rest_framework import views @@ -908,3 +909,17 @@ class DatabaseStatsView(AjaxView): """ return ctx + + +class ExchangeRatesView(SettingsView): + + success_url = reverse_lazy('settings-currencies') + + def post(self, request, *args, **kwargs): + + # Process exchange rates + update_exchange_rates() + + # TODO: Update context + + return HttpResponseRedirect(self.success_url) diff --git a/InvenTree/templates/InvenTree/settings/currencies.html b/InvenTree/templates/InvenTree/settings/currencies.html new file mode 100644 index 0000000000..9ec5b518fb --- /dev/null +++ b/InvenTree/templates/InvenTree/settings/currencies.html @@ -0,0 +1,43 @@ +{% extends "InvenTree/settings/settings.html" %} +{% load i18n %} +{% load inventree_extras %} + +{% block tabs %} +{% include "InvenTree/settings/tabs.html" with tab='currencies' %} +{% endblock %} + +{% block subtitle %} +{% trans "Currency Settings" %} +{% endblock %} + +{% block settings %} + + + {% include "InvenTree/settings/header.html" %} + + {% include "InvenTree/settings/setting.html" with key="INVENTREE_DEFAULT_CURRENCY" icon="fa-dollar-sign" %} + {% include "InvenTree/settings/setting.html" with key="INVENTREE_FIXER_API_KEY" icon="fa-key" %} + +
+ +
+
+

{% trans "Exchange Rates" %}

+
+
+ + +
+ +
+ {% csrf_token %} + +
+ +{% endblock %} + +{% block js_ready %} +{{ block.super }} +{% comment %} TODO: Update exchange-rates table! {% endcomment %} +{% comment %} Or do it using context instead of JS? {% endcomment %} +{% endblock %} \ No newline at end of file diff --git a/InvenTree/templates/InvenTree/settings/global.html b/InvenTree/templates/InvenTree/settings/global.html index 5c5dccfb2a..fd91dafc67 100644 --- a/InvenTree/templates/InvenTree/settings/global.html +++ b/InvenTree/templates/InvenTree/settings/global.html @@ -19,8 +19,6 @@ {% include "InvenTree/settings/setting.html" with key="INVENTREE_INSTANCE_TITLE" icon="fa-info-circle" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_BASE_URL" icon="fa-globe" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_COMPANY_NAME" icon="fa-building" %} - {% include "InvenTree/settings/setting.html" with key="INVENTREE_DEFAULT_CURRENCY" icon="fa-dollar-sign" %} - {% include "InvenTree/settings/setting.html" with key="INVENTREE_FIXER_API_KEY" icon="fa-key" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_DOWNLOAD_FROM_URL" icon="fa-cloud-download-alt" %} diff --git a/InvenTree/templates/InvenTree/settings/tabs.html b/InvenTree/templates/InvenTree/settings/tabs.html index 3f8be0a313..360618fc34 100644 --- a/InvenTree/templates/InvenTree/settings/tabs.html +++ b/InvenTree/templates/InvenTree/settings/tabs.html @@ -36,5 +36,8 @@
  • {% trans "Sales Orders" %}
  • +
  • + {% trans "Currencies" %} +
  • {% endif %}