eitchtee
2558d601dd
chore(locale): update translation files
...
[skip ci] Automatically generated by Django makemessages workflow
2026-10-24 16:57:23 +00:00
Herculino Trotta
d7537b54ad
Merge pull request #629 from eitchtee/fix/import-object-authorization
...
fix(import): enforce object-level authorization on import profiles and runs
0.24.0
2026-10-24 13:56:53 -03:00
Herculino Trotta
e46e9ad0cf
Merge pull request #628 from eitchtee/fix/oidc-tests-allauth-65-20
...
test(users): fix OIDC tests after allauth 65.20 bump
2026-10-24 13:56:26 -03:00
Herculino Trotta
4446db3249
test(users): stop using SocialLogin.state_from_request removed in allauth 65.20
...
django-allauth 65.20 removed SocialLogin.state_from_request, breaking the
OIDC email auto-connect tests after the bump in #627 .
2026-10-24 13:27:10 -03:00
Herculino Trotta
1e486a608e
fix(import): enforce object-level authorization on import profiles and runs
...
ImportProfile and ImportRun had no owner, and neither the web views nor the
REST viewsets filtered by the requesting user, so any authenticated user could
read, edit and delete every other user's import profiles and runs
(GHSA-q668-h56g-mfp4).
- ImportProfile is now a SharedObject, with share and take-ownership views
like transaction rules; the global unique constraint on name is dropped.
- ImportRun is now an OwnedObject owned by the uploader, so runs made with a
shared profile stay private to whoever ran them.
- Existing runs are backfilled with the owner of their imported
transactions; existing profiles stay unowned and usable by everyone.
2026-10-24 13:26:37 -03:00
Herculino Trotta
8888a850bd
Merge pull request #627 from eitchtee/fix/bump-allauth-oauthlib
...
build(deps): bump django-allauth to 65.20.1 to unblock oauthlib 4.0.0
2026-10-24 12:12:12 -03:00
Herculino Trotta
9941c8fb90
build(deps): bump django-allauth to 65.20.1 to allow oauthlib 4.0.0
...
django-allauth 65.18 pinned oauthlib<4, preventing Dependabot from
resolving GHSA-hj66-6f7g-4r5v and GHSA-xpv3-w29h-x7cv.
2026-10-24 12:09:19 -03:00
Herculino Trotta
39a67dfb4e
Merge pull request #626 from eitchtee/dependabot/npm_and_yarn/frontend/vite-8.3.5
...
build(deps): bump vite from 8.0.16 to 8.3.5 in /frontend
2026-10-24 12:00:43 -03:00
Herculino Trotta
1b4a2eb3d1
Merge pull request #625 from obervinov/fix/rules-set-mute-writes-to-mute
...
fix(rules): write set_mute action to mute instead of is_paid
2026-10-24 12:00:30 -03:00
Herculino Trotta
73e29e867f
Merge pull request #624 from obervinov/fix/bump-certifi-emudhra-distrust
...
build(deps): bump certifi to 2026.10.19 (GHSA-6q48-6c7w-9gw2, critical)
2026-10-24 11:59:39 -03:00
eitchtee
a6f56c4989
chore(locale): update translation files
...
[skip ci] Automatically generated by Django makemessages workflow
2026-10-24 14:59:16 +00:00
Herculino Trotta
601c641bb3
Merge pull request #623 from eitchtee/weblate
...
Translations update from Weblate
2026-10-24 11:58:49 -03:00
dependabot[bot]
0c9ccf797a
build(deps): bump vite from 8.0.16 to 8.3.5 in /frontend
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 8.0.16 to 8.3.5.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.3.5/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 8.3.5
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-21 17:56:02 +00:00
obervinov
aa95ade7ce
fix(rules): write set_mute action to mute instead of is_paid
2026-10-21 21:51:22 +04:00
obervinov
03a27002cc
build(deps): bump certifi from 2026.5.20 to 2026.10.19
2026-10-21 19:32:10 +04:00
Dimitri Decrock
565a770130
locale(Dutch): update translation
...
Currently translated at 100.0% (817 of 817 strings)
Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/nl/
2026-10-14 04:57:23 +00:00
Dimitri Decrock
a3d75de836
locale(Dutch): update translation
...
Currently translated at 97.3% (795 of 817 strings)
Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/nl/
2026-10-14 03:57:23 +00:00
eitchtee
8794aba1c5
chore(locale): update translation files
...
[skip ci] Automatically generated by Django makemessages workflow
2026-10-12 05:47:31 +00:00
Herculino Trotta
ab0c00f3e0
Merge pull request #621 from eitchtee/fix/convert-applies-form-amount
...
fix(transactions): apply the form amount when converting a paid transaction
2026-10-12 02:46:54 -03:00
Herculino Trotta
3261e5f266
fix(transactions): apply the form amount to a paid transaction converted into an installment plan
2026-10-12 02:41:14 -03:00
Herculino Trotta
35ef1dd716
fix(transactions): apply the form amount to a paid transaction converted into a recurring transaction
2026-10-12 02:41:14 -03:00
Herculino Trotta
8b896cf31f
Merge pull request #619 from eitchtee/weblate
...
Translations update from Weblate
2026-10-12 02:34:28 -03:00
Weblate
85426392f8
Merge remote-tracking branch 'origin/main'
2026-10-12 05:34:17 +00:00
Herculino Trotta
66e51bb0b4
Merge pull request #620 from eitchtee/fix/dropdown-submenu-hover-delay
...
Keep dropdown submenu open while moving the pointer into it
2026-10-12 02:34:14 -03:00
Herculino Trotta
dfb5cf37b4
fix(dropdown): keep submenu open while the pointer moves into it
...
Moving the pointer diagonally from a submenu trigger to its flyout crosses
the items below it, which closed the flyout before it could be reached.
Delay hiding the flyout by 300ms, and show it immediately on hover or focus.
2026-10-12 02:33:14 -03:00
Herculino Trotta
f52a0f8cd5
locale(Portuguese (Brazil)): update translation
...
Currently translated at 98.0% (801 of 817 strings)
Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pt_BR/
2026-10-10 21:57:23 +00:00
eitchtee
ac16359ff4
chore(locale): update translation files
...
[skip ci] Automatically generated by Django makemessages workflow
0.23.3
2026-10-10 21:20:53 +00:00
Herculino Trotta
ab7b0c7929
Merge pull request #618 from eitchtee/fix/simulator-amount-mask
...
fix(simulator): use money mask on amount field
2026-10-10 18:20:07 -03:00
Herculino Trotta
174d2eb340
fix(simulator): use money mask on amount field
...
Match the other amount fields by using the Alpine money mask, and parse the masked value with the user's separators.
2026-10-10 18:19:07 -03:00
Herculino Trotta
84416c64d8
Merge pull request #617 from eitchtee/dependabot/npm_and_yarn/frontend/source-map-js-1.2.2
...
build(deps): bump source-map-js from 1.2.1 to 1.2.2 in /frontend
2026-10-10 18:13:45 -03:00
dependabot[bot]
3a91772490
build(deps): bump source-map-js from 1.2.1 to 1.2.2 in /frontend
...
Bumps [source-map-js](https://github.com/7rulnik/source-map-js ) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/7rulnik/source-map-js/releases )
- [Changelog](https://github.com/7rulnik/source-map-js/blob/main/CHANGELOG.md )
- [Commits](https://github.com/7rulnik/source-map-js/compare/v1.2.1...v1.2.2 )
---
updated-dependencies:
- dependency-name: source-map-js
dependency-version: 1.2.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-10 21:10:30 +00:00
Herculino Trotta
98a1be04e7
Merge pull request #616 from eitchtee/chore/python-3.14
...
build: upgrade to Python 3.14
2026-10-10 18:08:25 -03:00
Herculino Trotta
f58c341a84
ci: use python 3.14 in translations workflow
2026-10-10 18:05:25 -03:00
Herculino Trotta
1b9c0ed0b1
build(docker): use python 3.14 base images
2026-10-10 18:05:25 -03:00
Herculino Trotta
10b3c45014
build: require python 3.14
...
Python 3.11 has been security-only since 2024. Bump requires-python to >=3.14 and re-lock.
2026-10-10 18:05:25 -03:00
Herculino Trotta
5f71288e44
Merge pull request #612 from fxmacrodata/fxmacrodata-hardening
...
fix(automatic-exchange-rates): don't follow redirects or log the key in the FXMacroData provider
2026-10-10 17:52:17 -03:00
eitchtee
ca267fedef
chore(locale): update translation files
...
[skip ci] Automatically generated by Django makemessages workflow
2026-10-10 20:52:09 +00:00
Herculino Trotta
92c33a9fcc
Merge pull request #615 from eitchtee/fix/oidc-unverified-email-autoconnect
...
feat(auth): make OIDC email trust configurable
2026-10-10 17:51:37 -03:00
Herculino Trotta
d1bb9698a0
Merge pull request #614 from eitchtee/feat/simulation-tool
...
feat: add Simulator tool
2026-10-10 17:51:24 -03:00
Herculino Trotta
c274e92f86
Merge pull request #613 from eitchtee/feat/transaction-convert-menu
...
feat(transactions): convert a transaction into a quick transaction, recurring transaction or installment plan
2026-10-10 17:51:13 -03:00
Herculino Trotta
2544820e1a
Merge pull request #569 from eitchtee/copilot/fix-code-scanning-alerts
...
Stop exposing exception text in OAuth dynamic client registration errors
2026-10-10 17:50:53 -03:00
Herculino Trotta
e925822574
fix(oauth): keep specific DCR errors without exposing exception text
...
Parsing helpers now return (value, error) instead of raising, so no
exception object flows into the response while clients keep the
precise messages they had before.
full_clean() failures map to fixed per-field messages; redirect URI
errors surface as NON_FIELD_ERRORS from Application.clean().
Also reject non-string token_endpoint_auth_method with a 400 instead
of crashing with a TypeError.
2026-10-10 17:48:14 -03:00
Herculino Trotta
89c7a6bd4f
docs(auth): explain OIDC email trust modes
2026-10-10 17:01:56 -03:00
Herculino Trotta
59de9f2443
feat(auth): configure OIDC email trust
...
Allow verified-only linking with OIDC_TRUST_EMAIL=false while retaining case-insensitive matching. Keep unconditional trust enabled by default for compatibility with #518 ; that mode retains the documented takeover risk.
2026-10-10 17:01:52 -03:00
Herculino Trotta
6e72594ec7
test(simulator): cover baseline calculation and page
2026-10-10 15:26:59 -03:00
Herculino Trotta
916c401ce3
feat(sidebar): add simulator to tools menu
2026-10-10 15:26:59 -03:00
Herculino Trotta
bdf0cf8d4c
feat(simulator): add simulator tool page
...
Hyperscript-driven page to simulate one-time, recurring and installment expenses or incomes over the projected balance.
2026-10-10 15:26:59 -03:00
Herculino Trotta
81e572c8ab
feat(simulator): add projected baseline calculation
...
Per-currency monthly net changes from active, tracked accounts, plus the exchange rate for currencies with an exchange currency.
2026-10-10 15:26:59 -03:00
Herculino Trotta
195da63998
feat(transactions): add Convert submenu to the transaction actions menu
...
Replaces the "Add as quick transaction" action.
2026-10-09 23:25:20 -03:00
Herculino Trotta
8c5c299312
feat(transactions): add views to convert a transaction into a quick transaction, recurring transaction or installment plan
2026-10-09 23:25:19 -03:00