From 7a19fc53b09e61eb4b26301506ff446356178cab Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Tue, 24 Dec 2024 13:30:43 +0100
Subject: [PATCH 1/6] Feature/improve activities import by isin for yahoo
finance (#4140)
* Allow activities import by isin even if multiple quotes found
* Update changelog
---
CHANGELOG.md | 6 ++++++
.../data-enhancer/yahoo-finance/yahoo-finance.service.ts | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 74a108262..13862f5cd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## Unreleased
+
+### Changed
+
+- Improved support to import activities by `isin` in the _Yahoo Finance_ service
+
## 2.130.0 - 2024-12-21
### Added
diff --git a/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts b/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts
index 6090b4f98..b71e3e316 100644
--- a/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts
+++ b/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts
@@ -166,7 +166,7 @@ export class YahooFinanceDataEnhancerService implements DataEnhancerInterface {
try {
const { quotes } = await yahooFinance.search(symbol);
- if (quotes.length === 1) {
+ if (quotes?.[0]?.symbol) {
symbol = quotes[0].symbol;
}
} catch {}
From 08a9202dea610f7ec5e3f198f2b765692088316a Mon Sep 17 00:00:00 2001
From: Akd11111 <70412728+Akd11111@users.noreply.github.com>
Date: Tue, 24 Dec 2024 13:55:59 +0100
Subject: [PATCH 2/6] Feature/improve language localization for Polish (#4141)
* Improve language localization for Polish
* Update changelog
---
CHANGELOG.md | 1 +
apps/client/src/locales/messages.pl.xlf | 226 ++++++++++++------------
2 files changed, 114 insertions(+), 113 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 13862f5cd..8c63b47cd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Improved support to import activities by `isin` in the _Yahoo Finance_ service
+- Improved the language localization for Polish (`pl`)
## 2.130.0 - 2024-12-21
diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf
index 8eaef221c..223c8a57f 100644
--- a/apps/client/src/locales/messages.pl.xlf
+++ b/apps/client/src/locales/messages.pl.xlf
@@ -2740,7 +2740,7 @@
Please set the amount of your emergency fund.
- Proszę wprowadzić wysokość funduszu rezerwowego:
+ Wprowadź wysokość funduszu rezerwowego:
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
63
@@ -2836,7 +2836,7 @@
Portfolio Allocations
- Alokacja portfela
+ Podział portfela
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
28
@@ -4356,7 +4356,7 @@
Import Dividends
- Import Dividends
+ Impotruj Dywidendy
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
86
@@ -4364,7 +4364,7 @@
Importing data...
- Importing data...
+ Importowanie danych...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
124
@@ -4372,7 +4372,7 @@
Import has been completed
- Import has been completed
+ Importowanie zakończone
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
132
@@ -4380,7 +4380,7 @@
Validating data...
- Validating data...
+ Weryfikacja danych...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
238
@@ -4388,7 +4388,7 @@
Select Holding
- Select Holding
+ Wybierz Inwestycje
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
20
@@ -4396,7 +4396,7 @@
Select File
- Select File
+ Wybierz plik
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
22
@@ -4404,7 +4404,7 @@
Holding
- Holding
+ Inwestycja
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
32
@@ -4416,7 +4416,7 @@
Load Dividends
- Load Dividends
+ Załaduj dywidendy
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
68
@@ -4424,7 +4424,7 @@
Choose or drop a file here
- Choose or drop a file here
+ Wybierz lub przeciągnij plik tutaj
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
84
@@ -4432,7 +4432,7 @@
The following file formats are supported:
- The following file formats are supported:
+ Obsługiwane są następujące formaty plików:
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
90
@@ -4440,7 +4440,7 @@
Select Dividends
- Select Dividends
+ Wybierz dywidendy
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
113
@@ -4448,7 +4448,7 @@
Select Activities
- Select Activities
+ Wybór działań
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
115
@@ -4456,7 +4456,7 @@
Back
- Back
+ Wróc
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
144
@@ -4468,7 +4468,7 @@
Allocations
- Allocations
+ Podziały
apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts
13
@@ -4480,7 +4480,7 @@
Allocations
- Allocations
+ Podziały
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
4
@@ -4488,7 +4488,7 @@
Proportion of Net Worth
- Proportion of Net Worth
+ Proporcja wartości netto
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
12
@@ -4496,7 +4496,7 @@
By Platform
- By Platform
+ Wg. platformy
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
44
@@ -4504,7 +4504,7 @@
By Currency
- By Currency
+ Wg. waluty
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
63
@@ -4512,7 +4512,7 @@
By Asset Class
- By Asset Class
+ Wg. klasy aktywów
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
85
@@ -4520,7 +4520,7 @@
By Holding
- By Holding
+ Wg. inwestycji
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
107
@@ -4528,7 +4528,7 @@
By Sector
- By Sector
+ Wg. sektora
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
130
@@ -4536,7 +4536,7 @@
By Continent
- By Continent
+ Wg. kontynentu
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
153
@@ -4544,7 +4544,7 @@
By Market
- By Market
+ Wg. rynku
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
175
@@ -4552,7 +4552,7 @@
Regions
- Regions
+ Regiony
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
198
@@ -4620,7 +4620,7 @@
By Account
- By Account
+ Wg. kont
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
286
@@ -4628,7 +4628,7 @@
By ETF Provider
- By ETF Provider
+ Wg. Dostawcy ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
306
@@ -4636,7 +4636,7 @@
By Country
- By Country
+ Wg. kraju
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
264
@@ -4644,7 +4644,7 @@
Analysis
- Analysis
+ Analiza
apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts
13
@@ -4656,7 +4656,7 @@
Dividend
- Dividend
+ Dywidenda
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
37
@@ -4668,7 +4668,7 @@
Deposit
- Deposit
+ Depozyt
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
361
@@ -4684,7 +4684,7 @@
Yearly
- Corocznie
+ Rocznie
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
50
@@ -4700,7 +4700,7 @@
Top
- Top
+ Największe wzrosty
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
165
@@ -4708,7 +4708,7 @@
Bottom
- Bottom
+ Największy spadek
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
214
@@ -4716,7 +4716,7 @@
Portfolio Evolution
- Portfolio Evolution
+ Rozwój portfela
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
267
@@ -4724,7 +4724,7 @@
Investment Timeline
- Investment Timeline
+ Oś czasu inwestycji
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
294
@@ -4732,7 +4732,7 @@
Current Streak
- Current Streak
+ Obecna passa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
315
@@ -4740,7 +4740,7 @@
Longest Streak
- Longest Streak
+ Najdłuższa passa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
324
@@ -4748,7 +4748,7 @@
Dividend Timeline
- Dividend Timeline
+ Oś czasu dywidend
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
351
@@ -4756,7 +4756,7 @@
FIRE
- FIRE
+ F.I.R.E.
apps/client/src/app/pages/portfolio/fire/fire-page.html
4
@@ -4780,7 +4780,7 @@
Currency Cluster Risks
- Currency Cluster Risks
+ Ryzyko związane z klastrem walutowym
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
58
@@ -4788,7 +4788,7 @@
Account Cluster Risks
- Account Cluster Risks
+ Ryzyko związane z klastrem kont
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
106
@@ -4796,7 +4796,7 @@
Holdings
- Holdings
+ Inwestycje
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
79
@@ -4888,7 +4888,7 @@
Portfolio Performance
- Efektywność Portfela
+ Wyniki portfela
apps/client/src/app/pages/pricing/pricing-page.html
53
@@ -5008,7 +5008,7 @@
Get Started
- Get Started
+ Rozpocznij
apps/client/src/app/pages/landing/landing-page.html
446
@@ -5016,7 +5016,7 @@
It’s free.
- It’s free.
+ Jest bezpłatny.
apps/client/src/app/pages/pricing/pricing-page.html
327
@@ -5024,7 +5024,7 @@
Hello, has shared a Portfolio with you!
- Hello, has shared a Portfolio with you!
+ Witaj, udostępnił Ci Portfel
apps/client/src/app/pages/public/public-page.html
4
@@ -5032,7 +5032,7 @@
Currencies
- Currencies
+ Waluty
apps/client/src/app/pages/public/public-page.html
88
@@ -5040,7 +5040,7 @@
Continents
- Continents
+ Kontynenty
apps/client/src/app/pages/public/public-page.html
124
@@ -5048,7 +5048,7 @@
Ghostfolio empowers you to keep track of your wealth.
- Ghostfolio empowers you to keep track of your wealth.
+ Ghostfolio umożliwia śledzenie wartości swojego majątku.
apps/client/src/app/pages/public/public-page.html
215
@@ -5056,7 +5056,7 @@
Registration
- Registration
+ Rejestracja
apps/client/src/app/pages/register/register-page-routing.module.ts
13
@@ -5064,7 +5064,7 @@
Continue with Internet Identity
- Continue with Internet Identity
+ Kontynuuj z tożsamością internetową
apps/client/src/app/pages/register/register-page.html
42
@@ -5072,7 +5072,7 @@
Continue with Google
- Continue with Google
+ Zaloguj z Google
apps/client/src/app/pages/register/register-page.html
53
@@ -5080,7 +5080,7 @@
Copy to clipboard
- Copy to clipboard
+ Kopiuj do schowka
apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html
26
@@ -5088,7 +5088,7 @@
I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back.
- I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back.
+ Wyrażam zgodę na przechowywanie mojego Tokenu zabezpieczającego w bezpiecznym miejscu. Jego utrata nie pozwoli odzyskać konta!
apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html
32
@@ -5096,7 +5096,7 @@
Agree and continue
- Agree and continue
+ Zgadzam się i kontynuuję
apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html
45
@@ -5104,7 +5104,7 @@
Personal Finance Tools
- Personal Finance Tools
+ Narzędzia finansów osobistych
apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts
14
@@ -5324,7 +5324,7 @@
Free Plan
- Darmowy Plan
+ Plan Darmowy
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
248
@@ -5332,7 +5332,7 @@
Notes
- Notes
+ Notatki
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
302
@@ -5584,7 +5584,7 @@
Asset Profiles
- Asset Profiles
+ Profile aktywów
libs/ui/src/lib/assistant/assistant.html
67
@@ -5616,7 +5616,7 @@
from ATH
- from ATH
+ od ATH
libs/ui/src/lib/benchmark/benchmark.component.html
83
@@ -5632,7 +5632,7 @@
Savings Rate per Month
- Savings Rate per Month
+ Miesięczna stopa oszczędności
libs/ui/src/lib/fire-calculator/fire-calculator.component.html
10
@@ -5648,7 +5648,7 @@
Retirement Date
- Retirement Date
+ Data przejścia na emeryturę
libs/ui/src/lib/fire-calculator/fire-calculator.component.html
32
@@ -5684,7 +5684,7 @@
Allocation
- Allocation
+ Podział
libs/ui/src/lib/holdings-table/holdings-table.component.html
98
@@ -5740,7 +5740,7 @@
Core
- Core
+ Główny
libs/ui/src/lib/i18n.ts
10
@@ -5820,7 +5820,7 @@
Month
- Month
+ Miesiąc
libs/ui/src/lib/i18n.ts
21
@@ -5828,7 +5828,7 @@
Months
- Months
+ Miesiące
libs/ui/src/lib/i18n.ts
22
@@ -5836,7 +5836,7 @@
Other
- Other
+ Inne
libs/ui/src/lib/i18n.ts
23
@@ -5872,7 +5872,7 @@
Symbol
- Symbol
+ Symbol
libs/ui/src/lib/i18n.ts
28
@@ -5880,7 +5880,7 @@
Tag
- Tag
+ Tag
libs/ui/src/lib/i18n.ts
29
@@ -5888,7 +5888,7 @@
Year
- Year
+ Rok
libs/ui/src/lib/i18n.ts
30
@@ -5896,7 +5896,7 @@
Years
- Years
+ Lata
libs/ui/src/lib/i18n.ts
31
@@ -5920,7 +5920,7 @@
Valuable
- Valuable
+ Kosztowności
libs/ui/src/lib/i18n.ts
39
@@ -5928,7 +5928,7 @@
Liability
- Liability
+ Zobowiązanie
libs/ui/src/lib/i18n.ts
40
@@ -5936,7 +5936,7 @@
Sell
- Sell
+ Sprzedaj
libs/ui/src/lib/i18n.ts
41
@@ -6032,7 +6032,7 @@
Stock
- Stock
+ Akcje
libs/ui/src/lib/i18n.ts
58
@@ -6176,7 +6176,7 @@
Starting from
- Starting from
+ Począwszy od
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
289
@@ -6188,7 +6188,7 @@
year
- year
+ rok
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
290
@@ -6280,7 +6280,7 @@
Private
- Private
+ Prywatny
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
24
@@ -6308,7 +6308,7 @@
Investment
- Investment
+ Inwestycje
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
41
@@ -6324,7 +6324,7 @@
Absolute Asset Performance
- Absolute Asset Performance
+ Łączny wynik aktywów
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
28
@@ -6332,7 +6332,7 @@
Asset Performance
- Asset Performance
+ Wyniki aktywów
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
49
@@ -6340,7 +6340,7 @@
Absolute Currency Performance
- Absolute Currency Performance
+ Łączny wynik walut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
71
@@ -6348,7 +6348,7 @@
Currency Performance
- Currency Performance
+ Wynik walut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
95
@@ -6356,7 +6356,7 @@
Absolute Net Performance
- Absolute Net Performance
+ Łączna wartość netto
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
118
@@ -6364,7 +6364,7 @@
Net Performance
- Net Performance
+ Wynik netto
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
137
@@ -6372,7 +6372,7 @@
Week to date
- Week to date
+ Dotychczasowy tydzień
libs/ui/src/lib/assistant/assistant.component.ts
223
@@ -6388,7 +6388,7 @@
Month to date
- Month to date
+ Od początku miesiąca
libs/ui/src/lib/assistant/assistant.component.ts
227
@@ -6404,7 +6404,7 @@
Year to date
- Year to date
+ Od początku roku
libs/ui/src/lib/assistant/assistant.component.ts
231
@@ -6448,7 +6448,7 @@
year
- year
+ rok
libs/ui/src/lib/assistant/assistant.component.ts
235
@@ -6456,7 +6456,7 @@
years
- years
+ lata
libs/ui/src/lib/assistant/assistant.component.ts
257
@@ -6548,7 +6548,7 @@
Active
- Active
+ Antywne
apps/client/src/app/components/home-holdings/home-holdings.component.ts
35
@@ -6556,7 +6556,7 @@
Closed
- Closed
+ Zamknięte
apps/client/src/app/components/home-holdings/home-holdings.component.ts
36
@@ -6564,7 +6564,7 @@
Activity
- Activity
+ Aktywność
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
207
@@ -6628,7 +6628,7 @@
Delete Activities
- Delete Activities
+ Usuń aktywności
libs/ui/src/lib/activities-table/activities-table.component.html
67
@@ -6668,7 +6668,7 @@
By ETF Holding
- By ETF Holding
+ Wg. Holdingu ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
333
@@ -7084,7 +7084,7 @@
Portfolio Snapshot
- Portfolio Snapshot
+ Przegląd portfela
apps/client/src/app/components/admin-jobs/admin-jobs.html
39
@@ -7108,7 +7108,7 @@
Threshold Min
- Threshold Min
+ Próg minimalny
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
54
@@ -7116,7 +7116,7 @@
Threshold Max
- Threshold Max
+ Próg maksymalny
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
92
@@ -7438,7 +7438,7 @@
Threshold range
- Threshold range
+ Zakres progów
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
9
@@ -7446,7 +7446,7 @@
Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy.
- Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy.
+ Ghostfolio X-ray wykorzystuje analizę statyczną do wykrywania potencjalnych problemów i zagrożeń w portfelu. Dostosuj poniższe zasady i ustaw niestandardowe progi, aby dostosować je do osobistej strategii inwestycyjnej.
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
5
@@ -7454,7 +7454,7 @@
Economic Market Cluster Risks
- Economic Market Cluster Risks
+ Ryzyko związane z klastrem rynków gospodarczych
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
130
@@ -7462,7 +7462,7 @@
of
- of
+ z
apps/client/src/app/components/admin-settings/admin-settings.component.html
40
@@ -7470,7 +7470,7 @@
daily requests
- daily requests
+ codzienne żądania
apps/client/src/app/components/admin-settings/admin-settings.component.html
42
@@ -7546,7 +7546,7 @@
Ghostfolio Premium Data Provider API Key
- Ghostfolio Premium Data Provider API Key
+ Klucz API dostawcy danych Premium Ghostfolio
apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
156
@@ -7562,7 +7562,7 @@
Tag
- Tag
+ Tag
libs/ui/src/lib/assistant/assistant.html
155
@@ -7570,7 +7570,7 @@
API Key
- API Key
+ Klucz API
libs/ui/src/lib/membership-card/membership-card.component.html
18
@@ -7578,7 +7578,7 @@
Generate Ghostfolio Premium Data Provider API key for self-hosted environments...
- Generate Ghostfolio Premium Data Provider API key for self-hosted environments...
+ Generowanie klucza API Ghostfolio Premium Data Provider dla środowisk hostowanych samodzielnie...
libs/ui/src/lib/membership-card/membership-card.component.html
26
@@ -7586,7 +7586,7 @@
out of
- out of
+ poza
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
22
@@ -7594,7 +7594,7 @@
rules align with your portfolio.
- rules align with your portfolio.
+ zasady zgodne z Twoim portfelem.
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
24
@@ -7602,7 +7602,7 @@
Save
- Save
+ Zapisz
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
61
@@ -7610,7 +7610,7 @@
Asset Class Cluster Risks
- Asset Class Cluster Risks
+ Ryzyko klastra klasy aktywów
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
82
From bb04a3a74f53b98cc2506eac5771e72bb175fc7d Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Wed, 25 Dec 2024 09:50:09 +0100
Subject: [PATCH 3/6] Feature/extend personal finance tools 20241222 (#4136)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Morningstar® Portfolio Manager
* Stock Rover
* Wealthbrain
---
libs/common/src/lib/personal-finance-tools.ts | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts
index 1ec5fbbc2..63d5805cd 100644
--- a/libs/common/src/lib/personal-finance-tools.ts
+++ b/libs/common/src/lib/personal-finance-tools.ts
@@ -449,6 +449,16 @@ export const personalFinanceTools: Product[] = [
pricingPerYear: '$60',
slogan: 'Gain financial control and keep your data private.'
},
+ {
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'morningstar-portfolio-manager',
+ languages: ['English'],
+ name: 'Morningstar® Portfolio Manager',
+ origin: 'United States',
+ slogan:
+ 'Track your equity, fund, investment trust, ETF and pension investments in one place.'
+ },
{
founded: 2017,
hasFreePlan: false,
@@ -647,6 +657,16 @@ export const personalFinanceTools: Product[] = [
note: 'StockMarketEye was discontinued in 2023',
slogan: 'A Powerful Portfolio & Investment Tracking App'
},
+ {
+ founded: 2011,
+ hasFreePlan: true,
+ key: 'stock-rover',
+ languages: ['English'],
+ name: 'Stock Rover',
+ origin: 'United States',
+ pricingPerYear: '$79.99',
+ slogan: 'Investment Research and Portfolio Management'
+ },
{
hasFreePlan: true,
hasSelfHostingAbility: false,
@@ -705,6 +725,15 @@ export const personalFinanceTools: Product[] = [
pricingPerYear: '$600',
slogan: 'Make Smarter Investments'
},
+ {
+ founded: 2019,
+ hasFreePlan: false,
+ key: 'wealthbrain',
+ languages: ['English'],
+ name: 'Wealthbrain',
+ origin: 'United Arab Emirates',
+ slogan: 'Portfolio Management System'
+ },
{
founded: 2024,
hasSelfHostingAbility: true,
From 9a579dd884ebaf623e0341c53bd9fd0d2de364f5 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Wed, 25 Dec 2024 09:50:27 +0100
Subject: [PATCH 4/6] Feature/change access tab icon on account page (#4137)
* Change icon
* Update changelog
---
CHANGELOG.md | 1 +
.../src/app/pages/user-account/user-account-page.component.ts | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c63b47cd..696e26d62 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Improved the usability of the link to manage access with a new icon
- Improved support to import activities by `isin` in the _Yahoo Finance_ service
- Improved the language localization for Polish (`pl`)
diff --git a/apps/client/src/app/pages/user-account/user-account-page.component.ts b/apps/client/src/app/pages/user-account/user-account-page.component.ts
index f8d68baa6..fb42e196d 100644
--- a/apps/client/src/app/pages/user-account/user-account-page.component.ts
+++ b/apps/client/src/app/pages/user-account/user-account-page.component.ts
@@ -42,7 +42,7 @@ export class UserAccountPageComponent implements OnDestroy, OnInit {
showCondition: !!this.user?.subscription
},
{
- iconName: 'share-social-outline',
+ iconName: 'key-outline',
label: $localize`Access`,
path: ['/account', 'access']
}
From f2638614d4b68530950d4e3c9a65a36121c3ebe4 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Wed, 25 Dec 2024 17:05:57 +0100
Subject: [PATCH 5/6] Feature/improve search for asset profiles with manual
data source in create or update activity dialog (#4142)
* Improve search for asset profiles with MANUAL data source
* Update changelog
---
CHANGELOG.md | 1 +
.../data-provider/data-provider.service.ts | 3 +-
.../interfaces/data-provider.interface.ts | 1 +
.../data-provider/manual/manual.service.ts | 46 +++++++++++--------
...ate-or-update-activity-dialog.component.ts | 7 +--
5 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 696e26d62..bd21f635a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Improved the search for asset profiles with `MANUAL` data source in the create or update activity dialog
- Improved the usability of the link to manage access with a new icon
- Improved support to import activities by `isin` in the _Yahoo Finance_ service
- Improved the language localization for Polish (`pl`)
diff --git a/apps/api/src/services/data-provider/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts
index 3faf5b583..7c0df7a9f 100644
--- a/apps/api/src/services/data-provider/data-provider.service.ts
+++ b/apps/api/src/services/data-provider/data-provider.service.ts
@@ -618,7 +618,8 @@ export class DataProviderService {
promises.push(
dataProviderService.search({
includeIndices,
- query
+ query,
+ userId: user.id
})
);
}
diff --git a/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts b/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts
index e448b4e15..5c316aac2 100644
--- a/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts
+++ b/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts
@@ -79,4 +79,5 @@ export interface GetQuotesParams {
export interface GetSearchParams {
includeIndices?: boolean;
query: string;
+ userId?: string;
}
diff --git a/apps/api/src/services/data-provider/manual/manual.service.ts b/apps/api/src/services/data-provider/manual/manual.service.ts
index c3e274005..6f1c56f15 100644
--- a/apps/api/src/services/data-provider/manual/manual.service.ts
+++ b/apps/api/src/services/data-provider/manual/manual.service.ts
@@ -26,7 +26,6 @@ import {
import { Injectable, Logger } from '@nestjs/common';
import { DataSource, SymbolProfile } from '@prisma/client';
import * as cheerio from 'cheerio';
-import { isUUID } from 'class-validator';
import { addDays, format, isBefore } from 'date-fns';
import got, { Headers } from 'got';
import * as jsonpath from 'jsonpath';
@@ -219,41 +218,48 @@ export class ManualService implements DataProviderInterface {
return undefined;
}
- public async search({ query }: GetSearchParams): Promise {
- let items = await this.prismaService.symbolProfile.findMany({
+ public async search({
+ query,
+ userId
+ }: GetSearchParams): Promise {
+ const items = await this.prismaService.symbolProfile.findMany({
select: {
assetClass: true,
assetSubClass: true,
currency: true,
dataSource: true,
name: true,
- symbol: true
+ symbol: true,
+ userId: true
},
where: {
- OR: [
+ AND: [
{
- dataSource: this.getName(),
- name: {
- mode: 'insensitive',
- startsWith: query
- }
+ dataSource: this.getName()
},
{
- dataSource: this.getName(),
- symbol: {
- mode: 'insensitive',
- startsWith: query
- }
+ OR: [
+ {
+ name: {
+ mode: 'insensitive',
+ startsWith: query
+ }
+ },
+ {
+ symbol: {
+ mode: 'insensitive',
+ startsWith: query
+ }
+ }
+ ]
+ },
+ {
+ OR: [{ userId }, { userId: null }]
}
]
}
});
- items = items.filter(({ symbol }) => {
- // Remove UUID symbols (activities of type ITEM)
- return !isUUID(symbol);
- });
-
return {
items: items.map((item) => {
return { ...item, dataProviderInfo: this.getDataProviderInfo() };
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
index cb21c255d..feeb4abc8 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
@@ -20,7 +20,6 @@ import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { AssetClass, AssetSubClass, Tag, Type } from '@prisma/client';
-import { isUUID } from 'class-validator';
import { isAfter, isToday } from 'date-fns';
import { EMPTY, Observable, Subject, lastValueFrom, of } from 'rxjs';
import { catchError, delay, map, startWith, takeUntil } from 'rxjs/operators';
@@ -476,10 +475,8 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
fee: this.activityForm.get('fee').value,
quantity: this.activityForm.get('quantity').value,
symbol:
- this.activityForm.get('searchSymbol').value?.symbol === undefined ||
- isUUID(this.activityForm.get('searchSymbol').value?.symbol)
- ? this.activityForm.get('name').value
- : this.activityForm.get('searchSymbol').value.symbol,
+ this.activityForm.get('searchSymbol')?.value?.symbol ??
+ this.activityForm.get('name')?.value,
tags: this.activityForm.get('tags').value,
type: this.activityForm.get('type').value,
unitPrice: this.activityForm.get('unitPrice').value
From be4ac17a5cd86f944033c7485fc98a2a18e56f4c Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Wed, 25 Dec 2024 17:08:06 +0100
Subject: [PATCH 6/6] Release 2.131.0 (#4143)
---
CHANGELOG.md | 2 +-
package-lock.json | 4 ++--
package.json | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bd21f635a..beed10704 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## Unreleased
+## 2.131.0 - 2024-12-25
### Changed
diff --git a/package-lock.json b/package-lock.json
index d715ccc9a..7ad5c59c1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "ghostfolio",
- "version": "2.130.0",
+ "version": "2.131.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ghostfolio",
- "version": "2.130.0",
+ "version": "2.131.0",
"hasInstallScript": true,
"license": "AGPL-3.0",
"dependencies": {
diff --git a/package.json b/package.json
index 2eea5cc6a..84b49ca05 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ghostfolio",
- "version": "2.130.0",
+ "version": "2.131.0",
"homepage": "https://ghostfol.io",
"license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio",