mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-02-25 08:54:52 +01:00
Compare commits
27 Commits
0.17.4
...
add-mcp-se
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e9acf1dd8f | ||
|
|
63898aeef0 | ||
|
|
4fdf00d098 | ||
|
|
025cc585d5 | ||
|
|
17018d87cd | ||
|
|
1e5f4f6583 | ||
|
|
a99851cf9b | ||
|
|
9fb1ad4861 | ||
|
|
66c3abfe37 | ||
|
|
8ca64f5820 | ||
|
|
e743821570 | ||
|
|
5c698d8735 | ||
|
|
3e5aa90df0 | ||
|
|
b2add14238 | ||
|
|
a052c00aa8 | ||
|
|
7f343708e0 | ||
|
|
22e95c7f4a | ||
|
|
7645153f77 | ||
|
|
1abfed9abf | ||
|
|
eea0ab009d | ||
|
|
29446def22 | ||
|
|
9dce5e9efe | ||
|
|
695e2cb322 | ||
|
|
b135ec3b15 | ||
|
|
bb3cc5da6c | ||
|
|
ca7fe24a8a | ||
|
|
483ba74010 |
@@ -13,6 +13,7 @@
|
||||
<a href="#key-features">Features</a> •
|
||||
<a href="#how-to-use">Usage</a> •
|
||||
<a href="#how-it-works">How</a> •
|
||||
<a href="#mcp-server">MCP Server</a> •
|
||||
<a href="#help-us-translate-wygiwyh">Translate</a> •
|
||||
<a href="#caveats-and-warnings">Caveats and Warnings</a> •
|
||||
<a href="#built-with">Built with</a>
|
||||
@@ -182,6 +183,10 @@ Check out our [Wiki](https://github.com/eitchtee/WYGIWYH/wiki) for more informat
|
||||
> [!NOTE]
|
||||
> Login with your github account
|
||||
|
||||
# MCP Server
|
||||
|
||||
[IZIme07](https://github.com/IZIme07) has kindly created an MCP Server for WYGIWYH that you can self-host. [Check it out at MCP-WYGIWYH](https://github.com/ReNewator/MCP-WYGIWYH)!
|
||||
|
||||
# Caveats and Warnings
|
||||
|
||||
- I'm not an accountant, some terms and even calculations might be wrong. Make sure to open an issue if you see anything that could be improved.
|
||||
|
||||
@@ -182,3 +182,29 @@ def calculate_historical_account_balance(queryset):
|
||||
historical_account_balance[date_filter(end_date, "b Y")] = month_data
|
||||
|
||||
return historical_account_balance
|
||||
|
||||
|
||||
def calculate_monthly_net_worth_difference(historical_net_worth):
|
||||
diff_dict = OrderedDict()
|
||||
if not historical_net_worth:
|
||||
return diff_dict
|
||||
|
||||
# Get all currencies
|
||||
currencies = set()
|
||||
for data in historical_net_worth.values():
|
||||
currencies.update(data.keys())
|
||||
|
||||
# Initialize prev_values for all currencies
|
||||
prev_values = {currency: Decimal("0.00") for currency in currencies}
|
||||
|
||||
for month, values in historical_net_worth.items():
|
||||
diff_values = {}
|
||||
for currency in sorted(list(currencies)):
|
||||
current_val = values.get(currency, Decimal("0.00"))
|
||||
prev_val = prev_values.get(currency, Decimal("0.00"))
|
||||
diff_values[currency] = current_val - prev_val
|
||||
|
||||
diff_dict[month] = diff_values
|
||||
prev_values = values.copy()
|
||||
|
||||
return diff_dict
|
||||
|
||||
@@ -8,6 +8,7 @@ from django.views.decorators.http import require_http_methods
|
||||
from apps.net_worth.utils.calculate_net_worth import (
|
||||
calculate_historical_currency_net_worth,
|
||||
calculate_historical_account_balance,
|
||||
calculate_monthly_net_worth_difference,
|
||||
)
|
||||
from apps.transactions.models import Transaction
|
||||
from apps.transactions.utils.calculations import (
|
||||
@@ -96,6 +97,38 @@ def net_worth(request):
|
||||
|
||||
chart_data_currency_json = json.dumps(chart_data_currency, cls=DjangoJSONEncoder)
|
||||
|
||||
monthly_difference_data = calculate_monthly_net_worth_difference(
|
||||
historical_net_worth=historical_currency_net_worth
|
||||
)
|
||||
|
||||
diff_labels = (
|
||||
list(monthly_difference_data.keys()) if monthly_difference_data else []
|
||||
)
|
||||
diff_currencies = (
|
||||
list(monthly_difference_data[diff_labels[0]].keys())
|
||||
if monthly_difference_data and diff_labels
|
||||
else []
|
||||
)
|
||||
|
||||
diff_datasets = []
|
||||
for i, currency in enumerate(diff_currencies):
|
||||
data = [
|
||||
float(month_data.get(currency, 0))
|
||||
for month_data in monthly_difference_data.values()
|
||||
]
|
||||
diff_datasets.append(
|
||||
{
|
||||
"label": currency,
|
||||
"data": data,
|
||||
"borderWidth": 3,
|
||||
}
|
||||
)
|
||||
|
||||
chart_data_monthly_difference = {"labels": diff_labels, "datasets": diff_datasets}
|
||||
chart_data_monthly_difference_json = json.dumps(
|
||||
chart_data_monthly_difference, cls=DjangoJSONEncoder
|
||||
)
|
||||
|
||||
historical_account_balance = calculate_historical_account_balance(
|
||||
queryset=transactions_account_queryset
|
||||
)
|
||||
@@ -140,6 +173,7 @@ def net_worth(request):
|
||||
"chart_data_accounts_json": chart_data_accounts_json,
|
||||
"accounts": accounts,
|
||||
"type": view_type,
|
||||
"chart_data_monthly_difference_json": chart_data_monthly_difference_json,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: 2025-07-22 06:17+0000\n"
|
||||
"Last-Translator: seraphblade2010 <marc.butenhoff@web.de>\n"
|
||||
"Language-Team: German <https://translations.herculino.com/projects/wygiwyh/"
|
||||
@@ -1358,7 +1358,7 @@ msgstr ""
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -2235,6 +2235,8 @@ msgid "Current balance"
|
||||
msgstr "Aktueller Saldo"
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr "Differenz"
|
||||
|
||||
@@ -2612,19 +2614,19 @@ msgstr "Aktueller Preis"
|
||||
msgid "Amount Bought"
|
||||
msgstr "Anzahl gekauft"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr "Einstiegspreis zu Aktuellem Preis"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr "Tage zwischen Investitionen"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr "Investitions-Häufigkeit"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr ""
|
||||
"Je gerader die blaue Linie, desto gleichmäßiger ist deine DCA-Strategie."
|
||||
@@ -2827,7 +2829,7 @@ msgstr "Nettovermögen"
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr "Aktuell"
|
||||
|
||||
@@ -3228,25 +3230,31 @@ msgstr "Transaktionen filtern"
|
||||
msgid "Order by"
|
||||
msgstr "Sortieren nach"
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr "Nach Währung"
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr "Zusammengefasst"
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
#, fuzzy
|
||||
#| msgid "Evolution by account"
|
||||
msgid "Evolution"
|
||||
msgstr "Verlauf nach Konto"
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr "Nach Konto"
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr "Verlauf nach Währung"
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr "Verlauf nach Konto"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -1317,7 +1317,7 @@ msgstr ""
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -2168,6 +2168,8 @@ msgid "Current balance"
|
||||
msgstr ""
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr ""
|
||||
|
||||
@@ -2543,19 +2545,19 @@ msgstr ""
|
||||
msgid "Amount Bought"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr ""
|
||||
|
||||
@@ -2755,7 +2757,7 @@ msgstr ""
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
@@ -3138,25 +3140,29 @@ msgstr ""
|
||||
msgid "Order by"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
msgid "Evolution"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: 2025-07-21 18:17+0000\n"
|
||||
"Last-Translator: afermar <adrian.fm@protonmail.com>\n"
|
||||
"Language-Team: Spanish <https://translations.herculino.com/projects/wygiwyh/"
|
||||
@@ -1495,7 +1495,7 @@ msgstr "Update or Create Transaction action deleted successfully"
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
#, fuzzy
|
||||
@@ -2492,6 +2492,8 @@ msgid "Current balance"
|
||||
msgstr "Current balance"
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
#, fuzzy
|
||||
msgid "Difference"
|
||||
msgstr "Difference"
|
||||
@@ -2941,22 +2943,22 @@ msgstr "Current Price"
|
||||
msgid "Amount Bought"
|
||||
msgstr "Amount Bought"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
#, fuzzy
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr "Entry Price vs Current Price"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
#, fuzzy
|
||||
msgid "Days Between Investments"
|
||||
msgstr "Days Between Investments"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#, fuzzy
|
||||
msgid "Investment Frequency"
|
||||
msgstr "Investment Frequency"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
#, fuzzy
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr ""
|
||||
@@ -3203,7 +3205,7 @@ msgstr "Net Worth"
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
#, fuzzy
|
||||
msgid "Current"
|
||||
msgstr "Current"
|
||||
@@ -3657,25 +3659,31 @@ msgstr "Filtrar transacciones"
|
||||
msgid "Order by"
|
||||
msgstr "Ordenar por"
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr "Por moneda"
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr "Consolidado"
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
#, fuzzy
|
||||
#| msgid "Evolution by account"
|
||||
msgid "Evolution"
|
||||
msgstr "Evolución por cuenta"
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr "Por cuenta"
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr "Evolución por moneda"
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr "Evolución por cuenta"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"PO-Revision-Date: 2025-09-08 06:17+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: 2025-09-23 06:17+0000\n"
|
||||
"Last-Translator: sorcierwax <freakywax@gmail.com>\n"
|
||||
"Language-Team: French <https://translations.herculino.com/projects/wygiwyh/"
|
||||
"app/fr/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.13\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: apps/accounts/forms.py:26
|
||||
msgid "Group name"
|
||||
@@ -1345,7 +1345,7 @@ msgstr ""
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -2217,6 +2217,8 @@ msgid "Current balance"
|
||||
msgstr "Balance actuelle"
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr "Différence"
|
||||
|
||||
@@ -2592,19 +2594,19 @@ msgstr "Prix actuel"
|
||||
msgid "Amount Bought"
|
||||
msgstr "Montant acheté"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr "Prix d'entrée Vs Prix actuel"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr "Jours entre les investissements"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr "Fréquence d'investissement"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr ""
|
||||
"Plus la ligne bleue est droite, plus votre stratégie DCA est cohérente."
|
||||
@@ -2807,7 +2809,7 @@ msgstr "Valeur nette"
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr "A date"
|
||||
|
||||
@@ -3203,25 +3205,29 @@ msgstr "Filtrer les transactions"
|
||||
msgid "Order by"
|
||||
msgstr "Trier par"
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr "Par devises"
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr "Consolidé"
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
msgid "Evolution"
|
||||
msgstr "Evolution"
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr "Par comptes"
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr "Evolution par devises"
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr "Evolution par comptes"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -1316,7 +1316,7 @@ msgstr ""
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -2167,6 +2167,8 @@ msgid "Current balance"
|
||||
msgstr ""
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr ""
|
||||
|
||||
@@ -2542,19 +2544,19 @@ msgstr ""
|
||||
msgid "Amount Bought"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr ""
|
||||
|
||||
@@ -2754,7 +2756,7 @@ msgstr ""
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
@@ -3137,25 +3139,29 @@ msgstr ""
|
||||
msgid "Order by"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
msgid "Evolution"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"PO-Revision-Date: 2025-09-11 22:17+0000\n"
|
||||
"PO-Revision-Date: 2025-09-15 18:17+0000\n"
|
||||
"Last-Translator: Phillip Maizza <phillipmaizza@gmail.com>\n"
|
||||
"Language-Team: Italian <https://translations.herculino.com/projects/wygiwyh/"
|
||||
"app/it/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.13.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: apps/accounts/forms.py:26
|
||||
msgid "Group name"
|
||||
@@ -134,7 +134,7 @@ msgstr "Gruppo conto"
|
||||
#: templates/account_groups/pages/index.html:4
|
||||
#: templates/includes/navbar.html:121 templates/includes/sidebar.html:204
|
||||
msgid "Account Groups"
|
||||
msgstr "Gruppi di conti"
|
||||
msgstr "Gruppi conti"
|
||||
|
||||
#: apps/accounts/models.py:39 apps/currencies/models.py:44
|
||||
#: templates/accounts/fragments/list.html:27
|
||||
@@ -212,7 +212,7 @@ msgstr ""
|
||||
|
||||
#: apps/accounts/views/account_groups.py:44
|
||||
msgid "Account Group added successfully"
|
||||
msgstr "Gruppo di conti aggiunto con successo"
|
||||
msgstr "Gruppo conti aggiunto con successo"
|
||||
|
||||
#: apps/accounts/views/account_groups.py:69
|
||||
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
|
||||
@@ -228,7 +228,7 @@ msgstr "Solo il proprietario può modificare questo elemento"
|
||||
|
||||
#: apps/accounts/views/account_groups.py:82
|
||||
msgid "Account Group updated successfully"
|
||||
msgstr "Gruppo di conti aggiornato con successo"
|
||||
msgstr "Gruppo conti aggiornato con successo"
|
||||
|
||||
#: apps/accounts/views/account_groups.py:111
|
||||
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:105
|
||||
@@ -239,7 +239,7 @@ msgstr "L’elemento non è più condiviso con te"
|
||||
|
||||
#: apps/accounts/views/account_groups.py:114
|
||||
msgid "Account Group deleted successfully"
|
||||
msgstr "Gruppo di conti eliminato con successo"
|
||||
msgstr "Gruppo conti eliminato con successo"
|
||||
|
||||
#: apps/accounts/views/account_groups.py:135
|
||||
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:129
|
||||
@@ -301,11 +301,11 @@ msgstr "Dati tag non validi. Fornisci un ID o un nome."
|
||||
|
||||
#: apps/api/fields/transactions.py:105
|
||||
msgid "Entity with this ID does not exist."
|
||||
msgstr "L’entità con questo ID non esiste."
|
||||
msgstr "Il beneficiario con questo ID non esiste."
|
||||
|
||||
#: apps/api/fields/transactions.py:115
|
||||
msgid "Invalid entity data. Provide an ID or name."
|
||||
msgstr "Dati entità non validi. Fornisci un ID o un nome."
|
||||
msgstr "Dati beneficiario non validi. Fornisci un ID o un nome."
|
||||
|
||||
#: apps/api/serializers/transactions.py:192
|
||||
msgid "Either 'date' or 'reference_date' must be provided."
|
||||
@@ -490,7 +490,7 @@ msgstr "Rimuovi"
|
||||
#: templates/transactions/pages/transactions.html:89
|
||||
#: templates/transactions/pages/transactions.html:101
|
||||
msgid "Clear"
|
||||
msgstr "Pulisci"
|
||||
msgstr "Reset"
|
||||
|
||||
#: apps/common/widgets/tom_select.py:16
|
||||
msgid "No results..."
|
||||
@@ -552,7 +552,7 @@ msgstr "A valuta"
|
||||
|
||||
#: apps/currencies/models.py:74 apps/currencies/models.py:81
|
||||
msgid "Exchange Rate"
|
||||
msgstr "Tasso di cambio"
|
||||
msgstr "Cambio valuta"
|
||||
|
||||
#: apps/currencies/models.py:76
|
||||
msgid "Date and Time"
|
||||
@@ -568,7 +568,7 @@ msgstr "Automatico"
|
||||
#: templates/exchange_rates/pages/index.html:4
|
||||
#: templates/includes/navbar.html:129 templates/includes/sidebar.html:218
|
||||
msgid "Exchange Rates"
|
||||
msgstr "Tassi di cambio"
|
||||
msgstr "Cambio valute"
|
||||
|
||||
#: apps/currencies/models.py:94
|
||||
msgid "From and To currencies cannot be the same."
|
||||
@@ -650,17 +650,17 @@ msgstr ""
|
||||
|
||||
#: apps/currencies/models.py:160
|
||||
msgid "Single exchange rate"
|
||||
msgstr "Tasso di cambio singolo"
|
||||
msgstr "Cambio unico"
|
||||
|
||||
#: apps/currencies/models.py:163
|
||||
msgid "Create one exchange rate and keep updating it. Avoids database clutter."
|
||||
msgstr ""
|
||||
"Crea un solo tasso di cambio e lo mantiene aggiornato. Evita ingombri nel "
|
||||
"Crea un solo cambio valuta e aggiornalo nel tempo, evitando duplicati nel "
|
||||
"database."
|
||||
|
||||
#: apps/currencies/models.py:168
|
||||
msgid "Exchange Rate Service"
|
||||
msgstr "Servizio tasso di cambio"
|
||||
msgstr "Servizio cambio valuta"
|
||||
|
||||
#: apps/currencies/models.py:169
|
||||
msgid "Exchange Rate Services"
|
||||
@@ -704,15 +704,15 @@ msgstr "Valuta eliminata con successo"
|
||||
|
||||
#: apps/currencies/views/exchange_rates.py:89
|
||||
msgid "Exchange rate added successfully"
|
||||
msgstr "Tasso di cambio aggiunto con successo"
|
||||
msgstr "Cambio valuta aggiunto con successo"
|
||||
|
||||
#: apps/currencies/views/exchange_rates.py:117
|
||||
msgid "Exchange rate updated successfully"
|
||||
msgstr "Tasso di cambio aggiornato con successo"
|
||||
msgstr "Cambio valuta aggiornato con successo"
|
||||
|
||||
#: apps/currencies/views/exchange_rates.py:143
|
||||
msgid "Exchange rate deleted successfully"
|
||||
msgstr "Tasso di cambio eliminato con successo"
|
||||
msgstr "Cambio valuta eliminato con successo"
|
||||
|
||||
#: apps/currencies/views/exchange_rates_services.py:50
|
||||
msgid "Service added successfully"
|
||||
@@ -876,7 +876,7 @@ msgstr "Categorie"
|
||||
#: templates/includes/sidebar.html:190
|
||||
#: templates/insights/fragments/category_overview/index.html:49
|
||||
msgid "Entities"
|
||||
msgstr "Entità"
|
||||
msgstr "Beneficiari"
|
||||
|
||||
#: apps/export_app/forms.py:56 apps/export_app/forms.py:140
|
||||
#: apps/transactions/models.py:807 templates/includes/navbar.html:77
|
||||
@@ -884,7 +884,7 @@ msgstr "Entità"
|
||||
#: templates/recurring_transactions/fragments/list.html:5
|
||||
#: templates/recurring_transactions/pages/index.html:4
|
||||
msgid "Recurring Transactions"
|
||||
msgstr "Transazioni ricorrenti"
|
||||
msgstr "Pagamenti ricorrenti"
|
||||
|
||||
#: apps/export_app/forms.py:62 apps/export_app/forms.py:138
|
||||
#: apps/transactions/models.py:583 templates/includes/navbar.html:75
|
||||
@@ -892,14 +892,14 @@ msgstr "Transazioni ricorrenti"
|
||||
#: templates/installment_plans/fragments/list.html:5
|
||||
#: templates/installment_plans/pages/index.html:4
|
||||
msgid "Installment Plans"
|
||||
msgstr "Rate / Piani di rateizzazione"
|
||||
msgstr "Pagamenti a rate"
|
||||
|
||||
#: apps/export_app/forms.py:74 apps/export_app/forms.py:143
|
||||
#: templates/exchange_rates_services/fragments/list.html:6
|
||||
#: templates/exchange_rates_services/pages/index.html:4
|
||||
#: templates/includes/navbar.html:143 templates/includes/sidebar.html:246
|
||||
msgid "Automatic Exchange Rates"
|
||||
msgstr "Tassi di cambio automatici"
|
||||
msgstr "Cambio valuta automatico"
|
||||
|
||||
#: apps/export_app/forms.py:80 templates/includes/navbar.html:135
|
||||
#: templates/includes/sidebar.html:226 templates/rules/fragments/list.html:5
|
||||
@@ -1343,7 +1343,7 @@ msgstr "Azione Aggiornamento o Creazione transazione eliminata correttamente"
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -1392,12 +1392,12 @@ msgstr "Senza tag"
|
||||
|
||||
#: apps/transactions/filters.py:201
|
||||
msgid "Any entity"
|
||||
msgstr "Qualsiasi entità"
|
||||
msgstr "Qualsiasi beneficiario"
|
||||
|
||||
#: apps/transactions/filters.py:202
|
||||
#: templates/insights/fragments/category_overview/index.html:274
|
||||
msgid "No entity"
|
||||
msgstr "Nessuna entità"
|
||||
msgstr "Nessun beneficiario"
|
||||
|
||||
#: apps/transactions/forms.py:175
|
||||
msgid "More"
|
||||
@@ -1436,7 +1436,7 @@ msgstr "Nome tag"
|
||||
|
||||
#: apps/transactions/forms.py:939
|
||||
msgid "Entity name"
|
||||
msgstr "Nome entità"
|
||||
msgstr "Nome beneficiario"
|
||||
|
||||
#: apps/transactions/forms.py:971
|
||||
msgid "Category name"
|
||||
@@ -1487,12 +1487,12 @@ msgid ""
|
||||
"Deactivated entities won't be able to be selected when creating new "
|
||||
"transactions"
|
||||
msgstr ""
|
||||
"Le entità disattivate non potranno essere selezionate durante la creazione "
|
||||
"di nuove transazioni"
|
||||
"I beneficiari disattivati non potranno essere selezionati durante la "
|
||||
"creazione di nuove transazioni"
|
||||
|
||||
#: apps/transactions/models.py:277
|
||||
msgid "Entity"
|
||||
msgstr "Entità"
|
||||
msgstr "Beneficiari"
|
||||
|
||||
#: apps/transactions/models.py:289 apps/transactions/models.py:971
|
||||
#: templates/calendar_view/fragments/list.html:42
|
||||
@@ -1504,7 +1504,7 @@ msgstr "Entità"
|
||||
#: templates/insights/fragments/category_overview/index.html:79
|
||||
#: templates/monthly_overview/fragments/monthly_summary.html:39
|
||||
msgid "Income"
|
||||
msgstr "Entrata"
|
||||
msgstr "Entrate"
|
||||
|
||||
#: apps/transactions/models.py:290 apps/transactions/models.py:972
|
||||
#: templates/calendar_view/fragments/list.html:46
|
||||
@@ -1625,7 +1625,7 @@ msgstr "Tipo di ricorrenza"
|
||||
|
||||
#: apps/transactions/models.py:782
|
||||
msgid "Recurrence Interval"
|
||||
msgstr "Intervallo di ricorrenza"
|
||||
msgstr "Frequenza"
|
||||
|
||||
#: apps/transactions/models.py:785
|
||||
msgid "Keep at most"
|
||||
@@ -1714,15 +1714,15 @@ msgstr "Categoria eliminata con successo"
|
||||
|
||||
#: apps/transactions/views/entities.py:66
|
||||
msgid "Entity added successfully"
|
||||
msgstr "Entità aggiunta con successo"
|
||||
msgstr "Beneficiario aggiunto con successo"
|
||||
|
||||
#: apps/transactions/views/entities.py:104
|
||||
msgid "Entity updated successfully"
|
||||
msgstr "Entità aggiornata con successo"
|
||||
msgstr "Beneficiario aggiornato con successo"
|
||||
|
||||
#: apps/transactions/views/entities.py:133
|
||||
msgid "Entity deleted successfully"
|
||||
msgstr "Entità eliminata con successo"
|
||||
msgstr "Beneficiario eliminato con successo"
|
||||
|
||||
#: apps/transactions/views/installment_plans.py:87
|
||||
msgid "Installment Plan added successfully"
|
||||
@@ -1886,8 +1886,8 @@ msgid ""
|
||||
"displayed\n"
|
||||
"Consider helping translate WYGIWYH to your language at %(translation_link)s"
|
||||
msgstr ""
|
||||
"Questo cambia la lingua (se disponibile) e la modalità di visualizzazione di "
|
||||
"numeri e date.\n"
|
||||
"Cambia la lingua (se disponibile) e la modalità di visualizzazione di numeri "
|
||||
"e date.\n"
|
||||
"Considera la possibilità di contribuire alla traduzione di WYGIWYH nella tua "
|
||||
"lingua su %(translation_link)s"
|
||||
|
||||
@@ -1897,7 +1897,7 @@ msgstr "Nuova Password"
|
||||
|
||||
#: apps/users/forms.py:160
|
||||
msgid "Leave blank to keep the current password."
|
||||
msgstr "Lasciare vuoto per mantenere la password corrente."
|
||||
msgstr "Lascia vuoto per mantenere la password attuale."
|
||||
|
||||
#: apps/users/forms.py:163
|
||||
msgid "Confirm New Password"
|
||||
@@ -2016,11 +2016,11 @@ msgstr "Le tue impostazioni sono state aggiornate"
|
||||
|
||||
#: templates/account_groups/fragments/add.html:5
|
||||
msgid "Add account group"
|
||||
msgstr "Aggiungi gruppo di account"
|
||||
msgstr "Aggiungi gruppo conti"
|
||||
|
||||
#: templates/account_groups/fragments/edit.html:5
|
||||
msgid "Edit account group"
|
||||
msgstr "Modifica gruppo di account"
|
||||
msgstr "Modifica gruppo conti"
|
||||
|
||||
#: templates/account_groups/fragments/list.html:32
|
||||
#: templates/accounts/fragments/list.html:37
|
||||
@@ -2192,7 +2192,7 @@ msgstr "Condividi"
|
||||
|
||||
#: templates/account_groups/fragments/list.html:77
|
||||
msgid "No account groups"
|
||||
msgstr "Nessun gruppo di account"
|
||||
msgstr "Nessun gruppo conti"
|
||||
|
||||
#: templates/account_groups/fragments/share.html:5
|
||||
#: templates/accounts/fragments/share.html:5
|
||||
@@ -2212,6 +2212,8 @@ msgid "Current balance"
|
||||
msgstr "Saldo corrente"
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr "Differenza"
|
||||
|
||||
@@ -2517,7 +2519,7 @@ msgstr "Aggiungi strategia DCA"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:22
|
||||
msgid "No exchange rate available"
|
||||
msgstr "Nessun tasso di cambio disponibile"
|
||||
msgstr "Nessun cambio valuta disponibile"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:33
|
||||
msgid "Entries"
|
||||
@@ -2587,19 +2589,19 @@ msgstr "Prezzo attuale"
|
||||
msgid "Amount Bought"
|
||||
msgstr "Importo acquistato"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr "Prezzo di ingresso vs prezzo corrente"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr "Giorni tra gli investimenti"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr "Frequenza di investimento"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr "Più dritta è la linea blu, più coerente è la tua strategia DCA."
|
||||
|
||||
@@ -2610,33 +2612,33 @@ msgstr "Modifica la strategia DCA"
|
||||
#: templates/dca/fragments/strategy/list.html:5
|
||||
#: templates/dca/pages/strategy_index.html:4
|
||||
msgid "Dollar Cost Average Strategies"
|
||||
msgstr "Strategie di costo medio del dollaro"
|
||||
msgstr "Strategie DCA"
|
||||
|
||||
#: templates/dca/pages/strategy_detail_index.html:4
|
||||
msgid "Dollar Cost Average Strategy"
|
||||
msgstr "Strategia del costo medio del dollaro"
|
||||
msgstr "Strategie DCA"
|
||||
|
||||
#: templates/entities/fragments/add.html:5
|
||||
msgid "Add entity"
|
||||
msgstr "Aggiungi entità"
|
||||
msgstr "Aggiungi beneficiario"
|
||||
|
||||
#: templates/entities/fragments/edit.html:5
|
||||
msgid "Edit entity"
|
||||
msgstr "Modifica entità"
|
||||
msgstr "Modifica beneficiario"
|
||||
|
||||
#: templates/entities/fragments/table.html:71
|
||||
msgid "No entities"
|
||||
msgstr "Nessuna entità"
|
||||
msgstr "Nessun beneficiario"
|
||||
|
||||
#: templates/exchange_rates/fragments/add.html:5
|
||||
#: templates/exchange_rates_services/fragments/add.html:5
|
||||
msgid "Add exchange rate"
|
||||
msgstr "Aggiungi tasso di cambio"
|
||||
msgstr "Aggiungi cambio valuta"
|
||||
|
||||
#: templates/exchange_rates/fragments/edit.html:5
|
||||
#: templates/exchange_rates_services/fragments/edit.html:5
|
||||
msgid "Edit exchange rate"
|
||||
msgstr "Modifica tasso di cambio"
|
||||
msgstr "Modifica cambio valuta"
|
||||
|
||||
#: templates/exchange_rates/fragments/list.html:25
|
||||
#: templates/includes/navbar.html:62 templates/includes/sidebar.html:85
|
||||
@@ -2659,7 +2661,7 @@ msgstr "Tasso"
|
||||
#: templates/exchange_rates/fragments/table.html:51
|
||||
#: templates/exchange_rates_services/fragments/table.html:51
|
||||
msgid "No exchange rates"
|
||||
msgstr "Nessun tasso di cambio"
|
||||
msgstr "Nessun cambio valuta"
|
||||
|
||||
#: templates/exchange_rates/fragments/table.html:58
|
||||
#: templates/exchange_rates_services/fragments/table.html:58
|
||||
@@ -2801,14 +2803,14 @@ msgstr "Patrimonio netto"
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr "Attuale"
|
||||
|
||||
#: templates/includes/navbar.html:51 templates/includes/sidebar.html:71
|
||||
#: templates/insights/pages/index.html:5
|
||||
msgid "Insights"
|
||||
msgstr "Approfondimenti"
|
||||
msgstr "Analisi"
|
||||
|
||||
#: templates/includes/navbar.html:67 templates/includes/sidebar.html:93
|
||||
msgid "Trash Can"
|
||||
@@ -2820,19 +2822,19 @@ msgstr "Strumenti"
|
||||
|
||||
#: templates/includes/navbar.html:89 templates/includes/sidebar.html:120
|
||||
msgid "Dollar Cost Average Tracker"
|
||||
msgstr "Tracker del costo medio del dollaro"
|
||||
msgstr "Costo medio del dollaro"
|
||||
|
||||
#: templates/includes/navbar.html:92 templates/includes/sidebar.html:126
|
||||
#: templates/mini_tools/unit_price_calculator.html:5
|
||||
#: templates/mini_tools/unit_price_calculator.html:10
|
||||
msgid "Unit Price Calculator"
|
||||
msgstr "Calcolatore del prezzo unitario"
|
||||
msgstr "Prezzo per unità"
|
||||
|
||||
#: templates/includes/navbar.html:95 templates/includes/sidebar.html:132
|
||||
#: templates/mini_tools/currency_converter/currency_converter.html:8
|
||||
#: templates/mini_tools/currency_converter/currency_converter.html:15
|
||||
msgid "Currency Converter"
|
||||
msgstr "Convertitore di valuta"
|
||||
msgstr "Converti valuta"
|
||||
|
||||
#: templates/includes/navbar.html:104 templates/includes/sidebar.html:150
|
||||
#: templates/includes/sidebar.html:163
|
||||
@@ -2936,7 +2938,7 @@ msgstr "Tabella"
|
||||
|
||||
#: templates/insights/fragments/category_overview/index.html:24
|
||||
msgid "Bars"
|
||||
msgstr "Barre"
|
||||
msgstr "Grafico a barre"
|
||||
|
||||
#: templates/insights/fragments/category_overview/index.html:39
|
||||
msgid ""
|
||||
@@ -2951,7 +2953,7 @@ msgid ""
|
||||
"Transaction amounts associated with multiple tags and entities will be "
|
||||
"counted once for each tag"
|
||||
msgstr ""
|
||||
"Gli importi delle transazioni associati a più tag ed entità verranno "
|
||||
"Gli importi delle transazioni associati a più tag e beneficiari verranno "
|
||||
"conteggiati una volta per ogni tag"
|
||||
|
||||
#: templates/insights/fragments/category_overview/index.html:69
|
||||
@@ -2997,7 +2999,7 @@ msgstr "Tutto bene!"
|
||||
|
||||
#: templates/insights/fragments/late_transactions.html:16
|
||||
msgid "No late transactions"
|
||||
msgstr "Nessuna transazione in ritardo"
|
||||
msgstr "Nessuna transazione in sospeso"
|
||||
|
||||
#: templates/insights/fragments/latest_transactions.html:14
|
||||
msgid "No recent transactions"
|
||||
@@ -3023,35 +3025,35 @@ msgstr "Anno"
|
||||
|
||||
#: templates/insights/pages/index.html:45
|
||||
msgid "Month Range"
|
||||
msgstr "Intervallo di mesi"
|
||||
msgstr "Intervallo mesi"
|
||||
|
||||
#: templates/insights/pages/index.html:50
|
||||
msgid "Year Range"
|
||||
msgstr "Intervallo di anni"
|
||||
msgstr "Intervallo anni"
|
||||
|
||||
#: templates/insights/pages/index.html:55
|
||||
msgid "Date Range"
|
||||
msgstr "Intervallo di date"
|
||||
msgstr "Intervallo date"
|
||||
|
||||
#: templates/insights/pages/index.html:83
|
||||
msgid "Account Flow"
|
||||
msgstr "Flusso del conto"
|
||||
msgstr "Flusso conti"
|
||||
|
||||
#: templates/insights/pages/index.html:90
|
||||
msgid "Currency Flow"
|
||||
msgstr "Flusso di valuta"
|
||||
msgstr "Flusso valute"
|
||||
|
||||
#: templates/insights/pages/index.html:97
|
||||
msgid "Category Explorer"
|
||||
msgstr "Esploratore di categorie"
|
||||
msgstr "Categorie"
|
||||
|
||||
#: templates/insights/pages/index.html:104
|
||||
msgid "Categories Overview"
|
||||
msgstr "Panoramica delle categorie"
|
||||
msgstr "Panoramica categorie"
|
||||
|
||||
#: templates/insights/pages/index.html:111
|
||||
msgid "Late Transactions"
|
||||
msgstr "Transazioni in ritardo"
|
||||
msgstr "Transazioni in sospeso"
|
||||
|
||||
#: templates/insights/pages/index.html:117
|
||||
msgid "Latest Transactions"
|
||||
@@ -3114,7 +3116,7 @@ msgstr "Investi"
|
||||
#: templates/mini_tools/unit_price_calculator.html:100
|
||||
#: templates/mini_tools/unit_price_calculator.html:125
|
||||
msgid "Item price"
|
||||
msgstr "Prezzo dell'elemento"
|
||||
msgstr "Prezzo"
|
||||
|
||||
#: templates/mini_tools/unit_price_calculator.html:33
|
||||
#: templates/mini_tools/unit_price_calculator.html:106
|
||||
@@ -3144,7 +3146,7 @@ msgstr "Quota di spesa giornaliera"
|
||||
|
||||
#: templates/monthly_overview/fragments/monthly_summary.html:6
|
||||
msgid "This is the final total divided by the remaining days in the month"
|
||||
msgstr "Questo è il totale finale diviso per i giorni rimanenti del mese"
|
||||
msgstr "Il totale finale diviso per i giorni del mese rimanenti"
|
||||
|
||||
#: templates/monthly_overview/fragments/monthly_summary.html:42
|
||||
#: templates/monthly_overview/fragments/monthly_summary.html:106
|
||||
@@ -3194,25 +3196,31 @@ msgstr "Filtra transazioni"
|
||||
msgid "Order by"
|
||||
msgstr "Ordina per"
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr "Per valuta"
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr "Consolidate"
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
#, fuzzy
|
||||
#| msgid "Evolution by account"
|
||||
msgid "Evolution"
|
||||
msgstr "Evoluzione per conto"
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr "Per conto"
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr "Evoluzione per valuta"
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr "Evoluzione per conto"
|
||||
|
||||
@@ -3224,7 +3232,7 @@ msgstr "Aggiungi transazione rapida"
|
||||
#: templates/quick_transactions/fragments/create_menu.html:13
|
||||
#: templates/quick_transactions/fragments/list.html:68
|
||||
msgid "Nothing to see here..."
|
||||
msgstr "Qui non c'è niente da vedere..."
|
||||
msgstr "Non c’è nulla da mostrare..."
|
||||
|
||||
#: templates/quick_transactions/fragments/edit.html:5
|
||||
msgid "Edit quick transaction"
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"PO-Revision-Date: 2025-09-09 18:17+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: 2025-09-21 13:17+0000\n"
|
||||
"Last-Translator: Dimitri Decrock <dj.flashpower@gmail.com>\n"
|
||||
"Language-Team: Dutch <https://translations.herculino.com/projects/wygiwyh/"
|
||||
"app/nl/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.13.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: apps/accounts/forms.py:26
|
||||
msgid "Group name"
|
||||
@@ -1344,7 +1344,7 @@ msgstr "Verrichting Bijwerken Of Maken succesvol verwijderd"
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -2208,6 +2208,8 @@ msgid "Current balance"
|
||||
msgstr "Huidige saldo"
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr "Verschil"
|
||||
|
||||
@@ -2583,19 +2585,19 @@ msgstr "Actuele Prijs"
|
||||
msgid "Amount Bought"
|
||||
msgstr "Gekocht Bedrag"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr "Instapprijs vs Huidige Prijs"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr "Dagen Tussen Investeringen"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr "Investeringsfrequentie"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr "Hoe rechter de blauwe lijn, hoe consistenter je DCA-strategie is."
|
||||
|
||||
@@ -2796,7 +2798,7 @@ msgstr "Netto Waarde"
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr "Huidige"
|
||||
|
||||
@@ -3190,25 +3192,29 @@ msgstr "Filter verrichtingen"
|
||||
msgid "Order by"
|
||||
msgstr "Sorteer op"
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr "Op munteenheid"
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr "Samengevoegd"
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
msgid "Evolution"
|
||||
msgstr "Evolutie"
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr "Op rekening"
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr "Evolutie per munteenheid"
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr "Evolutie per rekening"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"PO-Revision-Date: 2025-09-07 14:17+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: 2025-09-20 14:44+0000\n"
|
||||
"Last-Translator: Herculino Trotta <netotrotta@gmail.com>\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://translations.herculino.com/"
|
||||
"projects/wygiwyh/app/pt_BR/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.13\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: apps/accounts/forms.py:26
|
||||
msgid "Group name"
|
||||
@@ -1342,7 +1342,7 @@ msgstr "Ação Atualizar ou Criar Transação apagada com sucesso"
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -2207,6 +2207,8 @@ msgid "Current balance"
|
||||
msgstr "Saldo atual"
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr "Diferença"
|
||||
|
||||
@@ -2582,19 +2584,19 @@ msgstr "Preço atual"
|
||||
msgid "Amount Bought"
|
||||
msgstr "Quantia comprada"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr "Preço de Entrada vs Preço Atual"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr "Dias entre investimentos"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr "Frequência de Investimento"
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr ""
|
||||
"Quanto mais reta for a linha azul, mais consistente é sua estratégia de CMP."
|
||||
@@ -2797,7 +2799,7 @@ msgstr "Patrimônio"
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr "Atual"
|
||||
|
||||
@@ -3189,25 +3191,29 @@ msgstr "Filtrar transações"
|
||||
msgid "Order by"
|
||||
msgstr "Ordernar por"
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr "Por moeda"
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr "Consolidado"
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
msgid "Evolution"
|
||||
msgstr "Evolução"
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr "Por conta"
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr "Evolução por moeda"
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr "Evolução por conta"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: 2025-04-14 06:16+0000\n"
|
||||
"Last-Translator: Emil <emil.bjorkroth@gmail.com>\n"
|
||||
"Language-Team: Swedish <https://translations.herculino.com/projects/wygiwyh/"
|
||||
@@ -1318,7 +1318,7 @@ msgstr ""
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -2169,6 +2169,8 @@ msgid "Current balance"
|
||||
msgstr ""
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr ""
|
||||
|
||||
@@ -2544,19 +2546,19 @@ msgstr ""
|
||||
msgid "Amount Bought"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr ""
|
||||
|
||||
@@ -2756,7 +2758,7 @@ msgstr ""
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
@@ -3139,25 +3141,29 @@ msgstr ""
|
||||
msgid "Order by"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
msgid "Evolution"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-14 04:57+0000\n"
|
||||
"POT-Creation-Date: 2025-09-20 14:08+0000\n"
|
||||
"PO-Revision-Date: 2025-05-12 14:16+0000\n"
|
||||
"Last-Translator: Felix <xnovaua@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <https://translations.herculino.com/projects/"
|
||||
@@ -1335,7 +1335,7 @@ msgstr ""
|
||||
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
|
||||
#: templates/cotton/transaction/item.html:32 templates/includes/navbar.html:47
|
||||
#: templates/insights/fragments/category_overview/index.html:61
|
||||
#: templates/net_worth/net_worth.html:32
|
||||
#: templates/net_worth/net_worth.html:33
|
||||
#: templates/transactions/widgets/paid_toggle_button.html:8
|
||||
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
|
||||
msgid "Projected"
|
||||
@@ -2190,6 +2190,8 @@ msgid "Current balance"
|
||||
msgstr ""
|
||||
|
||||
#: templates/accounts/fragments/account_reconciliation.html:39
|
||||
#: templates/net_worth/net_worth.html:105
|
||||
#: templates/net_worth/net_worth.html:362
|
||||
msgid "Difference"
|
||||
msgstr ""
|
||||
|
||||
@@ -2565,19 +2567,19 @@ msgstr ""
|
||||
msgid "Amount Bought"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:390
|
||||
#: templates/dca/fragments/strategy/details.html:392
|
||||
msgid "Entry Price vs Current Price"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:406
|
||||
#: templates/dca/fragments/strategy/details.html:408
|
||||
msgid "Days Between Investments"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:453
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
msgid "Investment Frequency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/dca/fragments/strategy/details.html:455
|
||||
#: templates/dca/fragments/strategy/details.html:457
|
||||
msgid "The straighter the blue line, the more consistent your DCA strategy is."
|
||||
msgstr ""
|
||||
|
||||
@@ -2777,7 +2779,7 @@ msgstr ""
|
||||
|
||||
#: templates/includes/navbar.html:45
|
||||
#: templates/insights/fragments/category_overview/index.html:65
|
||||
#: templates/net_worth/net_worth.html:22
|
||||
#: templates/net_worth/net_worth.html:23
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
@@ -3160,25 +3162,29 @@ msgstr ""
|
||||
msgid "Order by"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:40
|
||||
#: templates/net_worth/net_worth.html:42
|
||||
#: templates/yearly_overview/pages/overview_by_currency.html:9
|
||||
msgid "By currency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:75
|
||||
#: templates/net_worth/net_worth.html:78
|
||||
msgid "Consolidated"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:104
|
||||
#: templates/net_worth/net_worth.html:101
|
||||
msgid "Evolution"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:128
|
||||
#: templates/yearly_overview/pages/overview_by_account.html:7
|
||||
msgid "By account"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:211
|
||||
#: templates/net_worth/net_worth.html:236
|
||||
msgid "Evolution by currency"
|
||||
msgstr ""
|
||||
|
||||
#: templates/net_worth/net_worth.html:275
|
||||
#: templates/net_worth/net_worth.html:300
|
||||
msgid "Evolution by account"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{% if icon %}<i class="{{ icon }}"></i>{% else %}<span class="fw-bold">{{ title.0 }}</span>{% endif %}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h5 class="tw:text-{{ color }}-400 fw-bold tw:mr-[50px]" {{ attrs }}>{{ title }}{% if help_text %}<c-ui.help-icon :content="help_text" icon=""></c-ui.help-icon>{% endif %}</h5>
|
||||
<h5 class="tw:text-{{ color }}-400 fw-bold tw:mr-[50px] {{ title_css_classes }}" {{ attrs }}>{{ title }}{% if help_text %}<c-ui.help-icon :content="help_text" icon=""></c-ui.help-icon>{% endif %}</h5>
|
||||
{{ slot }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -354,6 +354,7 @@
|
||||
display: false,
|
||||
},
|
||||
ticks: {
|
||||
display: false,
|
||||
format: { maximumFractionDigits: 40, minimumFractionDigits: 1 }
|
||||
}
|
||||
},
|
||||
@@ -369,6 +370,7 @@
|
||||
display: false,
|
||||
},
|
||||
ticks: {
|
||||
display: false,
|
||||
format: { maximumFractionDigits: 40, minimumFractionDigits: 1 }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,338 +9,422 @@
|
||||
{% block title %}{% if type == "current" %}{% translate 'Current Net Worth' %}{% else %}{% translate 'Projected Net Worth' %}{% endif %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div hx-trigger="every 60m, updated from:window" hx-include="#view-type" class="show-loading" hx-get="" hx-target="body">
|
||||
<div class="h-100 text-center mb-4 pt-2">
|
||||
<div class="btn-group gap-3" role="group" id="view-type" _="on change trigger updated">
|
||||
<input type="radio" class="btn-check"
|
||||
name="view_type"
|
||||
id="current-view"
|
||||
autocomplete="off"
|
||||
value="current"
|
||||
{% if type == "current" %}checked{% endif %}>
|
||||
<label class="btn btn-outline-primary rounded-5" for="current-view"><i
|
||||
class="fa-solid fa-sack-dollar fa-fw me-2"></i>{% trans 'Current' %}</label>
|
||||
<div hx-trigger="every 60m, updated from:window" hx-include="#view-type" class="show-loading" hx-get=""
|
||||
hx-target="body">
|
||||
<div class="h-100 text-center mb-4 pt-2">
|
||||
<div class="btn-group gap-3" role="group" id="view-type" _="on change trigger updated">
|
||||
<input type="radio" class="btn-check"
|
||||
name="view_type"
|
||||
id="current-view"
|
||||
autocomplete="off"
|
||||
value="current"
|
||||
{% if type == "current" %}checked{% endif %}>
|
||||
<label class="btn btn-outline-primary rounded-5" for="current-view"><i
|
||||
class="fa-solid fa-sack-dollar fa-fw me-2"></i>{% trans 'Current' %}</label>
|
||||
|
||||
<input type="radio"
|
||||
class="btn-check"
|
||||
name="view_type"
|
||||
id="projected-view"
|
||||
autocomplete="off"
|
||||
value="projected"
|
||||
{% if type == "projected" %}checked{% endif %}>
|
||||
<label class="btn btn-outline-primary rounded-5" for="projected-view"><i
|
||||
class="fa-solid fa-rocket fa-fw me-2"></i>{% trans 'Projected' %}</label>
|
||||
<input type="radio"
|
||||
class="btn-check"
|
||||
name="view_type"
|
||||
id="projected-view"
|
||||
autocomplete="off"
|
||||
value="projected"
|
||||
{% if type == "projected" %}checked{% endif %}>
|
||||
<label class="btn btn-outline-primary rounded-5" for="projected-view"><i
|
||||
class="fa-solid fa-rocket fa-fw me-2"></i>{% trans 'Projected' %}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container px-md-3 py-3" _="init call initializeAccountChart() then initializeCurrencyChart() end">
|
||||
<div class="row gx-xl-4 gy-3 mb-4">
|
||||
<div class="col-12 col-xl-5">
|
||||
<div class="row row-cols-1 g-4">
|
||||
<div class="col">
|
||||
<c-ui.info-card color="yellow" icon="fa-solid fa-coins" title="{% trans 'By currency' %}"
|
||||
_="on click showAllDatasetsCurrency()">
|
||||
{% for currency in currency_net_worth.values %}
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="currency-name text-start font-monospace tw:text-gray-300"
|
||||
_="on click showOnlyCurrencyDataset('{{ currency.currency.name }}')">
|
||||
{{ currency.currency.name }}
|
||||
<div class="container px-md-3 py-3"
|
||||
_="init call initializeAccountChart() then initializeCurrencyChart() then initializeMonthlyDifferenceChart() end">
|
||||
<div class="row gx-xl-4 gy-3 mb-4">
|
||||
<div class="col-12 col-xl-5">
|
||||
<div class="row row-cols-1 g-4">
|
||||
<div class="col">
|
||||
<c-ui.info-card color="yellow" icon="fa-solid fa-coins" title="{% trans 'By currency' %}"
|
||||
title_css_classes="tw:cursor-pointer"
|
||||
_="on click showAllDatasetsCurrency()">
|
||||
{% for currency in currency_net_worth.values %}
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="currency-name text-start font-monospace tw:text-gray-300 tw:cursor-pointer"
|
||||
_="on click showOnlyCurrencyDataset('{{ currency.currency.name }}')">
|
||||
{{ currency.currency.name }}
|
||||
</div>
|
||||
<div class="dotted-line flex-grow-1"></div>
|
||||
<div>
|
||||
<c-amount.display
|
||||
:amount="currency.total_final"
|
||||
:prefix="currency.currency.prefix"
|
||||
:suffix="currency.currency.suffix"
|
||||
:decimal_places="currency.currency.decimal_places"
|
||||
color="{% if currency.total_final > 0 %}green{% elif currency.total_final < 0 %}red{% endif %}"
|
||||
text-end></c-amount.display>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dotted-line flex-grow-1"></div>
|
||||
</div>
|
||||
{% if currency.exchanged and currency.exchanged.total_final %}
|
||||
<div>
|
||||
<c-amount.display
|
||||
:amount="currency.total_final"
|
||||
:prefix="currency.currency.prefix"
|
||||
:suffix="currency.currency.suffix"
|
||||
:decimal_places="currency.currency.decimal_places"
|
||||
color="{% if currency.total_final > 0 %}green{% elif currency.total_final < 0 %}red{% endif %}"
|
||||
text-end></c-amount.display>
|
||||
:amount="currency.exchanged.total_final"
|
||||
:prefix="currency.exchanged.currency.prefix"
|
||||
:suffix="currency.exchanged.currency.suffix"
|
||||
:decimal_places="currency.exchanged.currency.decimal_places"
|
||||
text-end
|
||||
color="grey"></c-amount.display>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if currency.exchanged and currency.exchanged.total_final %}
|
||||
<div>
|
||||
<c-amount.display
|
||||
:amount="currency.exchanged.total_final"
|
||||
:prefix="currency.exchanged.currency.prefix"
|
||||
:suffix="currency.exchanged.currency.suffix"
|
||||
:decimal_places="currency.exchanged.currency.decimal_places"
|
||||
text-end
|
||||
color="grey"></c-amount.display>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if currency.consolidated and currency.consolidated.total_final != currency.total_final %}
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="account-name text-start font-monospace tw:text-gray-300">
|
||||
<span class="hierarchy-line-icon"></span>{% trans 'Consolidated' %}</div>
|
||||
<div class="dotted-line flex-grow-1"></div>
|
||||
<div class="">
|
||||
<c-amount.display
|
||||
{% endif %}
|
||||
{% if currency.consolidated and currency.consolidated.total_final != currency.total_final %}
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="account-name text-start font-monospace tw:text-gray-300">
|
||||
<span class="hierarchy-line-icon"></span>{% trans 'Consolidated' %}</div>
|
||||
<div class="dotted-line flex-grow-1"></div>
|
||||
<div class="">
|
||||
<c-amount.display
|
||||
:amount="currency.consolidated.total_final"
|
||||
:prefix="currency.consolidated.currency.prefix"
|
||||
:suffix="currency.consolidated.currency.suffix"
|
||||
:decimal_places="currency.consolidated.currency.decimal_places"
|
||||
color="{% if currency.consolidated.total_final > 0 %}green{% elif currency.consolidated.total_final < 0 %}red{% endif %}"
|
||||
text-end></c-amount.display>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</c-ui.info-card>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</c-ui.info-card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-xl-7">
|
||||
<ul class="nav nav-tabs" id="myTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="evolution-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#evolution-tab-pane" type="button" role="tab" aria-controls="evolution-tab-pane"
|
||||
aria-selected="true">{% trans 'Evolution' %}</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="diff-tab" data-bs-toggle="tab" data-bs-target="#diff-tab-pane" type="button"
|
||||
role="tab" aria-controls="diff-tab-pane" aria-selected="false">{% trans 'Difference' %}</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content" id="myTabContent">
|
||||
<div class="tab-pane fade show active" id="evolution-tab-pane" role="tabpanel"
|
||||
aria-labelledby="evolution-tab" tabindex="0">
|
||||
<div class="chart-container position-relative tw:min-h-[40vh] tw:h-full tw:w-full">
|
||||
<canvas id="currencyBalanceChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="diff-tab-pane" role="tabpanel" aria-labelledby="diff-tab" tabindex="0">
|
||||
<div class="chart-container position-relative tw:min-h-[40vh] tw:h-full tw:w-full">
|
||||
<canvas id="monthlyDifferenceChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-xl-7">
|
||||
<div class="chart-container position-relative tw:min-h-[40vh] tw:h-full">
|
||||
<canvas id="currencyBalanceChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row gx-xl-4 gy-3 mt-4">
|
||||
<div class="col-12 col-xl-5">
|
||||
<div class="row row-cols-1 g-4">
|
||||
<div class="col">
|
||||
<c-ui.info-card color="blue" icon="fa-solid fa-wallet" title="{% trans 'By account' %}"
|
||||
_="on click showAllDatasetsAccount()">
|
||||
{% regroup account_net_worth.values by account.group as account_data %}
|
||||
{% for data in account_data %}
|
||||
{% if data.grouper %}
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="text-start font-monospace tw:text-gray-300"><span class="badge text-bg-primary">
|
||||
<hr>
|
||||
<div class="row gx-xl-4 gy-3 mt-4">
|
||||
<div class="col-12 col-xl-5">
|
||||
<div class="row row-cols-1 g-4">
|
||||
<div class="col">
|
||||
<c-ui.info-card color="blue" icon="fa-solid fa-wallet" title="{% trans 'By account' %}"
|
||||
title_css_classes="tw:cursor-pointer"
|
||||
_="on click showAllDatasetsAccount()">
|
||||
{% regroup account_net_worth.values by account.group as account_data %}
|
||||
{% for data in account_data %}
|
||||
{% if data.grouper %}
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="text-start font-monospace tw:text-gray-300"><span class="badge text-bg-primary">
|
||||
{{ data.grouper }}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
{% for account in data.list %}
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="account-name text-start font-monospace tw:text-gray-300"
|
||||
_="on click showOnlyAccountDataset('{{ account.account.name }}')">
|
||||
<span class="hierarchy-line-icon"></span>{{ account.account.name }}</div>
|
||||
<div class="dotted-line flex-grow-1"></div>
|
||||
<div class="">
|
||||
<c-amount.display
|
||||
:amount="account.total_final"
|
||||
:prefix="account.currency.prefix"
|
||||
:suffix="account.currency.suffix"
|
||||
:decimal_places="account.currency.decimal_places"
|
||||
color="{% if account.total_final > 0 %}green{% elif account.total_final < 0 %}red{% endif %}"></c-amount.display>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if account.exchanged and account.exchanged.total_final %}
|
||||
<c-amount.display
|
||||
:amount="account.exchanged.total_final"
|
||||
:prefix="account.exchanged.currency.prefix"
|
||||
:suffix="account.exchanged.currency.suffix"
|
||||
:decimal_places="account.exchanged.currency.decimal_places"
|
||||
color="grey"
|
||||
text-end></c-amount.display>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% for account in data.list %}
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="account-name text-start font-monospace tw:text-gray-300"
|
||||
_="on click showOnlyAccountDataset('{{ account.account.name }}')">
|
||||
{{ account.account.name }}
|
||||
</div>
|
||||
<div class="dotted-line flex-grow-1"></div>
|
||||
<div>
|
||||
<c-amount.display
|
||||
:amount="account.total_final"
|
||||
:prefix="account.currency.prefix"
|
||||
:suffix="account.currency.suffix"
|
||||
:decimal_places="account.currency.decimal_places"
|
||||
color="{% if account.total_final > 0 %}green{% elif account.total_final < 0 %}red{% endif %}"></c-amount.display>
|
||||
{% for account in data.list %}
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="account-name text-start font-monospace tw:text-gray-300 tw:cursor-pointer"
|
||||
_="on click showOnlyAccountDataset('{{ account.account.name }}')">
|
||||
<span class="hierarchy-line-icon"></span>{{ account.account.name }}</div>
|
||||
<div class="dotted-line flex-grow-1"></div>
|
||||
<div class="">
|
||||
<c-amount.display
|
||||
:amount="account.total_final"
|
||||
:prefix="account.currency.prefix"
|
||||
:suffix="account.currency.suffix"
|
||||
:decimal_places="account.currency.decimal_places"
|
||||
color="{% if account.total_final > 0 %}green{% elif account.total_final < 0 %}red{% endif %}"></c-amount.display>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if account.exchanged and account.exchanged.total_final %}
|
||||
<c-amount.display
|
||||
:amount="account.exchanged.total_final"
|
||||
:prefix="account.exchanged.currency.prefix"
|
||||
:suffix="account.exchanged.currency.suffix"
|
||||
:decimal_places="account.exchanged.currency.decimal_places"
|
||||
color="grey"
|
||||
text-end></c-amount.display>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</c-ui.info-card>
|
||||
{% if account.exchanged and account.exchanged.total_final %}
|
||||
<c-amount.display
|
||||
:amount="account.exchanged.total_final"
|
||||
:prefix="account.exchanged.currency.prefix"
|
||||
:suffix="account.exchanged.currency.suffix"
|
||||
:decimal_places="account.exchanged.currency.decimal_places"
|
||||
color="grey"
|
||||
text-end></c-amount.display>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% for account in data.list %}
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<div class="d-flex align-items-baseline w-100">
|
||||
<div class="account-name text-start font-monospace tw:text-gray-300 tw:cursor-pointer"
|
||||
_="on click showOnlyAccountDataset('{{ account.account.name }}')">
|
||||
{{ account.account.name }}
|
||||
</div>
|
||||
<div class="dotted-line flex-grow-1"></div>
|
||||
<div>
|
||||
<c-amount.display
|
||||
:amount="account.total_final"
|
||||
:prefix="account.currency.prefix"
|
||||
:suffix="account.currency.suffix"
|
||||
:decimal_places="account.currency.decimal_places"
|
||||
color="{% if account.total_final > 0 %}green{% elif account.total_final < 0 %}red{% endif %}"></c-amount.display>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if account.exchanged and account.exchanged.total_final %}
|
||||
<c-amount.display
|
||||
:amount="account.exchanged.total_final"
|
||||
:prefix="account.exchanged.currency.prefix"
|
||||
:suffix="account.exchanged.currency.suffix"
|
||||
:decimal_places="account.exchanged.currency.decimal_places"
|
||||
color="grey"
|
||||
text-end></c-amount.display>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</c-ui.info-card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-xl-7">
|
||||
<div class="chart-container position-relative tw:min-h-[40vh] tw:h-full">
|
||||
<canvas id="accountBalanceChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-xl-7">
|
||||
<div class="chart-container position-relative tw:min-h-[40vh] tw:h-full">
|
||||
<canvas id="accountBalanceChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var currencyChart;
|
||||
|
||||
function initializeCurrencyChart() {
|
||||
// Destroy existing chart if it exists
|
||||
if (currencyChart) {
|
||||
currencyChart.destroy();
|
||||
}
|
||||
|
||||
var chartData = JSON.parse('{{ chart_data_currency_json|safe }}');
|
||||
var currencies = {{ currencies|safe }};
|
||||
var ctx = document.getElementById('currencyBalanceChart').getContext('2d');
|
||||
|
||||
currencyChart = new Chart(ctx, {
|
||||
type: 'line',
|
||||
data: chartData,
|
||||
options: {
|
||||
maintainAspectRatio: false,
|
||||
responsive: true,
|
||||
interaction: {
|
||||
mode: 'index',
|
||||
intersect: false,
|
||||
},
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: '{% translate 'Evolution by currency' %}'
|
||||
},
|
||||
tooltip: {
|
||||
mode: 'index',
|
||||
intersect: false
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
display: true,
|
||||
title: {
|
||||
display: false,
|
||||
}
|
||||
},
|
||||
...Object.fromEntries(currencies.map((currency, i) => [
|
||||
`y${i}`,
|
||||
{
|
||||
type: 'linear',
|
||||
display: true,
|
||||
grid: {
|
||||
drawOnChartArea: i === 0,
|
||||
},
|
||||
ticks: {
|
||||
display: false,
|
||||
format: {maximumFractionDigits: 40, minimumFractionDigits: 0}
|
||||
},
|
||||
border: {
|
||||
display: false
|
||||
}
|
||||
}
|
||||
]))
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script id="accountBalanceChartScript">
|
||||
var accountChart;
|
||||
|
||||
function initializeAccountChart() {
|
||||
// Destroy existing chart if it exists
|
||||
if (accountChart) {
|
||||
accountChart.destroy();
|
||||
}
|
||||
|
||||
var chartData = JSON.parse('{{ chart_data_accounts_json|safe }}');
|
||||
var accounts = {{ accounts|safe }};
|
||||
var ctx = document.getElementById('accountBalanceChart').getContext('2d');
|
||||
|
||||
accountChart = new Chart(ctx, {
|
||||
type: 'line',
|
||||
data: chartData,
|
||||
options: {
|
||||
maintainAspectRatio: false,
|
||||
responsive: true,
|
||||
interaction: {
|
||||
mode: 'index',
|
||||
intersect: false,
|
||||
},
|
||||
stacked: false,
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: '{% translate "Evolution by account" %}'
|
||||
},
|
||||
tooltip: {
|
||||
mode: 'index',
|
||||
intersect: false
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
display: true,
|
||||
title: {
|
||||
display: false,
|
||||
}
|
||||
},
|
||||
...Object.fromEntries(accounts.map((account, i) => [
|
||||
`y-axis-${i}`,
|
||||
{
|
||||
type: 'linear',
|
||||
display: true,
|
||||
position: i % 2 === 0 ? 'left' : 'right',
|
||||
grid: {
|
||||
drawOnChartArea: i === 0,
|
||||
},
|
||||
ticks: {
|
||||
display: false,
|
||||
format: {maximumFractionDigits: 40, minimumFractionDigits: 0}
|
||||
},
|
||||
border: {
|
||||
display: false
|
||||
}
|
||||
}
|
||||
]))
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script id="monthlyDifferenceChartScript">
|
||||
var monthlyDifferenceChart;
|
||||
|
||||
function initializeMonthlyDifferenceChart() {
|
||||
if (monthlyDifferenceChart) {
|
||||
monthlyDifferenceChart.destroy();
|
||||
}
|
||||
|
||||
var chartData = JSON.parse('{{ chart_data_monthly_difference_json|safe }}');
|
||||
var ctx = document.getElementById('monthlyDifferenceChart').getContext('2d');
|
||||
|
||||
monthlyDifferenceChart = new Chart(ctx, {
|
||||
type: 'bar',
|
||||
data: chartData,
|
||||
options: {
|
||||
maintainAspectRatio: false,
|
||||
responsive: true,
|
||||
interaction: {
|
||||
mode: 'index',
|
||||
intersect: false,
|
||||
},
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: '{% translate "Difference" %}'
|
||||
},
|
||||
tooltip: {
|
||||
mode: 'index',
|
||||
intersect: false
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
stacked: true,
|
||||
},
|
||||
y: {
|
||||
stacked: true,
|
||||
ticks: {
|
||||
display: false,
|
||||
format: {maximumFractionDigits: 40, minimumFractionDigits: 0}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="text/hyperscript">
|
||||
def showOnlyAccountDataset(datasetName)
|
||||
for dataset in accountChart.data.datasets
|
||||
set isMatch to dataset.label is datasetName
|
||||
call accountChart.setDatasetVisibility(accountChart.data.datasets.indexOf(dataset), isMatch)
|
||||
end
|
||||
call accountChart.update()
|
||||
end
|
||||
|
||||
def showOnlyCurrencyDataset(datasetName)
|
||||
for dataset in currencyChart.data.datasets
|
||||
set isMatch to dataset.label is datasetName
|
||||
call currencyChart.setDatasetVisibility(currencyChart.data.datasets.indexOf(dataset), isMatch)
|
||||
end
|
||||
call currencyChart.update()
|
||||
|
||||
for dataset in monthlyDifferenceChart.data.datasets
|
||||
set isMatch to dataset.label is datasetName
|
||||
call monthlyDifferenceChart.setDatasetVisibility(monthlyDifferenceChart.data.datasets.indexOf(dataset), isMatch)
|
||||
end
|
||||
call monthlyDifferenceChart.update()
|
||||
end
|
||||
|
||||
def showAllDatasetsAccount()
|
||||
for dataset in accountChart.data.datasets
|
||||
call accountChart.setDatasetVisibility(accountChart.data.datasets.indexOf(dataset), true)
|
||||
end
|
||||
call accountChart.update()
|
||||
end
|
||||
|
||||
def showAllDatasetsCurrency()
|
||||
for dataset in currencyChart.data.datasets
|
||||
call currencyChart.setDatasetVisibility(currencyChart.data.datasets.indexOf(dataset), true)
|
||||
end
|
||||
call currencyChart.update()
|
||||
|
||||
for dataset in monthlyDifferenceChart.data.datasets
|
||||
call monthlyDifferenceChart.setDatasetVisibility(monthlyDifferenceChart.data.datasets.indexOf(dataset), true)
|
||||
end
|
||||
call monthlyDifferenceChart.update()
|
||||
end
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var currencyChart;
|
||||
|
||||
function initializeCurrencyChart() {
|
||||
// Destroy existing chart if it exists
|
||||
if (currencyChart) {
|
||||
currencyChart.destroy();
|
||||
}
|
||||
|
||||
var chartData = JSON.parse('{{ chart_data_currency_json|safe }}');
|
||||
var currencies = {{ currencies|safe }};
|
||||
var ctx = document.getElementById('currencyBalanceChart').getContext('2d');
|
||||
|
||||
currencyChart = new Chart(ctx, {
|
||||
type: 'line',
|
||||
data: chartData,
|
||||
options: {
|
||||
maintainAspectRatio: false,
|
||||
responsive: true,
|
||||
interaction: {
|
||||
mode: 'index',
|
||||
intersect: false,
|
||||
},
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: '{% translate 'Evolution by currency' %}'
|
||||
},
|
||||
tooltip: {
|
||||
mode: 'index',
|
||||
intersect: false
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
display: true,
|
||||
title: {
|
||||
display: false,
|
||||
}
|
||||
},
|
||||
...Object.fromEntries(currencies.map((currency, i) => [
|
||||
`y${i}`,
|
||||
{
|
||||
type: 'linear',
|
||||
display: true,
|
||||
grid: {
|
||||
drawOnChartArea: i === 0,
|
||||
},
|
||||
ticks: {
|
||||
display: false,
|
||||
format: {maximumFractionDigits: 40, minimumFractionDigits: 0}
|
||||
},
|
||||
border: {
|
||||
display: false
|
||||
}
|
||||
}
|
||||
]))
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script id="accountBalanceChartScript">
|
||||
var accountChart;
|
||||
|
||||
function initializeAccountChart() {
|
||||
// Destroy existing chart if it exists
|
||||
if (accountChart) {
|
||||
accountChart.destroy();
|
||||
}
|
||||
|
||||
var chartData = JSON.parse('{{ chart_data_accounts_json|safe }}');
|
||||
var accounts = {{ accounts|safe }};
|
||||
var ctx = document.getElementById('accountBalanceChart').getContext('2d');
|
||||
|
||||
accountChart = new Chart(ctx, {
|
||||
type: 'line',
|
||||
data: chartData,
|
||||
options: {
|
||||
maintainAspectRatio: false,
|
||||
responsive: true,
|
||||
interaction: {
|
||||
mode: 'index',
|
||||
intersect: false,
|
||||
},
|
||||
stacked: false,
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: '{% translate "Evolution by account" %}'
|
||||
},
|
||||
tooltip: {
|
||||
mode: 'index',
|
||||
intersect: false
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
display: true,
|
||||
title: {
|
||||
display: false,
|
||||
}
|
||||
},
|
||||
...Object.fromEntries(accounts.map((account, i) => [
|
||||
`y-axis-${i}`,
|
||||
{
|
||||
type: 'linear',
|
||||
display: true,
|
||||
position: i % 2 === 0 ? 'left' : 'right',
|
||||
grid: {
|
||||
drawOnChartArea: i === 0,
|
||||
},
|
||||
ticks: {
|
||||
display: false,
|
||||
format: {maximumFractionDigits: 40, minimumFractionDigits: 0}
|
||||
},
|
||||
border: {
|
||||
display: false
|
||||
}
|
||||
}
|
||||
]))
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="text/hyperscript">
|
||||
def showOnlyAccountDataset(datasetName)
|
||||
for dataset in accountChart.data.datasets
|
||||
set isMatch to dataset.label is datasetName
|
||||
call accountChart.setDatasetVisibility(accountChart.data.datasets.indexOf(dataset), isMatch)
|
||||
end
|
||||
call accountChart.update()
|
||||
end
|
||||
|
||||
def showOnlyCurrencyDataset(datasetName)
|
||||
for dataset in currencyChart.data.datasets
|
||||
set isMatch to dataset.label is datasetName
|
||||
call currencyChart.setDatasetVisibility(currencyChart.data.datasets.indexOf(dataset), isMatch)
|
||||
end
|
||||
call currencyChart.update()
|
||||
end
|
||||
|
||||
def showAllDatasetsAccount()
|
||||
for dataset in accountChart.data.datasets
|
||||
call accountChart.setDatasetVisibility(accountChart.data.datasets.indexOf(dataset), true)
|
||||
end
|
||||
call accountChart.update()
|
||||
end
|
||||
|
||||
def showAllDatasetsCurrency()
|
||||
for dataset in currencyChart.data.datasets
|
||||
call currencyChart.setDatasetVisibility(currencyChart.data.datasets.indexOf(dataset), true)
|
||||
end
|
||||
call currencyChart.update()
|
||||
end
|
||||
</script>
|
||||
</div>
|
||||
<c-ui.transactions_fab></c-ui.transactions_fab>
|
||||
<c-ui.transactions_fab></c-ui.transactions_fab>
|
||||
{% endblock %}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
{% block content %}
|
||||
<div>
|
||||
<div class="container">
|
||||
<div class="row vh-100 d-flex justify-content-center align-items-center">
|
||||
<div class="row tw:h-dvh d-flex justify-content-center align-items-center">
|
||||
<div class="col-md-6 col-xl-4 col-12">
|
||||
{% settings "DEMO" as demo_mode %}
|
||||
{% if demo_mode %}
|
||||
|
||||
Reference in New Issue
Block a user