Commit Graph

1312 Commits

Author SHA1 Message Date
obervinov ca14f77f41 test: cover demo-mode block on revoked-token delete
Parity with the existing demo-mode tests for token create/revoke.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 00:00:10 +04:00
obervinov 0fb37a59fa feat: add delete button for revoked API tokens
Revoked tokens previously stayed in the list with no way to remove them.
Adds a delete action (hard delete, scoped to the owner, gated behind
demo mode) shown on revoked rows, alongside the existing revoke action on
active ones.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 23:55:38 +04:00
Herculino Trotta 106d721279 feat: add demo mode tests to ensure API is disabled on it 2026-06-27 18:02:31 -03:00
Herculino Trotta d0e9c05283 feat: disable oauth and token creation while on demo mode 2026-06-27 18:02:03 -03:00
Herculino Trotta 7f5a91c11f fix: wrong Guam timezone string 2026-06-27 17:56:24 -03:00
Herculino Trotta 009a7038c8 style: improve api token box look 2026-06-27 17:56:05 -03:00
obervinov 4273c541c5 Add API tokens and OAuth2 client support for external integrations
- Personal API tokens (model, user-settings UI, admin, management command,
  DRF auth class) for non-interactive API access from automations like n8n.
  Raw token shown once; only a SHA-256 hash is stored; last_used_at writes
  are throttled.
- OAuth2 authorization server via django-oauth-toolkit with authorization
  server metadata and optional, off-by-default Dynamic Client Registration
  (RFC 7591), so remote OAuth/MCP clients can authenticate and self-register.
- Tests for token auth, DCR gating and the management commands, plus
  .env.example and README documentation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 19:15:31 +04:00
Pawel Augustyn 7db0fcf097 locale(Polish): update translation
Currently translated at 73.8% (546 of 739 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pl/
2026-06-08 07:57:18 +00:00
Pawel Augustyn 02896f21ed locale(Polish): update translation
Currently translated at 73.8% (546 of 739 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pl/
2026-06-08 06:57:18 +00:00
Pawel Augustyn 5082c17d0f locale(Polish): update translation
Currently translated at 73.7% (545 of 739 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pl/
2026-06-08 05:57:18 +00:00
Herculino Trotta fc99491f78 locale(Portuguese (Brazil)): update translation
Currently translated at 100.0% (739 of 739 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pt_BR/
2026-06-07 14:57:19 +00:00
Dimitri Decrock cb0d379261 locale(Dutch): update translation
Currently translated at 100.0% (739 of 739 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/nl/
2026-06-07 08:57:18 +00:00
eitchtee 524e390a62 chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2026-06-06 08:15:55 +00:00
eitchtee eb6be8548c chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2026-06-06 07:41:13 +00:00
Herculino Trotta 6a19381672 feat(transactions): add attachments 2026-06-06 04:33:06 -03:00
Weblate b34c0557fa Merge remote-tracking branch 'origin/main' 2026-05-02 19:30:37 +00:00
Herculino Trotta d72ff3cdf5 fix(rules): allow category expressions to clear categories 2026-05-02 16:16:27 -03:00
Herculino Trotta 63c69e5c6a test(api): expect unauthorized for anonymous requests 2026-05-02 16:16:08 -03:00
Herculino Trotta 78171183cc test(currencies): avoid test discovery collision 2026-05-02 16:15:48 -03:00
Herculino Trotta 34a2b6bfd4 fix(procrastinate): close Django connections around jobs 2026-05-02 16:15:26 -03:00
masttera 1dc24f855e locale(Russian): update translation
Currently translated at 75.2% (545 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-05-01 07:24:32 +00:00
masttera 1390aff07d locale(Russian): update translation
Currently translated at 74.4% (539 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-05-01 06:24:32 +00:00
Herculino Trotta 8fc11b0acf feat(transactions): hide filter on page load to prevent flashing 2026-05-01 00:07:43 -03:00
Herculino Trotta 39d0e63375 locale(Portuguese (Brazil)): update translation
Currently translated at 100.0% (724 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pt_BR/
2026-04-30 02:24:32 +00:00
Herculino Trotta 5527389196 fix: deduplication breaks when given m2m fields 2026-04-18 14:47:19 +00:00
LordTimothyHKIT 2baa8b21e8 locale(German): update translation
Currently translated at 92.4% (669 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/de/
2026-04-09 11:24:31 +00:00
LordTimothyHKIT 2e554141ba locale(German): update translation
Currently translated at 91.9% (666 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/de/
2026-04-09 10:24:32 +00:00
masttera 73ec6dc0fe locale(Russian): update translation
Currently translated at 72.7% (527 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-31 13:24:31 +00:00
masttera e19449ff99 locale(Russian): update translation
Currently translated at 72.7% (527 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-31 12:24:31 +00:00
masttera e81651119c locale(Russian): update translation
Currently translated at 72.7% (527 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-31 12:21:41 +00:00
masttera 55e9ef1b3f locale(Russian): update translation
Currently translated at 72.7% (527 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-31 11:50:00 +00:00
masttera c414179135 locale(Russian): update translation
Currently translated at 66.0% (478 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-31 11:24:31 +00:00
masttera 14c507de0f locale(Russian): update translation
Currently translated at 65.8% (477 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-31 11:24:08 +00:00
masttera 4722690fe9 locale(Russian): update translation
Currently translated at 62.1% (450 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-29 11:24:32 +00:00
masttera 493619a4ff locale(Russian): update translation
Currently translated at 55.6% (403 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-28 18:24:32 +00:00
masttera fb4aec88f1 locale(Russian): update translation
Currently translated at 35.3% (256 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/ru/
2026-03-28 17:24:32 +00:00
Herculino Trotta a7dc2c955e locale(Portuguese (Brazil)): update translation
Currently translated at 100.0% (724 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pt_BR/
2026-03-02 22:30:07 +00:00
Juan David Afanador de2881ffd4 locale(Spanish): update translation
Currently translated at 100.0% (724 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/es/
2026-02-24 01:24:32 +00:00
Erwan Colin 838bf22498 locale(French): update translation
Currently translated at 99.0% (717 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/fr/
2026-02-23 08:24:31 +00:00
Pawel Augustyn d3797ae4a5 locale(Polish): update translation
Currently translated at 72.6% (526 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pl/
2026-02-18 11:24:31 +00:00
Dimitri Decrock 0532397afd locale(Dutch): update translation
Currently translated at 100.0% (724 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/nl/
2026-02-17 18:24:31 +00:00
Pawel Augustyn 8106dc58e5 locale(Polish): update translation
Currently translated at 70.4% (510 of 724 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pl/
2026-02-16 07:24:31 +00:00
eitchtee 766516d248 chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2026-02-16 02:24:31 +00:00
Herculino Trotta 3fd0fba1b8 Merge pull request #513 from pawelaugustyn/feat/default-account
feat: default account for new transactions
2026-02-15 23:24:08 -03:00
Herculino Trotta c787565c04 refactor: move help_text to model definition 2026-02-15 23:22:52 -03:00
Herculino Trotta 0413921dbe fix: migrations set default as 0 instead of null 2026-02-15 23:22:10 -03:00
pawelaugustyn 9ecf8279b4 feat: default account for new transactions 2026-02-15 22:59:18 +01:00
Herculino Trotta 86cf625158 Merge pull request #518 from eitchtee/dev
feat(auth): trust OIDC connections and automatically connect them with local accounts
2026-02-15 14:43:33 -03:00
Herculino Trotta ea097ab6f0 feat(auth): trust OIDC connections and connect them with local accounts 2026-02-15 14:41:45 -03:00
eitchtee b1201b51bb chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2026-02-15 14:37:18 +00:00