Compare commits

..
27 Commits
Author SHA1 Message Date
Herculino Trotta d500bef481 ci(translations): drop force push to protected main
Branch protection rejects force pushes to main (GH006), so the
translation commit never landed. The push is a fast-forward anyway.
2026-09-06 16:53:57 -03:00
eitchtee f280fcb172 chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2026-09-06 19:42:46 +00:00
Herculino Trotta 6c808eff38 Merge pull request #593 from eitchtee/dependabot/uv/djangorestframework-3.17.2
build(deps): bump djangorestframework from 3.17.1 to 3.17.2
2026-09-06 16:41:50 -03:00
Herculino Trotta 1690a153f9 Merge pull request #594 from eitchtee/dependabot/npm_and_yarn/frontend/browserslist-4.28.8
build(deps): bump browserslist from 4.28.2 to 4.28.8 in /frontend
2026-09-06 16:41:41 -03:00
Herculino Trotta 7116176c78 Merge pull request #595 from eitchtee/dependabot/uv/mistune-3.3.3
build(deps): bump mistune from 3.3.0 to 3.3.3
2026-09-06 16:41:15 -03:00
Herculino Trotta d9c9cbe7c3 Merge pull request #592 from hackking007/fix/owner-scoped-transaction-rule-endpoints
fix: BOLA on transaction-rule endpoints via get_owned_object_or_403
2026-09-06 16:41:00 -03:00
dependabot[bot] 11b03474c1 build(deps): bump mistune from 3.3.0 to 3.3.3
Bumps [mistune](https://github.com/lepture/mistune) from 3.3.0 to 3.3.3.
- [Release notes](https://github.com/lepture/mistune/releases)
- [Changelog](https://github.com/lepture/mistune/blob/main/docs/changes.rst)
- [Commits](https://github.com/lepture/mistune/compare/v3.3.0...v3.3.3)

---
updated-dependencies:
- dependency-name: mistune
  dependency-version: 3.3.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-02 16:45:07 +00:00
Herculino Trotta e2f26b3629 fix(sharing): enforce object-level authorization outside the rules app
The rules endpoints were one instance of a pattern repeated across every
SharedObject-backed app. Route the rest through the same helper.

DCA entries were the worst case and are strictly wider than the reported
rules bug: DCAEntry has an unscoped default manager, so filtering by
strategy__id alone reached entries on strategies the caller could not see
at all. No public or shared strategy was needed -- only a guessable
integer. strategy_entry_add/edit/delete now resolve through the parent
strategy with via="strategy".

Every SharedObject delete view carried an inverted condition:

    if obj.owner != request.user and request.user in obj.shared_with.all():
        obj.shared_with.remove(request.user)
    else:
        obj.delete()

An object its owner had made public matched neither branch's intent and
fell through to delete(), so any authenticated user could destroy it.
Confirmed reachable for accounts, account groups, categories, tags,
entities and DCA strategies. The owner now deletes, a shared user revokes
only their own access, and anyone else gets a 403.

The API viewsets had no object-level check at all. DjangoModelPermissions
gated them shut for ordinary users, who hold no model permissions, so this
was not reachable in a default install -- but the check belongs there
regardless, and a user granted change_account in the admin could write any
visible account. SharedObjectPermission adds it for the SharedObject
viewsets, leaving reads to SharedObjectManager.

account_toggle_untracked only flips the calling user's own row in the
untracked_by m2m, so it takes READ rather than EDIT.

Refs GHSA-83g9-vjqf-2j5q
2026-09-01 23:15:41 -03:00
dependabot[bot] 10c8fcfb97 build(deps): bump browserslist from 4.28.2 to 4.28.8 in /frontend
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.2 to 4.28.8.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.28.2...4.28.8)

---
updated-dependencies:
- dependency-name: browserslist
  dependency-version: 4.28.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-02 01:27:54 +00:00
Herculino Trotta 039ad225d3 test(rules): cover object-level authorization for transaction rules
Regression tests for GHSA-83g9-vjqf-2j5q, one per endpoint the advisory
named plus the delete and view paths found alongside them: a non-owner
gets 403 on every mutation of a public or shared rule, and the object is
asserted unchanged afterwards.

Also covers the parts that are easy to regress in the other direction:
shared users keep read access, a shared user deleting only revokes their
own access, unowned rules stay claimable, and children of invisible rules
answer 404 rather than 403.

SharedObjectPredicateParityTests asserts is_visible_to agrees with
SharedObjectManager across every owner/visibility/shared combination.
The manager builds a Q and the predicate tests an instance, so they
cannot share an implementation and can otherwise drift apart.
2026-09-01 21:43:13 -03:00
Herculino Trotta 18d4ab7d11 fix(rules): enforce object-level authorization on rule endpoints
SharedObjectManager scopes querysets to what a user may see, which
includes other people's public and shared-with-them objects. Several
mutating rule endpoints treated that visibility as permission to write.

Generalise get_owned_object_or_403 into get_shared_object_or_error, which
takes an explicit access level instead of inferring one:

- READ requires the object to be visible; denial is 404 so the response
  does not confirm that an id exists.
- EDIT requires ownership; denial is 403, but only after the visibility
  check, so 403 never leaks the existence of an invisible object. This
  matters for TransactionRuleAction, whose manager is unscoped.

The previous owner_path resolved to a User and discarded the object, so
it could not express visibility at all. via= now points at the governing
SharedObject and is resolved with a plain getattr, so an unresolvable
path raises instead of silently granting access.

is_visible_to/is_editable_by replace is_accessible_by, which was never
called and tested visibility == "shared", a value that does not exist in
Visibility.

Also fixes two further holes in the same module:

- transaction_rule_delete fell through to delete() whenever the caller
  was not in shared_with, so any user could delete a public rule. Now
  only the owner deletes; a shared user revokes their own access.
- transaction_rule_view was read-only but is now explicitly READ, so
  rules shared with a user stay viewable.

The activate/deactivate control is hidden for rules the user does not
own, instead of rendering a button that always fails.

Refs GHSA-83g9-vjqf-2j5q
2026-09-01 21:25:46 -03:00
dependabot[bot] c64a363126 build(deps): bump djangorestframework from 3.17.1 to 3.17.2
Bumps [djangorestframework](https://github.com/encode/django-rest-framework) from 3.17.1 to 3.17.2.
- [Release notes](https://github.com/encode/django-rest-framework/releases)
- [Commits](https://github.com/encode/django-rest-framework/compare/3.17.1...3.17.2)

---
updated-dependencies:
- dependency-name: djangorestframework
  dependency-version: 3.17.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-02 00:14:06 +00:00
Moshe Levi 68a9286ce5 Fix BOLA on transaction-rule endpoints via get_owned_object_or_403
Add apps.common.functions.get_owned_object_or_403, an ownership-enforcing
variant of get_object_or_404, and apply it across every rules handler that
resolved a TransactionRule / (UpdateOrCreate)TransactionRuleAction from a URL id
without an owner check. Mirrors the check in transaction_rule_edit
(obj.owner and obj.owner != request.user); objects with no owner remain
accessible, preserving existing behaviour. Nested ownership (actions owned via
their parent rule) is handled with owner_path='rule.owner'.
2026-08-31 20:14:40 +03:00
Herculino Trotta 1357688e7b Merge pull request #591 from eitchtee/dependabot/uv/sqlparse-0.6.0
build(deps): bump sqlparse from 0.5.5 to 0.6.0
2026-08-30 15:13:33 -03:00
Herculino Trotta ba1f421ad3 Merge pull request #590 from eitchtee/weblate
Translations update from Weblate
2026-08-30 15:13:24 -03:00
renardspark f60f86a5cb locale(French): update translation
Currently translated at 98.8% (776 of 785 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/fr/
2026-08-23 16:57:26 +00:00
renardspark 5588eb33b1 locale(French): update translation
Currently translated at 98.8% (776 of 785 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/fr/
2026-08-23 15:57:24 +00:00
renardspark 934e6bd8e0 locale(French): update translation
Currently translated at 98.8% (776 of 785 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/fr/
2026-08-23 14:57:25 +00:00
dependabot[bot] 7933f1c316 build(deps): bump sqlparse from 0.5.5 to 0.6.0
Bumps [sqlparse](https://github.com/andialbrecht/sqlparse) from 0.5.5 to 0.6.0.
- [Changelog](https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG)
- [Commits](https://github.com/andialbrecht/sqlparse/compare/0.5.5...0.6.0)

---
updated-dependencies:
- dependency-name: sqlparse
  dependency-version: 0.6.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-17 21:31:28 +00:00
Dimitri Decrock 00f87bea3d locale(Dutch): update translation
Currently translated at 100.0% (785 of 785 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/nl/
2026-08-17 15:57:28 +00:00
Herculino Trotta 53ed0d791a Merge pull request #589 from eitchtee/weblate
Translations update from Weblate
2026-08-16 19:03:53 -03:00
Herculino Trotta 5147d939ef locale(Portuguese (Brazil)): update translation
Currently translated at 100.0% (785 of 785 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pt_BR/
2026-08-16 22:03:32 +00:00
eitchtee 716bd6f57f chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2026-08-16 04:46:49 +00:00
Herculino Trotta ded4cb37d5 Merge pull request #588 from eitchtee/feat/filter-presets
feat(transactions): add filter presets
2026-08-16 01:46:18 -03:00
Herculino Trotta cd48edddab feat(transactions): add htmx filter presets 2026-08-16 01:40:11 -03:00
Herculino Trotta 9e135560fe feat(transactions): add filter preset model 2026-08-16 01:40:03 -03:00
eitchtee bdbccdec16 chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2026-08-15 18:12:40 +00:00
52 changed files with 5558 additions and 3170 deletions
-1
View File
@@ -65,7 +65,6 @@ jobs:
if: steps.check_changes.outputs.changes_detected == 'true' if: steps.check_changes.outputs.changes_detected == 'true'
uses: stefanzweifel/git-auto-commit-action@v5 uses: stefanzweifel/git-auto-commit-action@v5
with: with:
push_options: --force
commit_message: | commit_message: |
chore(locale): update translation files chore(locale): update translation files
+18 -31
View File
@@ -1,13 +1,19 @@
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from apps.accounts.forms import AccountGroupForm from apps.accounts.forms import AccountGroupForm
from apps.accounts.models import AccountGroup from apps.accounts.models import AccountGroup
from apps.common.decorators.htmx import only_htmx from apps.common.decorators.htmx import only_htmx
from apps.common.functions.permissions import (
EDIT,
READ,
get_shared_object_or_error,
)
from apps.common.models import SharedObject from apps.common.models import SharedObject
from apps.common.forms import SharedObjectForm from apps.common.forms import SharedObjectForm
@@ -63,17 +69,7 @@ def account_group_add(request, **kwargs):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def account_group_edit(request, pk): def account_group_edit(request, pk):
account_group = get_object_or_404(AccountGroup, id=pk) account_group = get_shared_object_or_error(AccountGroup, request, id=pk, level=EDIT)
if account_group.owner and account_group.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = AccountGroupForm(request.POST, instance=account_group) form = AccountGroupForm(request.POST, instance=account_group)
@@ -101,17 +97,18 @@ def account_group_edit(request, pk):
@login_required @login_required
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def account_group_delete(request, pk): def account_group_delete(request, pk):
account_group = get_object_or_404(AccountGroup, id=pk) account_group = get_shared_object_or_error(AccountGroup, request, id=pk, level=READ)
if ( if account_group.is_editable_by(request.user):
account_group.owner != request.user account_group.delete()
and request.user in account_group.shared_with.all() messages.success(request, _("Account Group deleted successfully"))
): elif account_group.shared_with.filter(pk=request.user.pk).exists():
# Someone else's object shared with us: we can drop our own access
# to it, but never delete it.
account_group.shared_with.remove(request.user) account_group.shared_with.remove(request.user)
messages.success(request, _("Item no longer shared with you")) messages.success(request, _("Item no longer shared with you"))
else: else:
account_group.delete() raise PermissionDenied
messages.success(request, _("Account Group deleted successfully"))
return HttpResponse( return HttpResponse(
status=204, status=204,
@@ -125,7 +122,7 @@ def account_group_delete(request, pk):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def account_group_take_ownership(request, pk): def account_group_take_ownership(request, pk):
account_group = get_object_or_404(AccountGroup, id=pk) account_group = get_shared_object_or_error(AccountGroup, request, id=pk, level=EDIT)
if not account_group.owner: if not account_group.owner:
account_group.owner = request.user account_group.owner = request.user
@@ -146,17 +143,7 @@ def account_group_take_ownership(request, pk):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def account_group_share(request, pk): def account_group_share(request, pk):
obj = get_object_or_404(AccountGroup, id=pk) obj = get_shared_object_or_error(AccountGroup, request, id=pk, level=EDIT)
if obj.owner and obj.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = SharedObjectForm(request.POST, instance=obj, user=request.user) form = SharedObjectForm(request.POST, instance=obj, user=request.user)
+21 -28
View File
@@ -1,13 +1,19 @@
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from apps.accounts.forms import AccountForm from apps.accounts.forms import AccountForm
from apps.accounts.models import Account from apps.accounts.models import Account
from apps.common.decorators.htmx import only_htmx from apps.common.decorators.htmx import only_htmx
from apps.common.functions.permissions import (
EDIT,
READ,
get_shared_object_or_error,
)
from apps.common.models import SharedObject from apps.common.models import SharedObject
from apps.common.forms import SharedObjectForm from apps.common.forms import SharedObjectForm
@@ -63,16 +69,7 @@ def account_add(request, **kwargs):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def account_edit(request, pk): def account_edit(request, pk):
account = get_object_or_404(Account, id=pk) account = get_shared_object_or_error(Account, request, id=pk, level=EDIT)
if account.owner and account.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = AccountForm(request.POST, instance=account) form = AccountForm(request.POST, instance=account)
@@ -100,17 +97,7 @@ def account_edit(request, pk):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def account_share(request, pk): def account_share(request, pk):
obj = get_object_or_404(Account, id=pk) obj = get_shared_object_or_error(Account, request, id=pk, level=EDIT)
if obj.owner and obj.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = SharedObjectForm(request.POST, instance=obj, user=request.user) form = SharedObjectForm(request.POST, instance=obj, user=request.user)
@@ -138,14 +125,18 @@ def account_share(request, pk):
@login_required @login_required
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def account_delete(request, pk): def account_delete(request, pk):
account = get_object_or_404(Account, id=pk) account = get_shared_object_or_error(Account, request, id=pk, level=READ)
if account.owner != request.user and request.user in account.shared_with.all(): if account.is_editable_by(request.user):
account.delete()
messages.success(request, _("Account deleted successfully"))
elif account.shared_with.filter(pk=request.user.pk).exists():
# Someone else's object shared with us: we can drop our own access
# to it, but never delete it.
account.shared_with.remove(request.user) account.shared_with.remove(request.user)
messages.success(request, _("Item no longer shared with you")) messages.success(request, _("Item no longer shared with you"))
else: else:
account.delete() raise PermissionDenied
messages.success(request, _("Account deleted successfully"))
return HttpResponse( return HttpResponse(
status=204, status=204,
@@ -159,7 +150,9 @@ def account_delete(request, pk):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def account_toggle_untracked(request, pk): def account_toggle_untracked(request, pk):
account = get_object_or_404(Account, id=pk) # Only flips the calling user's own row in untracked_by, so visibility --
# not ownership -- is the right bar here.
account = get_shared_object_or_error(Account, request, id=pk, level=READ)
if account.is_untracked_by(): if account.is_untracked_by():
account.untracked_by.remove(request.user) account.untracked_by.remove(request.user)
messages.success(request, _("Account is now tracked")) messages.success(request, _("Account is now tracked"))
@@ -179,7 +172,7 @@ def account_toggle_untracked(request, pk):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def account_take_ownership(request, pk): def account_take_ownership(request, pk):
account = get_object_or_404(Account, id=pk) account = get_shared_object_or_error(Account, request, id=pk, level=EDIT)
if not account.owner: if not account.owner:
account.owner = request.user account.owner = request.user
+39 -1
View File
@@ -1,4 +1,8 @@
from rest_framework.permissions import BasePermission from rest_framework.permissions import (
SAFE_METHODS,
BasePermission,
DjangoModelPermissions,
)
from django.conf import settings from django.conf import settings
@@ -8,3 +12,37 @@ class NotInDemoMode(BasePermission):
return False return False
else: else:
return True return True
class SharedObjectPermission(BasePermission):
"""Object-level ownership check for SharedObject-backed viewsets.
DjangoModelPermissions is model-level: a user holding ``change_account``
may write any object the viewset's queryset returns, and for SharedObject
that queryset includes other people's public and shared-with-them objects.
Sharing grants read access only, so writes are restricted to the owner
here as well.
Set ``shared_object_via`` on the viewset when the governing SharedObject is
reached through a relation (e.g. ``"strategy"`` for a DCA entry).
"""
def has_object_permission(self, request, view, obj):
if request.method in SAFE_METHODS:
return True
guard = obj
via = getattr(view, "shared_object_via", None)
for attr in via.split(".") if via else []:
guard = getattr(guard, attr)
return guard.is_editable_by(request.user)
#: Default permissions plus the object-level ownership check. Assigning
#: ``permission_classes`` replaces the defaults, so they are repeated here.
SHARED_OBJECT_PERMISSIONS = [
NotInDemoMode,
DjangoModelPermissions,
SharedObjectPermission,
]
+1
View File
@@ -3,3 +3,4 @@ from .test_imports import *
from .test_accounts import * from .test_accounts import *
from .test_data_isolation import * from .test_data_isolation import *
from .test_shared_access import * from .test_shared_access import *
from .test_object_permissions import *
@@ -0,0 +1,171 @@
"""Object-level ownership on the SharedObject API viewsets.
DjangoModelPermissions is model-level: a user holding ``change_account`` could
write any object the viewset's queryset returned, and for SharedObject that
queryset includes other people's public and shared-with-them objects. Ordinary
users hold no model permissions, so this was not reachable for them, but the
object-level check was missing entirely.
Reads are unaffected -- they stay governed by SharedObjectManager.
"""
from datetime import date
from decimal import Decimal
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Permission
from django.test import TestCase, override_settings
from rest_framework import status
from rest_framework.test import APIClient
from apps.accounts.models import Account
from apps.currencies.models import Currency
from apps.dca.models import DCAEntry, DCAStrategy
from apps.transactions.models import TransactionCategory
@override_settings(
STORAGES={
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"
},
},
WHITENOISE_AUTOREFRESH=True,
DEMO=False,
)
class SharedObjectAPIPermissionTests(TestCase):
"""The attacker here deliberately HOLDS the Django model permissions.
Without them DjangoModelPermissions already answers 403 and the
object-level check is never consulted, so the test would pass whether or
not it exists.
"""
def setUp(self):
User = get_user_model()
self.owner = User.objects.create_user(
email="owner@test.com", password="testpass123"
)
self.attacker = User.objects.create_user(
email="attacker@test.com", password="testpass123"
)
self.attacker.user_permissions.set(
Permission.objects.filter(
codename__in=[
"add_account",
"change_account",
"delete_account",
"add_transactioncategory",
"change_transactioncategory",
"delete_transactioncategory",
"add_dcaentry",
"change_dcaentry",
"delete_dcaentry",
]
)
)
# Permissions are cached on the user instance.
self.attacker = User.objects.get(pk=self.attacker.pk)
self.currency = Currency.objects.create(
code="USD", name="US Dollar", decimal_places=2
)
self.api = APIClient()
self.api.force_authenticate(user=self.attacker)
def test_cannot_modify_public_account(self):
account = Account.all_objects.create(
name="Public account",
currency=self.currency,
owner=self.owner,
visibility="public",
)
response = self.api.patch(
f"/api/accounts/{account.id}/", {"name": "HIJACKED"}, format="json"
)
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
account.refresh_from_db()
self.assertEqual(account.name, "Public account")
def test_cannot_delete_account_shared_with_them(self):
account = Account.all_objects.create(
name="Shared account",
currency=self.currency,
owner=self.owner,
visibility="private",
)
account.shared_with.add(self.attacker)
response = self.api.delete(f"/api/accounts/{account.id}/")
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertTrue(Account.all_objects.filter(pk=account.pk).exists())
def test_cannot_delete_public_category(self):
category = TransactionCategory.all_objects.create(
name="Public category", owner=self.owner, visibility="public"
)
response = self.api.delete(f"/api/categories/{category.id}/")
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertTrue(TransactionCategory.all_objects.filter(pk=category.pk).exists())
def test_cannot_delete_entry_on_public_strategy(self):
strategy = DCAStrategy.all_objects.create(
name="Public strategy",
owner=self.owner,
visibility="public",
target_currency=self.currency,
payment_currency=self.currency,
)
entry = DCAEntry.objects.create(
strategy=strategy,
date=date(2025, 1, 1),
amount_paid=Decimal("100"),
amount_received=Decimal("1"),
)
response = self.api.delete(f"/api/dca/entries/{entry.id}/")
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertTrue(DCAEntry.objects.filter(pk=entry.pk).exists())
def test_reads_of_shared_objects_still_work(self):
account = Account.all_objects.create(
name="Public account",
currency=self.currency,
owner=self.owner,
visibility="public",
)
response = self.api.get(f"/api/accounts/{account.id}/")
self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_owner_can_still_write_their_own_objects(self):
owner_client = APIClient()
self.owner.user_permissions.set(
Permission.objects.filter(codename__in=["change_account", "delete_account"])
)
owner = get_user_model().objects.get(pk=self.owner.pk)
owner_client.force_authenticate(user=owner)
account = Account.all_objects.create(
name="Own account",
currency=self.currency,
owner=owner,
visibility="private",
)
response = owner_client.patch(
f"/api/accounts/{account.id}/", {"name": "Renamed"}, format="json"
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
account.refresh_from_db()
self.assertEqual(account.name, "Renamed")
+3
View File
@@ -6,6 +6,7 @@ from rest_framework.response import Response
from apps.accounts.models import AccountGroup, Account from apps.accounts.models import AccountGroup, Account
from apps.accounts.services import get_account_balance from apps.accounts.services import get_account_balance
from apps.api.permissions import SHARED_OBJECT_PERMISSIONS
from apps.api.serializers import ( from apps.api.serializers import (
AccountGroupSerializer, AccountGroupSerializer,
AccountSerializer, AccountSerializer,
@@ -16,6 +17,7 @@ from apps.api.serializers import (
class AccountGroupViewSet(viewsets.ModelViewSet): class AccountGroupViewSet(viewsets.ModelViewSet):
"""ViewSet for managing account groups.""" """ViewSet for managing account groups."""
permission_classes = SHARED_OBJECT_PERMISSIONS
queryset = AccountGroup.objects.all() queryset = AccountGroup.objects.all()
serializer_class = AccountGroupSerializer serializer_class = AccountGroupSerializer
filterset_fields = { filterset_fields = {
@@ -40,6 +42,7 @@ class AccountGroupViewSet(viewsets.ModelViewSet):
class AccountViewSet(viewsets.ModelViewSet): class AccountViewSet(viewsets.ModelViewSet):
"""ViewSet for managing accounts.""" """ViewSet for managing accounts."""
permission_classes = SHARED_OBJECT_PERMISSIONS
queryset = Account.objects.all() queryset = Account.objects.all()
serializer_class = AccountSerializer serializer_class = AccountSerializer
filterset_fields = { filterset_fields = {
+4
View File
@@ -2,10 +2,12 @@ from rest_framework import viewsets
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.response import Response from rest_framework.response import Response
from apps.dca.models import DCAStrategy, DCAEntry from apps.dca.models import DCAStrategy, DCAEntry
from apps.api.permissions import SHARED_OBJECT_PERMISSIONS
from apps.api.serializers import DCAStrategySerializer, DCAEntrySerializer from apps.api.serializers import DCAStrategySerializer, DCAEntrySerializer
class DCAStrategyViewSet(viewsets.ModelViewSet): class DCAStrategyViewSet(viewsets.ModelViewSet):
permission_classes = SHARED_OBJECT_PERMISSIONS
queryset = DCAStrategy.objects.all() queryset = DCAStrategy.objects.all()
serializer_class = DCAStrategySerializer serializer_class = DCAStrategySerializer
filterset_fields = { filterset_fields = {
@@ -43,6 +45,8 @@ class DCAStrategyViewSet(viewsets.ModelViewSet):
class DCAEntryViewSet(viewsets.ModelViewSet): class DCAEntryViewSet(viewsets.ModelViewSet):
permission_classes = SHARED_OBJECT_PERMISSIONS
shared_object_via = "strategy"
queryset = DCAEntry.objects.all() queryset = DCAEntry.objects.all()
serializer_class = DCAEntrySerializer serializer_class = DCAEntrySerializer
filterset_fields = { filterset_fields = {
+4
View File
@@ -19,6 +19,7 @@ from apps.transactions.models import (
RecurringTransaction, RecurringTransaction,
) )
from apps.rules.signals import transaction_updated, transaction_created from apps.rules.signals import transaction_updated, transaction_created
from apps.api.permissions import SHARED_OBJECT_PERMISSIONS
class TransactionViewSet(viewsets.ModelViewSet): class TransactionViewSet(viewsets.ModelViewSet):
@@ -68,6 +69,7 @@ class TransactionViewSet(viewsets.ModelViewSet):
class TransactionCategoryViewSet(viewsets.ModelViewSet): class TransactionCategoryViewSet(viewsets.ModelViewSet):
permission_classes = SHARED_OBJECT_PERMISSIONS
queryset = TransactionCategory.objects.all() queryset = TransactionCategory.objects.all()
serializer_class = TransactionCategorySerializer serializer_class = TransactionCategorySerializer
filterset_fields = { filterset_fields = {
@@ -85,6 +87,7 @@ class TransactionCategoryViewSet(viewsets.ModelViewSet):
class TransactionTagViewSet(viewsets.ModelViewSet): class TransactionTagViewSet(viewsets.ModelViewSet):
permission_classes = SHARED_OBJECT_PERMISSIONS
queryset = TransactionTag.objects.all() queryset = TransactionTag.objects.all()
serializer_class = TransactionTagSerializer serializer_class = TransactionTagSerializer
filterset_fields = { filterset_fields = {
@@ -101,6 +104,7 @@ class TransactionTagViewSet(viewsets.ModelViewSet):
class TransactionEntityViewSet(viewsets.ModelViewSet): class TransactionEntityViewSet(viewsets.ModelViewSet):
permission_classes = SHARED_OBJECT_PERMISSIONS
queryset = TransactionEntity.objects.all() queryset = TransactionEntity.objects.all()
serializer_class = TransactionEntitySerializer serializer_class = TransactionEntitySerializer
filterset_fields = { filterset_fields = {
+58
View File
@@ -0,0 +1,58 @@
from django.core.exceptions import PermissionDenied
from django.http import Http404
from django.shortcuts import get_object_or_404
READ = "read"
EDIT = "edit"
def get_shared_object_or_error(klass, request, *, level=EDIT, via=None, **kwargs):
"""Fetch an object like ``get_object_or_404`` while enforcing access control.
``SharedObjectManager`` scopes querysets to what a user may *see*, which is
not the same as what they may *change*. Views that resolve an object from a
URL id must state which of the two they need, otherwise a shared or public
object becomes writable by anyone who can see it.
``level`` selects the check applied to the governing ``SharedObject``:
``READ``
The object must be visible to the user. Denial raises :class:`Http404`
so the response does not confirm that the id exists.
``EDIT``
The object must be owned by the user. Denial raises
:class:`~django.core.exceptions.PermissionDenied` (HTTP 403), which the
frontend surfaces as an "Access Denied" dialog. An object the user
cannot even see raises :class:`Http404` instead, so 403 never confirms
the existence of an object they were not allowed to know about.
Objects with no owner stay accessible to everyone, preserving the existing
behaviour for legacy/unowned objects.
``via`` is a dotted path to the ``SharedObject`` that governs access, for
models owned through a relation, e.g. a rule action governed by its parent
rule::
get_shared_object_or_error(
TransactionRuleAction, request, id=pk, level=EDIT, via="rule"
)
The path is resolved with a plain ``getattr``, so a path that does not
resolve raises ``AttributeError`` rather than silently granting access.
"""
obj = get_object_or_404(klass, **kwargs)
guard = obj
for attr in via.split(".") if via else []:
guard = getattr(guard, attr)
if level not in (READ, EDIT):
raise ValueError(f"Unknown access level: {level!r}")
if not guard.is_visible_to(request.user):
raise Http404
if level == EDIT and not guard.is_editable_by(request.user):
raise PermissionDenied
return obj
+29 -7
View File
@@ -58,13 +58,35 @@ class SharedObject(models.Model):
models.Index(fields=["visibility"]), models.Index(fields=["visibility"]),
] ]
def is_accessible_by(self, user): # NOTE: these two predicates must stay in sync with the ``Q`` objects built
"""Check if a user can access this object""" # by ``SharedObjectManager.get_queryset`` above. The manager filters at the
return ( # queryset level and these check a single instance, so they cannot share an
self.visibility == "public" # implementation; ``SharedObjectPredicateParityTests`` asserts they agree.
or self.owner == user def is_visible_to(self, user):
or (self.visibility == "shared" and user in self.shared_with.all()) """Whether ``user`` may read this object.
)
Mirrors ``SharedObjectManager``: public objects, objects with no owner,
the owner's own objects, and objects explicitly shared with the user.
"""
if self.owner is None or self.visibility == "public":
return True
if not user or not user.is_authenticated:
return False
return self.owner_id == user.pk or self.shared_with.filter(pk=user.pk).exists()
def is_editable_by(self, user):
"""Whether ``user`` may mutate this object.
Sharing grants read access only; mutation stays with the owner. Objects
with no owner remain editable by everyone, preserving the behaviour of
legacy/unowned objects.
"""
if self.owner is None:
return True
return bool(user and user.is_authenticated and self.owner_id == user.pk)
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.pk and not self.owner: if not self.pk and not self.owner:
+269
View File
@@ -0,0 +1,269 @@
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AnonymousUser
from django.core.exceptions import PermissionDenied
from django.http import Http404
from django.test import RequestFactory, TestCase, override_settings
from apps.common.functions.permissions import (
EDIT,
READ,
get_shared_object_or_error,
)
from apps.common.middleware.thread_local import delete_current_user, write_current_user
from apps.rules.models import TransactionRule, TransactionRuleAction
@override_settings(
STORAGES={
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"
},
},
WHITENOISE_AUTOREFRESH=True,
)
class SharedObjectPredicateTests(TestCase):
"""Unit tests for is_visible_to / is_editable_by on SharedObject."""
def setUp(self):
User = get_user_model()
self.owner = User.objects.create_user(
email="owner@test.com", password="testpass123"
)
self.shared_user = User.objects.create_user(
email="shared@test.com", password="testpass123"
)
self.stranger = User.objects.create_user(
email="stranger@test.com", password="testpass123"
)
def _rule(self, **kwargs):
kwargs.setdefault("name", "Rule")
kwargs.setdefault("trigger", "True")
return TransactionRule.all_objects.create(**kwargs)
def test_owner_can_read_and_edit_own_private_rule(self):
rule = self._rule(owner=self.owner, visibility="private")
self.assertTrue(rule.is_visible_to(self.owner))
self.assertTrue(rule.is_editable_by(self.owner))
def test_private_rule_is_invisible_to_stranger(self):
rule = self._rule(owner=self.owner, visibility="private")
self.assertFalse(rule.is_visible_to(self.stranger))
self.assertFalse(rule.is_editable_by(self.stranger))
def test_shared_rule_is_readable_but_not_editable(self):
rule = self._rule(owner=self.owner, visibility="private")
rule.shared_with.add(self.shared_user)
self.assertTrue(rule.is_visible_to(self.shared_user))
self.assertFalse(rule.is_editable_by(self.shared_user))
def test_public_rule_is_readable_but_not_editable(self):
rule = self._rule(owner=self.owner, visibility="public")
self.assertTrue(rule.is_visible_to(self.stranger))
self.assertFalse(rule.is_editable_by(self.stranger))
def test_unowned_rule_stays_readable_and_editable_by_everyone(self):
rule = self._rule(owner=None, visibility="private")
self.assertTrue(rule.is_visible_to(self.stranger))
self.assertTrue(rule.is_editable_by(self.stranger))
def test_anonymous_user_gets_no_access_to_owned_rules(self):
rule = self._rule(owner=self.owner, visibility="private")
self.assertFalse(rule.is_visible_to(AnonymousUser()))
self.assertFalse(rule.is_editable_by(AnonymousUser()))
@override_settings(
STORAGES={
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"
},
},
WHITENOISE_AUTOREFRESH=True,
)
class SharedObjectPredicateParityTests(TestCase):
"""is_visible_to must agree with what SharedObjectManager returns.
The manager filters at the queryset level and the predicate checks a single
instance, so the two cannot share an implementation. This asserts they do
not drift apart.
"""
def setUp(self):
User = get_user_model()
self.owner = User.objects.create_user(
email="owner@test.com", password="testpass123"
)
self.other = User.objects.create_user(
email="other@test.com", password="testpass123"
)
self.addCleanup(self._clear_current_user)
def _clear_current_user(self):
try:
delete_current_user()
except AttributeError:
pass
def test_manager_and_predicate_agree_over_every_combination(self):
combinations = []
for owner in (self.owner, self.other, None):
for visibility in ("private", "public"):
for shared in (True, False):
rule = TransactionRule.all_objects.create(
name=f"{owner}-{visibility}-{shared}",
trigger="True",
owner=owner,
visibility=visibility,
)
if shared:
rule.shared_with.add(self.owner)
combinations.append(rule)
write_current_user(self.owner)
visible_ids = set(TransactionRule.objects.values_list("id", flat=True))
for rule in combinations:
with self.subTest(rule=rule.name):
self.assertEqual(
rule.id in visible_ids,
rule.is_visible_to(self.owner),
f"manager and is_visible_to disagree for {rule.name}",
)
@override_settings(
STORAGES={
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"
},
},
WHITENOISE_AUTOREFRESH=True,
)
class GetSharedObjectOrErrorTests(TestCase):
def setUp(self):
User = get_user_model()
self.owner = User.objects.create_user(
email="owner@test.com", password="testpass123"
)
self.stranger = User.objects.create_user(
email="stranger@test.com", password="testpass123"
)
self.factory = RequestFactory()
self.public_rule = TransactionRule.all_objects.create(
name="Public", trigger="True", owner=self.owner, visibility="public"
)
self.private_rule = TransactionRule.all_objects.create(
name="Private", trigger="True", owner=self.owner, visibility="private"
)
self.public_action = TransactionRuleAction.objects.create(
rule=self.public_rule, field="notes", value="x"
)
self.private_action = TransactionRuleAction.objects.create(
rule=self.private_rule, field="notes", value="x"
)
self.addCleanup(self._clear_current_user)
def _clear_current_user(self):
try:
delete_current_user()
except AttributeError:
pass
def _request(self, user):
request = self.factory.get("/")
request.user = user
write_current_user(user)
return request
def test_read_allows_visible_object(self):
request = self._request(self.stranger)
rule = get_shared_object_or_error(
TransactionRule, request, id=self.public_rule.id, level=READ
)
self.assertEqual(rule, self.public_rule)
def test_edit_denies_visible_but_unowned_object_with_403(self):
request = self._request(self.stranger)
with self.assertRaises(PermissionDenied):
get_shared_object_or_error(
TransactionRule, request, id=self.public_rule.id, level=EDIT
)
def test_edit_allows_owner(self):
request = self._request(self.owner)
rule = get_shared_object_or_error(
TransactionRule, request, id=self.public_rule.id, level=EDIT
)
self.assertEqual(rule, self.public_rule)
def test_invisible_object_raises_404_not_403(self):
"""403 must not confirm the existence of an object the user cannot see."""
request = self._request(self.stranger)
with self.assertRaises(Http404):
get_shared_object_or_error(
TransactionRule, request, id=self.private_rule.id, level=EDIT
)
def test_via_traverses_to_the_governing_object(self):
request = self._request(self.stranger)
with self.assertRaises(PermissionDenied):
get_shared_object_or_error(
TransactionRuleAction,
request,
id=self.public_action.id,
level=EDIT,
via="rule",
)
def test_via_hides_children_of_invisible_parents_behind_404(self):
"""TransactionRuleAction has an unscoped manager, so the id is reachable."""
request = self._request(self.stranger)
with self.assertRaises(Http404):
get_shared_object_or_error(
TransactionRuleAction,
request,
id=self.private_action.id,
level=EDIT,
via="rule",
)
def test_unresolvable_via_path_fails_closed(self):
"""A typo'd path must raise, never silently grant access."""
request = self._request(self.stranger)
with self.assertRaises(AttributeError):
get_shared_object_or_error(
TransactionRuleAction,
request,
id=self.public_action.id,
level=EDIT,
via="rulee",
)
def test_unknown_level_is_rejected(self):
request = self._request(self.owner)
with self.assertRaises(ValueError):
get_shared_object_or_error(
TransactionRule, request, id=self.public_rule.id, level="write"
)
@@ -0,0 +1,161 @@
"""Delete semantics for every SharedObject-backed model.
Each of these views carried the same inverted condition::
if obj.owner != request.user and request.user in obj.shared_with.all():
obj.shared_with.remove(request.user) # unshare
else:
obj.delete() # <- public objects landed here
so an object its owner had made public could be destroyed by any authenticated
user. The rule is: the owner deletes, a shared user revokes only their own
access, and nobody else may do either.
"""
from django.contrib.auth import get_user_model
from django.test import TestCase, override_settings
from django.urls import reverse
from apps.accounts.models import Account, AccountGroup
from apps.currencies.models import Currency
from apps.dca.models import DCAStrategy
from apps.rules.models import TransactionRule
from apps.transactions.models import (
TransactionCategory,
TransactionEntity,
TransactionTag,
)
HTMX = {"HTTP_HX_REQUEST": "true"}
@override_settings(
STORAGES={
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"
},
},
WHITENOISE_AUTOREFRESH=True,
DEMO=False,
)
class SharedObjectDeletionTests(TestCase):
def setUp(self):
User = get_user_model()
self.owner = User.objects.create_user(
email="owner@test.com", password="testpass123"
)
self.shared_user = User.objects.create_user(
email="shared@test.com", password="testpass123"
)
self.stranger = User.objects.create_user(
email="stranger@test.com", password="testpass123"
)
self.currency = Currency.objects.create(
code="USD", name="US Dollar", decimal_places=2
)
def cases(self):
"""(label, model, delete url name, url kwarg, extra create kwargs)."""
return [
(
"account",
Account,
"account_delete",
"pk",
{"currency": self.currency},
),
("account group", AccountGroup, "account_group_delete", "pk", {}),
(
"category",
TransactionCategory,
"category_delete",
"category_id",
{},
),
("tag", TransactionTag, "tag_delete", "tag_id", {}),
("entity", TransactionEntity, "entity_delete", "entity_id", {}),
(
"rule",
TransactionRule,
"transaction_rule_delete",
"transaction_rule_id",
{"trigger": "True"},
),
(
"dca strategy",
DCAStrategy,
"dca_strategy_delete",
"strategy_id",
{
"target_currency": self.currency,
"payment_currency": self.currency,
},
),
]
def make(self, model, visibility, extra):
return model.all_objects.create(
name="Target", owner=self.owner, visibility=visibility, **extra
)
def delete(self, url_name, kwarg, obj):
return self.client.delete(reverse(url_name, kwargs={kwarg: obj.id}), **HTMX)
def test_stranger_cannot_delete_a_public_object(self):
for label, model, url_name, kwarg, extra in self.cases():
with self.subTest(model=label):
obj = self.make(model, "public", extra)
self.client.force_login(self.stranger)
response = self.delete(url_name, kwarg, obj)
self.assertEqual(response.status_code, 403, label)
self.assertTrue(
model.all_objects.filter(pk=obj.pk).exists(),
f"{label} was deleted by a non-owner",
)
def test_shared_user_deleting_only_revokes_their_own_access(self):
for label, model, url_name, kwarg, extra in self.cases():
with self.subTest(model=label):
obj = self.make(model, "private", extra)
obj.shared_with.add(self.shared_user)
self.client.force_login(self.shared_user)
response = self.delete(url_name, kwarg, obj)
self.assertEqual(response.status_code, 204, label)
self.assertTrue(
model.all_objects.filter(pk=obj.pk).exists(),
f"{label} was deleted by a shared user",
)
self.assertNotIn(self.shared_user, obj.shared_with.all())
def test_owner_can_delete(self):
for label, model, url_name, kwarg, extra in self.cases():
with self.subTest(model=label):
obj = self.make(model, "private", extra)
self.client.force_login(self.owner)
response = self.delete(url_name, kwarg, obj)
self.assertEqual(response.status_code, 204, label)
self.assertFalse(
model.all_objects.filter(pk=obj.pk).exists(),
f"{label} was not deleted by its owner",
)
def test_unowned_objects_stay_deletable(self):
"""Legacy objects with no owner are editable by everyone by design."""
for label, model, url_name, kwarg, extra in self.cases():
with self.subTest(model=label):
obj = model.all_objects.create(
name="Legacy", owner=None, visibility="private", **extra
)
self.client.force_login(self.stranger)
response = self.delete(url_name, kwarg, obj)
self.assertEqual(response.status_code, 204, label)
self.assertFalse(model.all_objects.filter(pk=obj.pk).exists(), label)
-3
View File
@@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.
View File
+248
View File
@@ -0,0 +1,248 @@
"""Object-level authorization tests for the DCA views.
DCAEntry has an unscoped default manager, so filtering an entry by
``strategy__id`` alone reached entries belonging to strategies the caller could
not see at all -- a strictly wider hole than the one reported for rules in
GHSA-83g9-vjqf-2j5q, since it needs no public or shared strategy.
"""
from datetime import date
from decimal import Decimal
from django.contrib.auth import get_user_model
from django.test import TestCase, override_settings
from django.urls import reverse
from apps.currencies.models import Currency
from apps.dca.models import DCAEntry, DCAStrategy
HTMX = {"HTTP_HX_REQUEST": "true"}
@override_settings(
STORAGES={
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"
},
},
WHITENOISE_AUTOREFRESH=True,
DEMO=False,
)
class DCAObjectPermissionTests(TestCase):
def setUp(self):
User = get_user_model()
self.owner = User.objects.create_user(
email="owner@test.com", password="testpass123"
)
self.shared_user = User.objects.create_user(
email="shared@test.com", password="testpass123"
)
self.stranger = User.objects.create_user(
email="stranger@test.com", password="testpass123"
)
self.currency = Currency.objects.create(
code="USD", name="US Dollar", decimal_places=2
)
self.private_strategy = self._strategy("Private", visibility="private")
self.public_strategy = self._strategy("Public", visibility="public")
self.shared_strategy = self._strategy("Shared", visibility="private")
self.shared_strategy.shared_with.add(self.shared_user)
self.private_entry = self._entry(self.private_strategy)
self.public_entry = self._entry(self.public_strategy)
self.shared_entry = self._entry(self.shared_strategy)
def _strategy(self, name, visibility):
return DCAStrategy.all_objects.create(
name=name,
owner=self.owner,
visibility=visibility,
target_currency=self.currency,
payment_currency=self.currency,
)
def _entry(self, strategy):
return DCAEntry.objects.create(
strategy=strategy,
date=date(2025, 1, 1),
amount_paid=Decimal("100"),
amount_received=Decimal("1"),
)
# ------------------------------------------------------------------
# entries on an invisible strategy: must not even confirm they exist
# ------------------------------------------------------------------
def test_stranger_cannot_delete_entry_on_private_strategy(self):
self.client.force_login(self.stranger)
response = self.client.delete(
reverse(
"dca_entry_delete",
kwargs={
"strategy_id": self.private_strategy.id,
"entry_id": self.private_entry.id,
},
),
**HTMX,
)
self.assertEqual(response.status_code, 404)
self.assertTrue(DCAEntry.objects.filter(pk=self.private_entry.pk).exists())
def test_stranger_cannot_open_entry_edit_form_on_private_strategy(self):
self.client.force_login(self.stranger)
response = self.client.get(
reverse(
"dca_entry_edit",
kwargs={
"strategy_id": self.private_strategy.id,
"entry_id": self.private_entry.id,
},
),
**HTMX,
)
self.assertEqual(response.status_code, 404)
def test_stranger_cannot_edit_entry_on_private_strategy(self):
self.client.force_login(self.stranger)
response = self.client.post(
reverse(
"dca_entry_edit",
kwargs={
"strategy_id": self.private_strategy.id,
"entry_id": self.private_entry.id,
},
),
data={
"date": "2030-01-01",
"amount_paid": "999",
"amount_received": "999",
},
**HTMX,
)
self.assertEqual(response.status_code, 404)
self.private_entry.refresh_from_db()
self.assertEqual(self.private_entry.amount_paid, Decimal("100"))
# ------------------------------------------------------------------
# entries on a visible-but-unowned strategy: 403, not 404
# ------------------------------------------------------------------
def test_stranger_cannot_delete_entry_on_public_strategy(self):
self.client.force_login(self.stranger)
response = self.client.delete(
reverse(
"dca_entry_delete",
kwargs={
"strategy_id": self.public_strategy.id,
"entry_id": self.public_entry.id,
},
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.assertTrue(DCAEntry.objects.filter(pk=self.public_entry.pk).exists())
def test_shared_user_cannot_add_entry_to_shared_strategy(self):
self.client.force_login(self.shared_user)
response = self.client.post(
reverse("dca_entry_add", kwargs={"strategy_id": self.shared_strategy.id}),
data={
"date": "2030-01-01",
"amount_paid": "5",
"amount_received": "5",
},
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.assertEqual(self.shared_strategy.entries.count(), 1)
def test_owner_can_still_manage_own_entries(self):
self.client.force_login(self.owner)
response = self.client.delete(
reverse(
"dca_entry_delete",
kwargs={
"strategy_id": self.private_strategy.id,
"entry_id": self.private_entry.id,
},
),
**HTMX,
)
self.assertEqual(response.status_code, 204)
self.assertFalse(DCAEntry.objects.filter(pk=self.private_entry.pk).exists())
# ------------------------------------------------------------------
# reads stay open to shared users
# ------------------------------------------------------------------
def test_shared_user_can_still_view_strategy_detail(self):
self.client.force_login(self.shared_user)
response = self.client.get(
reverse(
"dca_strategy_detail", kwargs={"strategy_id": self.shared_strategy.id}
),
**HTMX,
)
self.assertEqual(response.status_code, 200)
# ------------------------------------------------------------------
# strategy delete: the same inversion the rules views had
# ------------------------------------------------------------------
def test_stranger_cannot_delete_public_strategy(self):
self.client.force_login(self.stranger)
response = self.client.delete(
reverse(
"dca_strategy_delete", kwargs={"strategy_id": self.public_strategy.id}
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.assertTrue(
DCAStrategy.all_objects.filter(pk=self.public_strategy.pk).exists()
)
def test_shared_user_deleting_only_revokes_their_own_access(self):
self.client.force_login(self.shared_user)
response = self.client.delete(
reverse(
"dca_strategy_delete", kwargs={"strategy_id": self.shared_strategy.id}
),
**HTMX,
)
self.assertEqual(response.status_code, 204)
self.assertTrue(
DCAStrategy.all_objects.filter(pk=self.shared_strategy.pk).exists()
)
self.assertNotIn(self.shared_user, self.shared_strategy.shared_with.all())
def test_owner_can_delete_own_strategy(self):
self.client.force_login(self.owner)
response = self.client.delete(
reverse(
"dca_strategy_delete", kwargs={"strategy_id": self.public_strategy.id}
),
**HTMX,
)
self.assertEqual(response.status_code, 204)
self.assertFalse(
DCAStrategy.all_objects.filter(pk=self.public_strategy.pk).exists()
)
+49 -36
View File
@@ -1,13 +1,19 @@
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.db.models import Sum, Avg from django.db.models import Sum, Avg
from django.db.models.functions import TruncMonth from django.db.models.functions import TruncMonth
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from apps.common.decorators.htmx import only_htmx from apps.common.decorators.htmx import only_htmx
from apps.common.functions.permissions import (
EDIT,
READ,
get_shared_object_or_error,
)
from apps.dca.forms import DCAEntryForm, DCAStrategyForm from apps.dca.forms import DCAEntryForm, DCAStrategyForm
from apps.dca.models import DCAStrategy, DCAEntry from apps.dca.models import DCAStrategy, DCAEntry
from apps.common.models import SharedObject from apps.common.models import SharedObject
@@ -56,17 +62,9 @@ def strategy_add(request):
@only_htmx @only_htmx
@login_required @login_required
def strategy_edit(request, strategy_id): def strategy_edit(request, strategy_id):
dca_strategy = get_object_or_404(DCAStrategy, id=strategy_id) dca_strategy = get_shared_object_or_error(
DCAStrategy, request, id=strategy_id, level=EDIT
if dca_strategy.owner and dca_strategy.owner != request.user: )
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = DCAStrategyForm(request.POST, instance=dca_strategy) form = DCAStrategyForm(request.POST, instance=dca_strategy)
@@ -94,17 +92,20 @@ def strategy_edit(request, strategy_id):
@login_required @login_required
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def strategy_delete(request, strategy_id): def strategy_delete(request, strategy_id):
dca_strategy = get_object_or_404(DCAStrategy, id=strategy_id) dca_strategy = get_shared_object_or_error(
DCAStrategy, request, id=strategy_id, level=READ
)
if ( if dca_strategy.is_editable_by(request.user):
dca_strategy.owner != request.user dca_strategy.delete()
and request.user in dca_strategy.shared_with.all() messages.success(request, _("DCA strategy deleted successfully"))
): elif dca_strategy.shared_with.filter(pk=request.user.pk).exists():
# Someone else's object shared with us: we can drop our own access
# to it, but never delete it.
dca_strategy.shared_with.remove(request.user) dca_strategy.shared_with.remove(request.user)
messages.success(request, _("Item no longer shared with you")) messages.success(request, _("Item no longer shared with you"))
else: else:
dca_strategy.delete() raise PermissionDenied
messages.success(request, _("DCA strategy deleted successfully"))
return HttpResponse( return HttpResponse(
status=204, status=204,
@@ -118,7 +119,9 @@ def strategy_delete(request, strategy_id):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def strategy_take_ownership(request, strategy_id): def strategy_take_ownership(request, strategy_id):
dca_strategy = get_object_or_404(DCAStrategy, id=strategy_id) dca_strategy = get_shared_object_or_error(
DCAStrategy, request, id=strategy_id, level=EDIT
)
if not dca_strategy.owner: if not dca_strategy.owner:
dca_strategy.owner = request.user dca_strategy.owner = request.user
@@ -139,17 +142,7 @@ def strategy_take_ownership(request, strategy_id):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def strategy_share(request, pk): def strategy_share(request, pk):
obj = get_object_or_404(DCAStrategy, id=pk) obj = get_shared_object_or_error(DCAStrategy, request, id=pk, level=EDIT)
if obj.owner and obj.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = SharedObjectForm(request.POST, instance=obj, user=request.user) form = SharedObjectForm(request.POST, instance=obj, user=request.user)
@@ -175,7 +168,9 @@ def strategy_share(request, pk):
@login_required @login_required
def strategy_detail_index(request, strategy_id): def strategy_detail_index(request, strategy_id):
strategy = get_object_or_404(DCAStrategy, id=strategy_id) strategy = get_shared_object_or_error(
DCAStrategy, request, id=strategy_id, level=READ
)
return render( return render(
request, request,
@@ -187,7 +182,9 @@ def strategy_detail_index(request, strategy_id):
@only_htmx @only_htmx
@login_required @login_required
def strategy_detail(request, strategy_id): def strategy_detail(request, strategy_id):
strategy = get_object_or_404(DCAStrategy, id=strategy_id) strategy = get_shared_object_or_error(
DCAStrategy, request, id=strategy_id, level=READ
)
entries = strategy.entries.all() entries = strategy.entries.all()
# Calculate monthly aggregates # Calculate monthly aggregates
@@ -229,7 +226,9 @@ def strategy_detail(request, strategy_id):
@only_htmx @only_htmx
@login_required @login_required
def strategy_entry_add(request, strategy_id): def strategy_entry_add(request, strategy_id):
strategy = get_object_or_404(DCAStrategy, id=strategy_id) strategy = get_shared_object_or_error(
DCAStrategy, request, id=strategy_id, level=EDIT
)
if request.method == "POST": if request.method == "POST":
form = DCAEntryForm(request.POST, strategy=strategy) form = DCAEntryForm(request.POST, strategy=strategy)
if form.is_valid(): if form.is_valid():
@@ -255,7 +254,14 @@ def strategy_entry_add(request, strategy_id):
@only_htmx @only_htmx
@login_required @login_required
def strategy_entry_edit(request, strategy_id, entry_id): def strategy_entry_edit(request, strategy_id, entry_id):
dca_entry = get_object_or_404(DCAEntry, id=entry_id, strategy__id=strategy_id) dca_entry = get_shared_object_or_error(
DCAEntry,
request,
id=entry_id,
strategy__id=strategy_id,
level=EDIT,
via="strategy",
)
if request.method == "POST": if request.method == "POST":
form = DCAEntryForm(request.POST, instance=dca_entry) form = DCAEntryForm(request.POST, instance=dca_entry)
@@ -283,7 +289,14 @@ def strategy_entry_edit(request, strategy_id, entry_id):
@login_required @login_required
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def strategy_entry_delete(request, entry_id, strategy_id): def strategy_entry_delete(request, entry_id, strategy_id):
dca_entry = get_object_or_404(DCAEntry, id=entry_id, strategy__id=strategy_id) dca_entry = get_shared_object_or_error(
DCAEntry,
request,
id=entry_id,
strategy__id=strategy_id,
level=EDIT,
via="strategy",
)
dca_entry.delete() dca_entry.delete()
+3 -1
View File
@@ -14,7 +14,7 @@ from apps.monthly_overview.utils.daily_spending_allowance import (
calculate_daily_allowance_currency, calculate_daily_allowance_currency,
) )
from apps.transactions.filters import TransactionsFilter from apps.transactions.filters import TransactionsFilter
from apps.transactions.models import Transaction from apps.transactions.models import FilterPreset, Transaction
from apps.transactions.utils.calculations import ( from apps.transactions.utils.calculations import (
calculate_currency_totals, calculate_currency_totals,
calculate_percentage_distribution, calculate_percentage_distribution,
@@ -58,6 +58,8 @@ def monthly_overview(request, month: int, year: int):
"previous_month": previous_month, "previous_month": previous_month,
"previous_year": previous_year, "previous_year": previous_year,
"filter": f, "filter": f,
"filter_is_active": f.has_active_filters,
"filter_presets": FilterPreset.objects.filter(owner=request.user),
"order": order, "order": order,
"summary_tab": summary_tab, "summary_tab": summary_tab,
}, },
@@ -0,0 +1,473 @@
"""Object-level authorization tests for the transaction-rule endpoints.
Regression coverage for GHSA-83g9-vjqf-2j5q: SharedObjectManager scopes rules to
what a user may *see*, which included other people's public and shared-with-them
rules. Several mutating endpoints treated that visibility as permission to write.
"""
from django.contrib.auth import get_user_model
from django.test import TestCase, override_settings
from django.urls import reverse
from apps.rules.models import (
TransactionRule,
TransactionRuleAction,
UpdateOrCreateTransactionRuleAction,
)
HTMX = {"HTTP_HX_REQUEST": "true"}
@override_settings(
STORAGES={
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"
},
},
WHITENOISE_AUTOREFRESH=True,
DEMO=False,
)
class TransactionRuleObjectPermissionTests(TestCase):
def setUp(self):
User = get_user_model()
self.owner = User.objects.create_user(
email="owner@test.com", password="testpass123"
)
self.shared_user = User.objects.create_user(
email="shared@test.com", password="testpass123"
)
self.stranger = User.objects.create_user(
email="stranger@test.com", password="testpass123"
)
# Public: visible to everyone through SharedObjectManager.
self.public_rule = TransactionRule.all_objects.create(
name="Public rule",
trigger="True",
owner=self.owner,
visibility="public",
active=True,
)
# Private but shared with shared_user: visible to them, not to stranger.
self.shared_rule = TransactionRule.all_objects.create(
name="Shared rule",
trigger="True",
owner=self.owner,
visibility="private",
active=True,
)
self.shared_rule.shared_with.add(self.shared_user)
# Private and unshared: invisible to everyone but the owner.
self.private_rule = TransactionRule.all_objects.create(
name="Private rule",
trigger="True",
owner=self.owner,
visibility="private",
active=True,
)
self.public_action = TransactionRuleAction.objects.create(
rule=self.public_rule, field="notes", value="owned by owner"
)
self.private_action = TransactionRuleAction.objects.create(
rule=self.private_rule, field="notes", value="owned by owner"
)
self.public_linked_action = UpdateOrCreateTransactionRuleAction.objects.create(
rule=self.public_rule
)
self.private_linked_action = UpdateOrCreateTransactionRuleAction.objects.create(
rule=self.private_rule
)
def login(self, user):
self.client.force_login(user)
# ------------------------------------------------------------------
# toggle-active
# ------------------------------------------------------------------
def test_stranger_cannot_toggle_public_rule(self):
self.login(self.stranger)
response = self.client.get(
reverse(
"transaction_rule_toggle_activity",
kwargs={"transaction_rule_id": self.public_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.public_rule.refresh_from_db()
self.assertTrue(self.public_rule.active)
def test_shared_user_cannot_toggle_shared_rule(self):
self.login(self.shared_user)
response = self.client.get(
reverse(
"transaction_rule_toggle_activity",
kwargs={"transaction_rule_id": self.shared_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.shared_rule.refresh_from_db()
self.assertTrue(self.shared_rule.active)
def test_owner_can_toggle_own_rule(self):
self.login(self.owner)
response = self.client.get(
reverse(
"transaction_rule_toggle_activity",
kwargs={"transaction_rule_id": self.public_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 204)
self.public_rule.refresh_from_db()
self.assertFalse(self.public_rule.active)
# ------------------------------------------------------------------
# rule actions
# ------------------------------------------------------------------
def test_stranger_cannot_add_action_to_public_rule(self):
self.login(self.stranger)
response = self.client.post(
reverse(
"transaction_rule_action_add",
kwargs={"transaction_rule_id": self.public_rule.id},
),
data={"field": "notes", "value": "injected", "order": 0},
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.assertFalse(
TransactionRuleAction.objects.filter(value="injected").exists()
)
def test_stranger_cannot_edit_action_on_public_rule(self):
self.login(self.stranger)
response = self.client.post(
reverse(
"transaction_rule_action_edit",
kwargs={"transaction_rule_action_id": self.public_action.id},
),
data={"field": "notes", "value": "rewritten", "order": 0},
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.public_action.refresh_from_db()
self.assertEqual(self.public_action.value, "owned by owner")
def test_stranger_cannot_delete_action_on_public_rule(self):
self.login(self.stranger)
response = self.client.delete(
reverse(
"transaction_rule_action_delete",
kwargs={"transaction_rule_action_id": self.public_action.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.assertTrue(
TransactionRuleAction.objects.filter(pk=self.public_action.pk).exists()
)
def test_stranger_cannot_delete_action_on_invisible_rule(self):
"""The child manager is unscoped, so the id is reachable by guessing.
The parent rule is invisible to the stranger, so the response must be a
404 rather than a 403 that confirms the action exists.
"""
self.login(self.stranger)
response = self.client.delete(
reverse(
"transaction_rule_action_delete",
kwargs={"transaction_rule_action_id": self.private_action.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 404)
self.assertTrue(
TransactionRuleAction.objects.filter(pk=self.private_action.pk).exists()
)
def test_owner_can_delete_own_action(self):
self.login(self.owner)
response = self.client.delete(
reverse(
"transaction_rule_action_delete",
kwargs={"transaction_rule_action_id": self.public_action.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 204)
self.assertFalse(
TransactionRuleAction.objects.filter(pk=self.public_action.pk).exists()
)
# ------------------------------------------------------------------
# update-or-create rule actions
# ------------------------------------------------------------------
def test_stranger_cannot_add_linked_action_to_public_rule(self):
self.login(self.stranger)
response = self.client.post(
reverse(
"update_or_create_transaction_rule_action_add",
kwargs={"transaction_rule_id": self.public_rule.id},
),
data={},
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.assertEqual(
UpdateOrCreateTransactionRuleAction.objects.filter(
rule=self.public_rule
).count(),
1,
)
def test_stranger_cannot_edit_linked_action_on_public_rule(self):
self.login(self.stranger)
response = self.client.post(
reverse(
"update_or_create_transaction_rule_action_edit",
kwargs={"pk": self.public_linked_action.id},
),
data={"filter": "injected"},
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.public_linked_action.refresh_from_db()
self.assertEqual(self.public_linked_action.filter, "")
def test_stranger_cannot_delete_linked_action_on_public_rule(self):
self.login(self.stranger)
response = self.client.delete(
reverse(
"update_or_create_transaction_rule_action_delete",
kwargs={"pk": self.public_linked_action.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.assertTrue(
UpdateOrCreateTransactionRuleAction.objects.filter(
pk=self.public_linked_action.pk
).exists()
)
def test_stranger_cannot_delete_linked_action_on_invisible_rule(self):
self.login(self.stranger)
response = self.client.delete(
reverse(
"update_or_create_transaction_rule_action_delete",
kwargs={"pk": self.private_linked_action.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 404)
self.assertTrue(
UpdateOrCreateTransactionRuleAction.objects.filter(
pk=self.private_linked_action.pk
).exists()
)
# ------------------------------------------------------------------
# edit / share / dry-run
# ------------------------------------------------------------------
def test_stranger_cannot_edit_public_rule(self):
self.login(self.stranger)
response = self.client.post(
reverse(
"transaction_rule_edit",
kwargs={"transaction_rule_id": self.public_rule.id},
),
data={"name": "hijacked", "trigger": "True", "order": 0},
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.public_rule.refresh_from_db()
self.assertEqual(self.public_rule.name, "Public rule")
def test_stranger_cannot_change_sharing_of_public_rule(self):
self.login(self.stranger)
response = self.client.post(
reverse(
"transaction_rule_share_settings", kwargs={"pk": self.public_rule.id}
),
data={"visibility": "private"},
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.public_rule.refresh_from_db()
self.assertEqual(self.public_rule.visibility, "public")
def test_stranger_cannot_dry_run_public_rule(self):
self.login(self.stranger)
response = self.client.get(
reverse(
"transaction_rule_dry_run_created", kwargs={"pk": self.public_rule.id}
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
# ------------------------------------------------------------------
# delete: sharing may be revoked, ownership may not be overridden
# ------------------------------------------------------------------
def test_stranger_cannot_delete_public_rule(self):
"""The original condition fell through to delete() for public rules."""
self.login(self.stranger)
response = self.client.delete(
reverse(
"transaction_rule_delete",
kwargs={"transaction_rule_id": self.public_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.assertTrue(
TransactionRule.all_objects.filter(pk=self.public_rule.pk).exists()
)
def test_shared_user_deleting_only_revokes_their_own_access(self):
self.login(self.shared_user)
response = self.client.delete(
reverse(
"transaction_rule_delete",
kwargs={"transaction_rule_id": self.shared_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 204)
self.assertTrue(
TransactionRule.all_objects.filter(pk=self.shared_rule.pk).exists()
)
self.assertNotIn(self.shared_user, self.shared_rule.shared_with.all())
def test_owner_can_delete_own_rule(self):
self.login(self.owner)
response = self.client.delete(
reverse(
"transaction_rule_delete",
kwargs={"transaction_rule_id": self.public_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 204)
self.assertFalse(
TransactionRule.all_objects.filter(pk=self.public_rule.pk).exists()
)
# ------------------------------------------------------------------
# reads must keep working for shared users
# ------------------------------------------------------------------
def test_shared_user_can_still_view_shared_rule(self):
self.login(self.shared_user)
response = self.client.get(
reverse(
"transaction_rule_view",
kwargs={"transaction_rule_id": self.shared_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 200)
def test_stranger_can_view_public_rule(self):
self.login(self.stranger)
response = self.client.get(
reverse(
"transaction_rule_view",
kwargs={"transaction_rule_id": self.public_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 200)
def test_stranger_cannot_view_private_rule(self):
self.login(self.stranger)
response = self.client.get(
reverse(
"transaction_rule_view",
kwargs={"transaction_rule_id": self.private_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 404)
# ------------------------------------------------------------------
# take ownership stays available for unowned rules only
# ------------------------------------------------------------------
def test_take_ownership_of_unowned_rule_still_works(self):
unowned = TransactionRule.all_objects.create(
name="Legacy rule", trigger="True", owner=None, visibility="private"
)
self.login(self.stranger)
response = self.client.get(
reverse(
"transaction_rule_take_ownership",
kwargs={"transaction_rule_id": unowned.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 204)
unowned.refresh_from_db()
self.assertEqual(unowned.owner, self.stranger)
def test_cannot_take_ownership_of_someone_elses_public_rule(self):
self.login(self.stranger)
response = self.client.get(
reverse(
"transaction_rule_take_ownership",
kwargs={"transaction_rule_id": self.public_rule.id},
),
**HTMX,
)
self.assertEqual(response.status_code, 403)
self.public_rule.refresh_from_db()
self.assertEqual(self.public_rule.owner, self.owner)
+58 -47
View File
@@ -4,13 +4,19 @@ from copy import deepcopy
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.db import transaction from django.db import transaction
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404, redirect from django.shortcuts import render, redirect
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from apps.common.decorators.htmx import only_htmx from apps.common.decorators.htmx import only_htmx
from apps.common.functions.permissions import (
EDIT,
READ,
get_shared_object_or_error,
)
from apps.rules.forms import ( from apps.rules.forms import (
TransactionRuleForm, TransactionRuleForm,
TransactionRuleActionForm, TransactionRuleActionForm,
@@ -62,7 +68,9 @@ def rules_list(request):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def transaction_rule_toggle_activity(request, transaction_rule_id, **kwargs): def transaction_rule_toggle_activity(request, transaction_rule_id, **kwargs):
transaction_rule = get_object_or_404(TransactionRule, id=transaction_rule_id) transaction_rule = get_shared_object_or_error(
TransactionRule, request, id=transaction_rule_id, level=EDIT
)
current_active = transaction_rule.active current_active = transaction_rule.active
transaction_rule.active = not current_active transaction_rule.active = not current_active
transaction_rule.save(update_fields=["active"]) transaction_rule.save(update_fields=["active"])
@@ -112,17 +120,9 @@ def transaction_rule_add(request, **kwargs):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def transaction_rule_edit(request, transaction_rule_id): def transaction_rule_edit(request, transaction_rule_id):
transaction_rule = get_object_or_404(TransactionRule, id=transaction_rule_id) transaction_rule = get_shared_object_or_error(
TransactionRule, request, id=transaction_rule_id, level=EDIT
if transaction_rule.owner and transaction_rule.owner != request.user: )
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = TransactionRuleForm(request.POST, instance=transaction_rule) form = TransactionRuleForm(request.POST, instance=transaction_rule)
@@ -151,7 +151,9 @@ def transaction_rule_edit(request, transaction_rule_id):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def transaction_rule_view(request, transaction_rule_id): def transaction_rule_view(request, transaction_rule_id):
transaction_rule = get_object_or_404(TransactionRule, id=transaction_rule_id) transaction_rule = get_shared_object_or_error(
TransactionRule, request, id=transaction_rule_id, level=READ
)
edit_actions = transaction_rule.transaction_actions.all() edit_actions = transaction_rule.transaction_actions.all()
update_or_create_actions = ( update_or_create_actions = (
@@ -175,17 +177,20 @@ def transaction_rule_view(request, transaction_rule_id):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def transaction_rule_delete(request, transaction_rule_id): def transaction_rule_delete(request, transaction_rule_id):
transaction_rule = get_object_or_404(TransactionRule, id=transaction_rule_id) transaction_rule = get_shared_object_or_error(
TransactionRule, request, id=transaction_rule_id, level=READ
)
if ( if transaction_rule.is_editable_by(request.user):
transaction_rule.owner != request.user transaction_rule.delete()
and request.user in transaction_rule.shared_with.all() messages.success(request, _("Rule deleted successfully"))
): elif transaction_rule.shared_with.filter(pk=request.user.pk).exists():
# Someone else's rule shared with us: we can drop our own access to it,
# but never delete it.
transaction_rule.shared_with.remove(request.user) transaction_rule.shared_with.remove(request.user)
messages.success(request, _("Item no longer shared with you")) messages.success(request, _("Item no longer shared with you"))
else: else:
transaction_rule.delete() raise PermissionDenied
messages.success(request, _("Rule deleted successfully"))
return HttpResponse( return HttpResponse(
status=204, status=204,
@@ -200,7 +205,9 @@ def transaction_rule_delete(request, transaction_rule_id):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def transaction_rule_take_ownership(request, transaction_rule_id): def transaction_rule_take_ownership(request, transaction_rule_id):
transaction_rule = get_object_or_404(TransactionRule, id=transaction_rule_id) transaction_rule = get_shared_object_or_error(
TransactionRule, request, id=transaction_rule_id, level=EDIT
)
if not transaction_rule.owner: if not transaction_rule.owner:
transaction_rule.owner = request.user transaction_rule.owner = request.user
@@ -222,17 +229,7 @@ def transaction_rule_take_ownership(request, transaction_rule_id):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def transaction_rule_share(request, pk): def transaction_rule_share(request, pk):
obj = get_object_or_404(TransactionRule, id=pk) obj = get_shared_object_or_error(TransactionRule, request, id=pk, level=EDIT)
if obj.owner and obj.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = SharedObjectForm(request.POST, instance=obj, user=request.user) form = SharedObjectForm(request.POST, instance=obj, user=request.user)
@@ -261,7 +258,9 @@ def transaction_rule_share(request, pk):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def transaction_rule_action_add(request, transaction_rule_id): def transaction_rule_action_add(request, transaction_rule_id):
transaction_rule = get_object_or_404(TransactionRule, id=transaction_rule_id) transaction_rule = get_shared_object_or_error(
TransactionRule, request, id=transaction_rule_id, level=EDIT
)
if request.method == "POST": if request.method == "POST":
form = TransactionRuleActionForm(request.POST, rule=transaction_rule) form = TransactionRuleActionForm(request.POST, rule=transaction_rule)
@@ -289,12 +288,14 @@ def transaction_rule_action_add(request, transaction_rule_id):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def transaction_rule_action_edit(request, transaction_rule_action_id): def transaction_rule_action_edit(request, transaction_rule_action_id):
transaction_rule_action = get_object_or_404( transaction_rule_action = get_shared_object_or_error(
TransactionRuleAction, id=transaction_rule_action_id TransactionRuleAction,
) request,
transaction_rule = get_object_or_404( id=transaction_rule_action_id,
TransactionRule, id=transaction_rule_action.rule.id level=EDIT,
via="rule",
) )
transaction_rule = transaction_rule_action.rule
if request.method == "POST": if request.method == "POST":
form = TransactionRuleActionForm( form = TransactionRuleActionForm(
@@ -327,8 +328,12 @@ def transaction_rule_action_edit(request, transaction_rule_action_id):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def transaction_rule_action_delete(request, transaction_rule_action_id): def transaction_rule_action_delete(request, transaction_rule_action_id):
transaction_rule_action = get_object_or_404( transaction_rule_action = get_shared_object_or_error(
TransactionRuleAction, id=transaction_rule_action_id TransactionRuleAction,
request,
id=transaction_rule_action_id,
level=EDIT,
via="rule",
) )
transaction_rule_action.delete() transaction_rule_action.delete()
@@ -348,7 +353,9 @@ def transaction_rule_action_delete(request, transaction_rule_action_id):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def update_or_create_transaction_rule_action_add(request, transaction_rule_id): def update_or_create_transaction_rule_action_add(request, transaction_rule_id):
transaction_rule = get_object_or_404(TransactionRule, id=transaction_rule_id) transaction_rule = get_shared_object_or_error(
TransactionRule, request, id=transaction_rule_id, level=EDIT
)
if request.method == "POST": if request.method == "POST":
form = UpdateOrCreateTransactionRuleActionForm( form = UpdateOrCreateTransactionRuleActionForm(
@@ -380,7 +387,9 @@ def update_or_create_transaction_rule_action_add(request, transaction_rule_id):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def update_or_create_transaction_rule_action_edit(request, pk): def update_or_create_transaction_rule_action_edit(request, pk):
linked_action = get_object_or_404(UpdateOrCreateTransactionRuleAction, id=pk) linked_action = get_shared_object_or_error(
UpdateOrCreateTransactionRuleAction, request, id=pk, level=EDIT, via="rule"
)
transaction_rule = linked_action.rule transaction_rule = linked_action.rule
if request.method == "POST": if request.method == "POST":
@@ -415,7 +424,9 @@ def update_or_create_transaction_rule_action_edit(request, pk):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def update_or_create_transaction_rule_action_delete(request, pk): def update_or_create_transaction_rule_action_delete(request, pk):
linked_action = get_object_or_404(UpdateOrCreateTransactionRuleAction, id=pk) linked_action = get_shared_object_or_error(
UpdateOrCreateTransactionRuleAction, request, id=pk, level=EDIT, via="rule"
)
linked_action.delete() linked_action.delete()
@@ -436,7 +447,7 @@ def update_or_create_transaction_rule_action_delete(request, pk):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def dry_run_rule_created(request, pk): def dry_run_rule_created(request, pk):
rule = get_object_or_404(TransactionRule, id=pk) rule = get_shared_object_or_error(TransactionRule, request, id=pk, level=EDIT)
logs = None logs = None
results = None results = None
@@ -481,7 +492,7 @@ def dry_run_rule_created(request, pk):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def dry_run_rule_deleted(request, pk): def dry_run_rule_deleted(request, pk):
rule = get_object_or_404(TransactionRule, id=pk) rule = get_shared_object_or_error(TransactionRule, request, id=pk, level=EDIT)
logs = None logs = None
results = None results = None
@@ -526,7 +537,7 @@ def dry_run_rule_deleted(request, pk):
@disabled_on_demo @disabled_on_demo
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def dry_run_rule_updated(request, pk): def dry_run_rule_updated(request, pk):
rule = get_object_or_404(TransactionRule, id=pk) rule = get_shared_object_or_error(TransactionRule, request, id=pk, level=EDIT)
logs = None logs = None
results = None results = None
+23
View File
@@ -41,6 +41,12 @@ class MonthYearFilter(Filter):
class TransactionsFilter(django_filters.FilterSet): class TransactionsFilter(django_filters.FilterSet):
default_filter_values = {
"type": {"IN", "EX"},
"is_paid": {"1", "0"},
"mute_status": {"active", "muted"},
}
description = django_filters.CharFilter( description = django_filters.CharFilter(
label=_("Content"), label=_("Content"),
method=content_filter, method=content_filter,
@@ -217,6 +223,23 @@ class TransactionsFilter(django_filters.FilterSet):
] ]
self.form.fields["entities"].choices = custom_entity_choices + entity_choices self.form.fields["entities"].choices = custom_entity_choices + entity_choices
@property
def has_active_filters(self):
for name in self.base_filters:
if hasattr(self.form.data, "getlist"):
values = self.form.data.getlist(name)
else:
value = self.form.data.get(name)
values = value if isinstance(value, (list, tuple)) else [value]
values = [str(value) for value in values if value not in (None, "")]
if not values:
continue
if set(values) == self.default_filter_values.get(name):
continue
return True
return False
@staticmethod @staticmethod
def filter_category(queryset, name, value): def filter_category(queryset, name, value):
if not value: if not value:
@@ -0,0 +1,38 @@
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("transactions", "0049_transactionattachment"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name="FilterPreset",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=100)),
("parameters", models.JSONField(default=dict)),
(
"owner",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="filter_presets",
to=settings.AUTH_USER_MODEL,
),
),
],
options={"ordering": ["name", "id"]},
),
]
+18 -1
View File
@@ -30,12 +30,27 @@ from django.utils.translation import gettext_lazy as _
logger = logging.getLogger() logger = logging.getLogger()
transaction_created = Signal() transaction_created = Signal()
transaction_updated = Signal() transaction_updated = Signal()
transaction_deleted = Signal() transaction_deleted = Signal()
class FilterPreset(models.Model):
owner = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name="filter_presets",
)
name = models.CharField(max_length=100)
parameters = models.JSONField(default=dict)
class Meta:
ordering = ["name", "id"]
def __str__(self):
return self.name
def transaction_attachment_path(instance, filename): def transaction_attachment_path(instance, filename):
extension = Path(filename).suffix extension = Path(filename).suffix
return f"transaction_attachments/{instance.transaction_id}/{instance.id}{extension}" return f"transaction_attachments/{instance.transaction_id}/{instance.id}{extension}"
@@ -535,6 +550,7 @@ class Transaction(OwnedObject):
return new_obj return new_obj
class TransactionAttachment(models.Model): class TransactionAttachment(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
transaction = models.ForeignKey( transaction = models.ForeignKey(
@@ -590,6 +606,7 @@ def delete_transaction_attachment_file(sender, instance, **kwargs):
if storage.exists(instance.file.name): if storage.exists(instance.file.name):
storage.delete(instance.file.name) storage.delete(instance.file.name)
class InstallmentPlan(models.Model): class InstallmentPlan(models.Model):
class Recurrence(models.TextChoices): class Recurrence(models.TextChoices):
YEARLY = "yearly", _("Yearly") YEARLY = "yearly", _("Yearly")
@@ -0,0 +1,183 @@
from django.contrib.auth import get_user_model
from django.test import TestCase, override_settings
from django.urls import reverse
from apps.transactions.models import FilterPreset
@override_settings(
STORAGES={
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage"
},
},
WHITENOISE_AUTOREFRESH=True,
)
class FilterPresetViewTests(TestCase):
def setUp(self):
user_model = get_user_model()
self.user = user_model.objects.create_user(
email="preset-owner@example.com", password="testpass123"
)
self.other_user = user_model.objects.create_user(
email="other-user@example.com", password="testpass123"
)
self.client.force_login(self.user)
self.preset = FilterPreset.objects.create(
owner=self.user,
name="Unpaid",
parameters={"is_paid": ["0"], "type": ["IN", "EX"]},
)
def test_create_stores_only_transaction_filter_fields(self):
response = self.client.post(
reverse("filter_preset_create"),
{
"name": "Account X Unpaid",
"account": ["Account X"],
"is_paid": ["0"],
"order": "newer",
},
HTTP_HX_REQUEST="true",
)
preset = FilterPreset.objects.get(
owner=self.user, name="Account X Unpaid"
)
self.assertEqual(
preset.parameters,
{"account": ["Account X"], "is_paid": ["0"]},
)
self.assertContains(response, "Account X Unpaid")
def test_create_rejects_a_blank_name(self):
response = self.client.post(
reverse("filter_preset_create"),
{"name": " ", "is_paid": ["0"]},
HTTP_HX_REQUEST="true",
)
self.assertEqual(response.status_code, 400)
self.assertEqual(FilterPreset.objects.filter(owner=self.user).count(), 1)
def test_apply_returns_the_saved_filter_form_without_changing_the_url(self):
response = self.client.get(
reverse("filter_preset_apply", args=[self.preset.pk]),
HTTP_HX_REQUEST="true",
)
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'id="filter"')
self.assertEqual(response.context["filter"].data.getlist("is_paid"), ["0"])
self.assertEqual(
response.context["filter"].data.getlist("type"), ["IN", "EX"]
)
self.assertNotIn("HX-Push-Url", response.headers)
self.assertNotIn("HX-Replace-Url", response.headers)
self.assertIs(response.context.get("filter_is_active"), True)
self.assertContains(response, 'hx-swap-oob="outerHTML"')
self.assertEqual(
response.headers["HX-Trigger-After-Settle"],
"updated",
)
def test_clear_returns_the_default_filter_form_without_changing_the_url(self):
response = self.client.get(
"/transactions/filter/clear/",
HTTP_HX_REQUEST="true",
)
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'id="filter"')
self.assertEqual(
response.context["filter"].data.getlist("type"), ["IN", "EX"]
)
self.assertEqual(
response.context["filter"].data.getlist("is_paid"), ["1", "0"]
)
self.assertNotIn("HX-Push-Url", response.headers)
self.assertNotIn("HX-Replace-Url", response.headers)
self.assertIs(response.context.get("filter_is_active"), False)
self.assertContains(response, 'hx-swap-oob="outerHTML"')
self.assertEqual(
response.headers["HX-Trigger-After-Settle"],
"updated",
)
def test_other_users_cannot_apply_or_delete_a_preset(self):
self.client.force_login(self.other_user)
apply_response = self.client.get(
reverse("filter_preset_apply", args=[self.preset.pk]),
HTTP_HX_REQUEST="true",
)
delete_response = self.client.post(
reverse("filter_preset_delete", args=[self.preset.pk]),
HTTP_HX_REQUEST="true",
)
self.assertEqual(apply_response.status_code, 404)
self.assertEqual(delete_response.status_code, 404)
self.assertTrue(FilterPreset.objects.filter(pk=self.preset.pk).exists())
def test_delete_removes_the_current_users_preset(self):
response = self.client.post(
reverse("filter_preset_delete", args=[self.preset.pk]),
HTTP_HX_REQUEST="true",
)
self.assertEqual(response.status_code, 200)
self.assertFalse(FilterPreset.objects.filter(pk=self.preset.pk).exists())
self.assertNotContains(response, self.preset.name)
def test_all_transactions_page_only_offers_the_current_users_presets(self):
FilterPreset.objects.create(
owner=self.other_user,
name="Other User Preset",
parameters={"type": ["IN"]},
)
response = self.client.get(reverse("transactions_all_index"))
self.assertContains(response, self.preset.name)
self.assertNotContains(response, "Other User Preset")
self.assertContains(response, 'id="filter-presets"')
self.assertNotContains(response, 'href="./?')
self.assertContains(
response,
reverse("filter_preset_apply", args=[self.preset.pk]),
)
def test_all_transactions_page_marks_a_filtered_query_active(self):
response = self.client.get(
reverse("transactions_all_index"),
{"type": ["IN", "EX"], "is_paid": ["0"]},
)
self.assertIs(response.context["filter_is_active"], True)
def test_all_transactions_page_does_not_mark_default_query_active(self):
response = self.client.get(
reverse("transactions_all_index"),
{
"type": ["IN", "EX"],
"is_paid": ["1", "0"],
"mute_status": ["active", "muted"],
},
)
self.assertIs(response.context["filter_is_active"], False)
def test_monthly_page_renders_preset_controls(self):
other_preset = FilterPreset.objects.create(
owner=self.other_user,
name="Other Monthly Preset",
parameters={"type": ["IN"]},
)
response = self.client.get(reverse("monthly_overview", args=[8, 2026]))
self.assertContains(response, 'id="filter-presets"')
self.assertNotContains(response, 'href="./?')
self.assertContains(response, reverse("filter_preset_create"))
self.assertNotContains(response, other_preset.name)
+20
View File
@@ -6,6 +6,26 @@ urlpatterns = [
path( path(
"transactions/list/", views.transaction_all_list, name="transactions_all_list" "transactions/list/", views.transaction_all_list, name="transactions_all_list"
), ),
path(
"transactions/filter-presets/create/",
views.filter_preset_create,
name="filter_preset_create",
),
path(
"transactions/filter-presets/<int:preset_id>/apply/",
views.filter_preset_apply,
name="filter_preset_apply",
),
path(
"transactions/filter-presets/<int:preset_id>/delete/",
views.filter_preset_delete,
name="filter_preset_delete",
),
path(
"transactions/filter/clear/",
views.transaction_filter_clear,
name="transaction_filter_clear",
),
path( path(
"transactions/trash/", "transactions/trash/",
views.transactions_trash_can_index, views.transactions_trash_can_index,
+24 -28
View File
@@ -1,11 +1,17 @@
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from apps.common.decorators.htmx import only_htmx from apps.common.decorators.htmx import only_htmx
from apps.common.functions.permissions import (
EDIT,
READ,
get_shared_object_or_error,
)
from apps.transactions.forms import TransactionCategoryForm from apps.transactions.forms import TransactionCategoryForm
from apps.transactions.models import TransactionCategory from apps.transactions.models import TransactionCategory
from apps.common.models import SharedObject from apps.common.models import SharedObject
@@ -85,17 +91,9 @@ def category_add(request, **kwargs):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def category_edit(request, category_id): def category_edit(request, category_id):
category = get_object_or_404(TransactionCategory, id=category_id) category = get_shared_object_or_error(
TransactionCategory, request, id=category_id, level=EDIT
if category.owner and category.owner != request.user: )
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = TransactionCategoryForm(request.POST, instance=category) form = TransactionCategoryForm(request.POST, instance=category)
@@ -123,17 +121,7 @@ def category_edit(request, category_id):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def category_share(request, pk): def category_share(request, pk):
obj = get_object_or_404(TransactionCategory, id=pk) obj = get_shared_object_or_error(TransactionCategory, request, id=pk, level=EDIT)
if obj.owner and obj.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = SharedObjectForm(request.POST, instance=obj, user=request.user) form = SharedObjectForm(request.POST, instance=obj, user=request.user)
@@ -161,14 +149,20 @@ def category_share(request, pk):
@login_required @login_required
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def category_delete(request, category_id): def category_delete(request, category_id):
category = get_object_or_404(TransactionCategory, id=category_id) category = get_shared_object_or_error(
TransactionCategory, request, id=category_id, level=READ
)
if category.owner != request.user and request.user in category.shared_with.all(): if category.is_editable_by(request.user):
category.delete()
messages.success(request, _("Category deleted successfully"))
elif category.shared_with.filter(pk=request.user.pk).exists():
# Someone else's object shared with us: we can drop our own access
# to it, but never delete it.
category.shared_with.remove(request.user) category.shared_with.remove(request.user)
messages.success(request, _("Item no longer shared with you")) messages.success(request, _("Item no longer shared with you"))
else: else:
category.delete() raise PermissionDenied
messages.success(request, _("Category deleted successfully"))
return HttpResponse( return HttpResponse(
status=204, status=204,
@@ -182,7 +176,9 @@ def category_delete(request, category_id):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def category_take_ownership(request, category_id): def category_take_ownership(request, category_id):
category = get_object_or_404(TransactionCategory, id=category_id) category = get_shared_object_or_error(
TransactionCategory, request, id=category_id, level=EDIT
)
if not category.owner: if not category.owner:
category.owner = request.user category.owner = request.user
+24 -28
View File
@@ -1,11 +1,17 @@
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from apps.common.decorators.htmx import only_htmx from apps.common.decorators.htmx import only_htmx
from apps.common.functions.permissions import (
EDIT,
READ,
get_shared_object_or_error,
)
from apps.transactions.forms import TransactionEntityForm from apps.transactions.forms import TransactionEntityForm
from apps.transactions.models import TransactionEntity from apps.transactions.models import TransactionEntity
from apps.common.models import SharedObject from apps.common.models import SharedObject
@@ -85,17 +91,9 @@ def entity_add(request, **kwargs):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def entity_edit(request, entity_id): def entity_edit(request, entity_id):
entity = get_object_or_404(TransactionEntity, id=entity_id) entity = get_shared_object_or_error(
TransactionEntity, request, id=entity_id, level=EDIT
if entity.owner and entity.owner != request.user: )
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = TransactionEntityForm(request.POST, instance=entity) form = TransactionEntityForm(request.POST, instance=entity)
@@ -123,14 +121,20 @@ def entity_edit(request, entity_id):
@login_required @login_required
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def entity_delete(request, entity_id): def entity_delete(request, entity_id):
entity = get_object_or_404(TransactionEntity, id=entity_id) entity = get_shared_object_or_error(
TransactionEntity, request, id=entity_id, level=READ
)
if entity.owner != request.user and request.user in entity.shared_with.all(): if entity.is_editable_by(request.user):
entity.delete()
messages.success(request, _("Entity deleted successfully"))
elif entity.shared_with.filter(pk=request.user.pk).exists():
# Someone else's object shared with us: we can drop our own access
# to it, but never delete it.
entity.shared_with.remove(request.user) entity.shared_with.remove(request.user)
messages.success(request, _("Item no longer shared with you")) messages.success(request, _("Item no longer shared with you"))
else: else:
entity.delete() raise PermissionDenied
messages.success(request, _("Entity deleted successfully"))
return HttpResponse( return HttpResponse(
status=204, status=204,
@@ -144,7 +148,9 @@ def entity_delete(request, entity_id):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def entity_take_ownership(request, entity_id): def entity_take_ownership(request, entity_id):
entity = get_object_or_404(TransactionEntity, id=entity_id) entity = get_shared_object_or_error(
TransactionEntity, request, id=entity_id, level=EDIT
)
if not entity.owner: if not entity.owner:
entity.owner = request.user entity.owner = request.user
@@ -165,17 +171,7 @@ def entity_take_ownership(request, entity_id):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def entity_share(request, pk): def entity_share(request, pk):
obj = get_object_or_404(TransactionEntity, id=pk) obj = get_shared_object_or_error(TransactionEntity, request, id=pk, level=EDIT)
if obj.owner and obj.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = SharedObjectForm(request.POST, instance=obj, user=request.user) form = SharedObjectForm(request.POST, instance=obj, user=request.user)
+18 -28
View File
@@ -1,11 +1,17 @@
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from apps.common.decorators.htmx import only_htmx from apps.common.decorators.htmx import only_htmx
from apps.common.functions.permissions import (
EDIT,
READ,
get_shared_object_or_error,
)
from apps.transactions.forms import TransactionTagForm from apps.transactions.forms import TransactionTagForm
from apps.transactions.models import TransactionTag from apps.transactions.models import TransactionTag
from apps.common.models import SharedObject from apps.common.models import SharedObject
@@ -85,17 +91,7 @@ def tag_add(request, **kwargs):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def tag_edit(request, tag_id): def tag_edit(request, tag_id):
tag = get_object_or_404(TransactionTag, id=tag_id) tag = get_shared_object_or_error(TransactionTag, request, id=tag_id, level=EDIT)
if tag.owner and tag.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = TransactionTagForm(request.POST, instance=tag) form = TransactionTagForm(request.POST, instance=tag)
@@ -123,14 +119,18 @@ def tag_edit(request, tag_id):
@login_required @login_required
@require_http_methods(["DELETE"]) @require_http_methods(["DELETE"])
def tag_delete(request, tag_id): def tag_delete(request, tag_id):
tag = get_object_or_404(TransactionTag, id=tag_id) tag = get_shared_object_or_error(TransactionTag, request, id=tag_id, level=READ)
if tag.owner != request.user and request.user in tag.shared_with.all(): if tag.is_editable_by(request.user):
tag.delete()
messages.success(request, _("Tag deleted successfully"))
elif tag.shared_with.filter(pk=request.user.pk).exists():
# Someone else's object shared with us: we can drop our own access
# to it, but never delete it.
tag.shared_with.remove(request.user) tag.shared_with.remove(request.user)
messages.success(request, _("Item no longer shared with you")) messages.success(request, _("Item no longer shared with you"))
else: else:
tag.delete() raise PermissionDenied
messages.success(request, _("Tag deleted successfully"))
return HttpResponse( return HttpResponse(
status=204, status=204,
@@ -144,7 +144,7 @@ def tag_delete(request, tag_id):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def tag_take_ownership(request, tag_id): def tag_take_ownership(request, tag_id):
tag = get_object_or_404(TransactionTag, id=tag_id) tag = get_shared_object_or_error(TransactionTag, request, id=tag_id, level=EDIT)
if not tag.owner: if not tag.owner:
tag.owner = request.user tag.owner = request.user
@@ -165,17 +165,7 @@ def tag_take_ownership(request, tag_id):
@login_required @login_required
@require_http_methods(["GET", "POST"]) @require_http_methods(["GET", "POST"])
def tag_share(request, pk): def tag_share(request, pk):
obj = get_object_or_404(TransactionTag, id=pk) obj = get_shared_object_or_error(TransactionTag, request, id=pk, level=EDIT)
if obj.owner and obj.owner != request.user:
messages.error(request, _("Only the owner can edit this"))
return HttpResponse(
status=204,
headers={
"HX-Trigger": "updated, hide_offcanvas",
},
)
if request.method == "POST": if request.method == "POST":
form = SharedObjectForm(request.POST, instance=obj, user=request.user) form = SharedObjectForm(request.POST, instance=obj, user=request.user)
+88 -3
View File
@@ -11,7 +11,7 @@ from apps.transactions.forms import (
TransactionForm, TransactionForm,
TransferForm, TransferForm,
) )
from apps.transactions.models import Transaction, TransactionAttachment from apps.transactions.models import FilterPreset, Transaction, TransactionAttachment
from apps.transactions.utils.calculations import ( from apps.transactions.utils.calculations import (
calculate_account_totals, calculate_account_totals,
calculate_currency_totals, calculate_currency_totals,
@@ -23,7 +23,7 @@ from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator from django.core.paginator import Paginator
from django.db.models import Case, IntegerField, Q, Value, When from django.db.models import Case, IntegerField, Q, Value, When
from django.http import FileResponse, Http404, HttpResponse, JsonResponse from django.http import FileResponse, Http404, HttpResponse, JsonResponse, QueryDict
from django.shortcuts import get_object_or_404, render from django.shortcuts import get_object_or_404, render
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@@ -635,7 +635,92 @@ def transaction_all_index(request):
return render( return render(
request, request,
"transactions/pages/transactions.html", "transactions/pages/transactions.html",
{"filter": f, "order": order, "summary_tab": summary_tab}, {
"filter": f,
"filter_is_active": f.has_active_filters,
"filter_presets": FilterPreset.objects.filter(owner=request.user),
"order": order,
"summary_tab": summary_tab,
},
)
@only_htmx
@login_required
@require_http_methods(["POST"])
def filter_preset_create(request):
name = request.POST.get("name", "").strip()
if not name or len(name) > 100:
return HttpResponse(status=400)
parameters = {
key: request.POST.getlist(key)
for key in TransactionsFilter.base_filters
if key in request.POST
}
FilterPreset.objects.create(
owner=request.user,
name=name,
parameters=parameters,
)
return render(
request,
"transactions/fragments/filter_presets.html",
{"filter_presets": FilterPreset.objects.filter(owner=request.user)},
)
@only_htmx
@login_required
@require_http_methods(["GET"])
def filter_preset_apply(request, preset_id):
preset = get_object_or_404(FilterPreset, pk=preset_id, owner=request.user)
data = QueryDict(mutable=True)
for key, values in preset.parameters.items():
if key in TransactionsFilter.base_filters:
data.setlist(key, values)
transaction_filter = TransactionsFilter(data)
response = render(
request,
"transactions/fragments/filter_form.html",
{
"filter": transaction_filter,
"filter_is_active": transaction_filter.has_active_filters,
"swap_filter_indicator": True,
},
)
response.headers["HX-Trigger-After-Settle"] = "updated"
return response
@only_htmx
@login_required
@require_http_methods(["GET"])
def transaction_filter_clear(request):
transaction_filter = TransactionsFilter(QueryDict())
response = render(
request,
"transactions/fragments/filter_form.html",
{
"filter": transaction_filter,
"filter_is_active": False,
"swap_filter_indicator": True,
},
)
response.headers["HX-Trigger-After-Settle"] = "updated"
return response
@only_htmx
@login_required
@require_http_methods(["POST"])
def filter_preset_delete(request, preset_id):
get_object_or_404(FilterPreset, pk=preset_id, owner=request.user).delete()
return render(
request,
"transactions/fragments/filter_presets.html",
{"filter_presets": FilterPreset.objects.filter(owner=request.user)},
) )
+223 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2026-08-10 12:57+0000\n" "PO-Revision-Date: 2026-08-10 12:57+0000\n"
"Last-Translator: GitEbu <ebu@buol.ch>\n" "Last-Translator: GitEbu <ebu@buol.ch>\n"
"Language-Team: German <https://translations.herculino.com/projects/wygiwyh/" "Language-Team: German <https://translations.herculino.com/projects/wygiwyh/"
@@ -66,9 +66,9 @@ msgstr "Neuer Saldo"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -79,13 +79,13 @@ msgstr "Kategorie"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -97,8 +97,8 @@ msgstr "Tags"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -169,9 +169,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -180,7 +180,7 @@ msgid "Account"
msgstr "Konto" msgstr "Konto"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -195,68 +195,56 @@ msgstr ""
"Die Umrechnungs-Währung darf nicht mit der Haupt-Währung des Kontos " "Die Umrechnungs-Währung darf nicht mit der Haupt-Währung des Kontos "
"übereinstimmen." "übereinstimmen."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Kontengruppe erfolgreich hinzugefügt" msgstr "Kontengruppe erfolgreich hinzugefügt"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Nur der Besitzer kann dies bearbeiten"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "Kontengruppe erfolgreich aktualisiert" msgstr "Kontengruppe erfolgreich aktualisiert"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "Einheit wird nicht länger mit dir geteilt"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "Kontengruppe erfolgreich gelöscht" msgstr "Kontengruppe erfolgreich gelöscht"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "Einheit wird nicht länger mit dir geteilt"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "Besitzeigenschaft erfolgreich übernommen" msgstr "Besitzeigenschaft erfolgreich übernommen"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "Konfiguration erfolgreich gespeichert" msgstr "Konfiguration erfolgreich gespeichert"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "Konto erfolgreich hinzugefügt" msgstr "Konto erfolgreich hinzugefügt"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "Konto erfolgreich aktualisiert" msgstr "Konto erfolgreich aktualisiert"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "Konto erfolgreich gelöscht" msgstr "Konto erfolgreich gelöscht"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "Konto wird verfolgt" msgstr "Konto wird verfolgt"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "Konto wird nicht mehr gefolgt" msgstr "Konto wird nicht mehr gefolgt"
@@ -357,6 +345,7 @@ msgstr ""
"Sichtbar für alle Nutzer. Nur bearbeitbar durch Besitzer." "Sichtbar für alle Nutzer. Nur bearbeitbar durch Besitzer."
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
@@ -471,10 +460,9 @@ msgstr "Löschen"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Zurücksetzen" msgstr "Zurücksetzen"
@@ -493,7 +481,7 @@ msgstr "Suffix"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -513,7 +501,7 @@ msgid "Decimal Places"
msgstr "Dezimalstellen" msgstr "Dezimalstellen"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -579,8 +567,8 @@ msgid "Service Type"
msgstr "Diensttyp" msgstr "Diensttyp"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -771,8 +759,8 @@ msgstr "Startwährung"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Notizen" msgstr "Notizen"
@@ -804,27 +792,27 @@ msgstr "DCA-Eintrag"
msgid "DCA Entries" msgid "DCA Entries"
msgstr "DCA-Einträge" msgstr "DCA-Einträge"
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "DCA-Strategie erfolgreich hinzugefügt" msgstr "DCA-Strategie erfolgreich hinzugefügt"
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "DCA-Strategie erfolgreich aktualisiert" msgstr "DCA-Strategie erfolgreich aktualisiert"
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "DCA-Strategie erfolgreich gelöscht" msgstr "DCA-Strategie erfolgreich gelöscht"
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "Eintrag erfolgreich hinzugefügt" msgstr "Eintrag erfolgreich hinzugefügt"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "Eintrag erfolgreich aktualisiert" msgstr "Eintrag erfolgreich aktualisiert"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "Eintrag erfolgreich gelöscht" msgstr "Eintrag erfolgreich gelöscht"
@@ -835,7 +823,7 @@ msgid "Users"
msgstr "Nutzer" msgstr "Nutzer"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -844,7 +832,7 @@ msgid "Transactions"
msgstr "Transaktionen" msgstr "Transaktionen"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -855,12 +843,12 @@ msgstr "Kategorien"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -872,14 +860,14 @@ msgid "Entities"
msgstr "Entitäten" msgstr "Entitäten"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Wiederkehrende Transaktionen" msgstr "Wiederkehrende Transaktionen"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1033,7 +1021,7 @@ msgid "Run deleted successfully"
msgstr "Vorgang erfolgreich gelöscht" msgstr "Vorgang erfolgreich gelöscht"
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1131,15 +1119,15 @@ msgstr "Bediener"
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "Typ" msgstr "Typ"
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1149,15 +1137,15 @@ msgstr "Bezahlt"
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "Referenzdatum" msgstr "Referenzdatum"
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1168,27 +1156,27 @@ msgstr "Betrag"
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "Beschreibung" msgstr "Beschreibung"
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "Interne Notiz" msgstr "Interne Notiz"
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "Interne ID" msgstr "Interne ID"
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "Stummschalten" msgstr "Stummschalten"
@@ -1201,7 +1189,7 @@ msgid "Set Values"
msgstr "Wert setzen" msgstr "Wert setzen"
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "Transaktion" msgstr "Transaktion"
@@ -1301,15 +1289,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "Transaktions-Aktion aktualisieren oder erstellen" msgstr "Transaktions-Aktion aktualisieren oder erstellen"
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "Regel erfolgreich deaktiviert" msgstr "Regel erfolgreich deaktiviert"
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "Regel erfolgreich aktiviert" msgstr "Regel erfolgreich aktiviert"
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "Regel erfolgreich hinzugefügt" msgstr "Regel erfolgreich hinzugefügt"
@@ -1317,31 +1305,31 @@ msgstr "Regel erfolgreich hinzugefügt"
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "Regel erfolgreich aktualisiert" msgstr "Regel erfolgreich aktualisiert"
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "Regel erfolgreich gelöscht" msgstr "Regel erfolgreich gelöscht"
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "Aktion erfolgreich aktualisiert" msgstr "Aktion erfolgreich aktualisiert"
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "Aktion erfolgreich gelöscht" msgstr "Aktion erfolgreich gelöscht"
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "" msgstr ""
"\"Transaktions-Aktualisierung oder -Erstellung\"-Aktion erfolgreich " "\"Transaktions-Aktualisierung oder -Erstellung\"-Aktion erfolgreich "
"hinzugefügt" "hinzugefügt"
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "" msgstr ""
"\"Transaktions-Aktualisierung oder -Erstellung\"-Aktion erfolgreich " "\"Transaktions-Aktualisierung oder -Erstellung\"-Aktion erfolgreich "
"aktualisiert" "aktualisiert"
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "" msgstr ""
"\"Transaktions-Aktualisierung oder -Erstellung\"-Aktion erfolgreich gelöscht" "\"Transaktions-Aktualisierung oder -Erstellung\"-Aktion erfolgreich gelöscht"
@@ -1359,58 +1347,58 @@ msgstr "Erwartet"
msgid "Muted" msgid "Muted"
msgstr "Ausgeblendet" msgstr "Ausgeblendet"
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "Inhalt" msgstr "Inhalt"
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "Transaktionstyp" msgstr "Transaktionstyp"
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "Stummschalten" msgstr "Stummschalten"
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "Datum von" msgstr "Datum von"
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "Bis" msgstr "Bis"
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "Referenzdatum von" msgstr "Referenzdatum von"
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "Betrag Minimum" msgstr "Betrag Minimum"
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "Betrag Maximum" msgstr "Betrag Maximum"
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "Kategorisiert" msgstr "Kategorisiert"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "Markiert" msgstr "Markiert"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "Unmarkiert" msgstr "Unmarkiert"
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "Jegliche Entität" msgstr "Jegliche Entität"
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1490,7 +1478,7 @@ msgstr "künftige Transaktionen"
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "Enddatum sollte hinter dem Startdatum liegen" msgstr "Enddatum sollte hinter dem Startdatum liegen"
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1498,26 +1486,26 @@ msgstr ""
"Ausgeblendete Kategorien können bei der Erstellung neuer Transaktionen nicht " "Ausgeblendete Kategorien können bei der Erstellung neuer Transaktionen nicht "
"ausgewählt werden" "ausgewählt werden"
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "Transaktionskategorie" msgstr "Transaktionskategorie"
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "Transaktionskategorien" msgstr "Transaktionskategorien"
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
"Deaktivierte Tags können bei der Erstellung neuer Transaktionen nicht " "Deaktivierte Tags können bei der Erstellung neuer Transaktionen nicht "
"ausgewählt werden" "ausgewählt werden"
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "Tranksaktionstags" msgstr "Tranksaktionstags"
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1525,13 +1513,13 @@ msgstr ""
"Deaktivierte Entitäten können bei der Erstellung neuer Transaktionen nicht " "Deaktivierte Entitäten können bei der Erstellung neuer Transaktionen nicht "
"ausgewählt werden" "ausgewählt werden"
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "Entität" msgstr "Entität"
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1543,7 +1531,7 @@ msgstr "Entität"
msgid "Income" msgid "Income"
msgstr "Einnahme" msgstr "Einnahme"
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1554,166 +1542,166 @@ msgstr "Einnahme"
msgid "Expense" msgid "Expense"
msgstr "Ausgabe" msgstr "Ausgabe"
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "Ratenzahlungs-Plan" msgstr "Ratenzahlungs-Plan"
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "Wiederkehrende Transaktion" msgstr "Wiederkehrende Transaktion"
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "Gelöscht" msgstr "Gelöscht"
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "Gelöscht am" msgstr "Gelöscht am"
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "Keine Tags" msgstr "Keine Tags"
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "Keine Kategorie" msgstr "Keine Kategorie"
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "Keine Beschreibung" msgstr "Keine Beschreibung"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
#, fuzzy #, fuzzy
#| msgid "ZIP File" #| msgid "ZIP File"
msgid "File" msgid "File"
msgstr "ZIP-Datei" msgstr "ZIP-Datei"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
#, fuzzy #, fuzzy
#| msgid "Content" #| msgid "Content"
msgid "Content Type" msgid "Content Type"
msgstr "Inhalt" msgstr "Inhalt"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
#, fuzzy #, fuzzy
#| msgid "Transactions on" #| msgid "Transactions on"
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Transaktionen am" msgstr "Transaktionen am"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
#, fuzzy #, fuzzy
#| msgid "Transaction Tags" #| msgid "Transaction Tags"
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Tranksaktionstags" msgstr "Tranksaktionstags"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "Jährlich" msgstr "Jährlich"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "Monatlich" msgstr "Monatlich"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "Wöchentlich" msgstr "Wöchentlich"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "Täglich" msgstr "Täglich"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "Anzahl von Ratenzahlungen" msgstr "Anzahl von Ratenzahlungen"
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "Start der Ratenzahlung" msgstr "Start der Ratenzahlung"
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "" msgstr ""
"Die Zahl mit der bei der Zählung der Ratenzahlungen begonnen werden soll" "Die Zahl mit der bei der Zählung der Ratenzahlungen begonnen werden soll"
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "Startdatum" msgstr "Startdatum"
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "Enddatum" msgstr "Enddatum"
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "Regelmäßigkeit" msgstr "Regelmäßigkeit"
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "Ratenzahlungs-Wert" msgstr "Ratenzahlungs-Wert"
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "Beschreibung zu Transaktionen hinzufügen" msgstr "Beschreibung zu Transaktionen hinzufügen"
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "Notizen zu Transaktionen hinzufügen" msgstr "Notizen zu Transaktionen hinzufügen"
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "Tag(e)" msgstr "Tag(e)"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "Woche(n)" msgstr "Woche(n)"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "Monat(e)" msgstr "Monat(e)"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "Jahr(e)" msgstr "Jahr(e)"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "Pausiert" msgstr "Pausiert"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "Regelmäßigkeit" msgstr "Regelmäßigkeit"
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "Wiederholungsintervall" msgstr "Wiederholungsintervall"
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "Höchtens" msgstr "Höchtens"
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "Letztes generiertes Datum" msgstr "Letztes generiertes Datum"
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "Letztes generiertes Referenzdatum" msgstr "Letztes generiertes Referenzdatum"
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1722,7 +1710,7 @@ msgstr "Letztes generiertes Referenzdatum"
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "Schnelle Transaktion" msgstr "Schnelle Transaktion"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1773,27 +1761,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "%(count)s Transaktion erfolgreich dupliziert" msgstr[0] "%(count)s Transaktion erfolgreich dupliziert"
msgstr[1] "%(count)s Transaktionen erfolgreich dupliziert" msgstr[1] "%(count)s Transaktionen erfolgreich dupliziert"
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "Kategorie erfolgreich hinzugefügt" msgstr "Kategorie erfolgreich hinzugefügt"
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "Kategorie erfolgreich aktualisiert" msgstr "Kategorie erfolgreich aktualisiert"
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "Kategorie erfolgreich gelöscht" msgstr "Kategorie erfolgreich gelöscht"
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "Entität erfolgreich hinzugefügt" msgstr "Entität erfolgreich hinzugefügt"
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "Entität erfolgreich aktualisiert" msgstr "Entität erfolgreich aktualisiert"
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "Entität erfolgreich gelöscht" msgstr "Entität erfolgreich gelöscht"
@@ -1856,15 +1844,15 @@ msgstr "Wiederkehrende Transaktion erfolgreich abgeschlossen"
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "Wiederkehrende Transaktion erfolgreich gelöscht" msgstr "Wiederkehrende Transaktion erfolgreich gelöscht"
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "Tag erfolgreich hinzugefügt" msgstr "Tag erfolgreich hinzugefügt"
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "Tag erfolgreich aktualisiert" msgstr "Tag erfolgreich aktualisiert"
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "Tag erfolgreich gelöscht" msgstr "Tag erfolgreich gelöscht"
@@ -1950,9 +1938,9 @@ msgstr "Dieses Konto ist deaktiviert"
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "Standard" msgstr "Standard"
@@ -2304,6 +2292,7 @@ msgstr "Teilen"
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "Löschen" msgstr "Löschen"
@@ -2795,19 +2784,19 @@ msgstr "Aktueller Preis"
msgid "Amount Bought" msgid "Amount Bought"
msgstr "Anzahl gekauft" msgstr "Anzahl gekauft"
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "Einstiegspreis zu Aktuellem Preis" msgstr "Einstiegspreis zu Aktuellem Preis"
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "Tage zwischen Investitionen" msgstr "Tage zwischen Investitionen"
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "Investitions-Häufigkeit" msgstr "Investitions-Häufigkeit"
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
"Je gerader die blaue Linie, desto gleichmäßiger ist deine DCA-Strategie." "Je gerader die blaue Linie, desto gleichmäßiger ist deine DCA-Strategie."
@@ -3050,6 +3039,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
@@ -3491,16 +3481,16 @@ msgid "Summary"
msgstr "Zusammenfassung" msgstr "Zusammenfassung"
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "Älteste zuerst" msgstr "Älteste zuerst"
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "Neueste zuerst" msgstr "Neueste zuerst"
@@ -3509,8 +3499,8 @@ msgstr "Neueste zuerst"
msgid "Filter transactions" msgid "Filter transactions"
msgstr "Transaktionen filtern" msgstr "Transaktionen filtern"
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "Sortieren nach" msgstr "Sortieren nach"
@@ -3624,15 +3614,21 @@ msgstr "Keine wiederkehrenden Transaktionen"
msgid "View" msgid "View"
msgstr "Ansicht" msgstr "Ansicht"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "Deaktivieren" msgstr "Deaktivieren"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "Aktivieren" msgstr "Aktivieren"
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Nur der Besitzer kann dies bearbeiten"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "Keine Regeln" msgstr "Keine Regeln"
@@ -3785,6 +3781,48 @@ msgstr "Bearbeitung"
msgid "transactions" msgid "transactions"
msgstr "Transaktionen" msgstr "Transaktionen"
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
#, fuzzy
#| msgid "File name"
msgid "Preset name"
msgstr "Dateiname"
#: templates/transactions/fragments/filter_actions.html:40
#, fuzzy
#| msgid "From preset"
msgid "Save preset"
msgstr "Von Vorlage"
#: templates/transactions/fragments/filter_presets.html:6
#, fuzzy
#| msgid "From preset"
msgid "Filter presets"
msgstr "Von Vorlage"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
#, fuzzy
#| msgid "No presets yet"
msgid "No saved presets"
msgstr "Keine Vorlagen bisher"
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "Keine Transaktionen gefunden" msgstr "Keine Transaktionen gefunden"
+213 -185
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -65,9 +65,9 @@ msgstr ""
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -78,13 +78,13 @@ msgstr ""
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -96,8 +96,8 @@ msgstr ""
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -165,9 +165,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -176,7 +176,7 @@ msgid "Account"
msgstr "" msgstr ""
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -189,68 +189,56 @@ msgstr ""
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr ""
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr ""
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr ""
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "" msgstr ""
@@ -345,6 +333,7 @@ msgid ""
msgstr "" msgstr ""
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "" msgstr ""
@@ -459,10 +448,9 @@ msgstr ""
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "" msgstr ""
@@ -481,7 +469,7 @@ msgstr ""
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -501,7 +489,7 @@ msgid "Decimal Places"
msgstr "" msgstr ""
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -567,8 +555,8 @@ msgid "Service Type"
msgstr "" msgstr ""
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -747,8 +735,8 @@ msgstr ""
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
@@ -780,27 +768,27 @@ msgstr ""
msgid "DCA Entries" msgid "DCA Entries"
msgstr "" msgstr ""
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "" msgstr ""
@@ -811,7 +799,7 @@ msgid "Users"
msgstr "" msgstr ""
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -820,7 +808,7 @@ msgid "Transactions"
msgstr "" msgstr ""
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -831,12 +819,12 @@ msgstr ""
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -848,14 +836,14 @@ msgid "Entities"
msgstr "" msgstr ""
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "" msgstr ""
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1007,7 +995,7 @@ msgid "Run deleted successfully"
msgstr "" msgstr ""
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1105,15 +1093,15 @@ msgstr ""
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1123,15 +1111,15 @@ msgstr ""
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "" msgstr ""
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1142,27 +1130,27 @@ msgstr ""
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "" msgstr ""
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "" msgstr ""
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "" msgstr ""
@@ -1175,7 +1163,7 @@ msgid "Set Values"
msgstr "" msgstr ""
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "" msgstr ""
@@ -1269,15 +1257,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "" msgstr ""
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "" msgstr ""
@@ -1285,27 +1273,27 @@ msgstr ""
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "" msgstr ""
@@ -1322,58 +1310,58 @@ msgstr ""
msgid "Muted" msgid "Muted"
msgstr "" msgstr ""
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "" msgstr ""
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "" msgstr ""
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "" msgstr ""
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "" msgstr ""
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "" msgstr ""
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "" msgstr ""
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "" msgstr ""
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1448,42 +1436,42 @@ msgstr ""
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "" msgstr ""
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "" msgstr ""
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "" msgstr ""
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "" msgstr ""
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1495,7 +1483,7 @@ msgstr ""
msgid "Income" msgid "Income"
msgstr "" msgstr ""
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1506,157 +1494,157 @@ msgstr ""
msgid "Expense" msgid "Expense"
msgstr "" msgstr ""
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "" msgstr ""
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr ""
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "" msgstr ""
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "" msgstr ""
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "" msgstr ""
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
msgid "File" msgid "File"
msgstr "" msgstr ""
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
msgid "Content Type" msgid "Content Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "" msgstr ""
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "" msgstr ""
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "" msgstr ""
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "" msgstr ""
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "" msgstr ""
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "" msgstr ""
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "" msgstr ""
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "" msgstr ""
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "" msgstr ""
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "" msgstr ""
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "" msgstr ""
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "" msgstr ""
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "" msgstr ""
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "" msgstr ""
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1665,7 +1653,7 @@ msgstr ""
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1716,27 +1704,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "" msgstr ""
@@ -1799,15 +1787,15 @@ msgstr ""
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "" msgstr ""
@@ -1889,9 +1877,9 @@ msgstr ""
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "" msgstr ""
@@ -2212,6 +2200,7 @@ msgstr ""
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@@ -2697,19 +2686,19 @@ msgstr ""
msgid "Amount Bought" msgid "Amount Bought"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
@@ -2946,6 +2935,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -3360,16 +3350,16 @@ msgid "Summary"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "" msgstr ""
@@ -3378,8 +3368,8 @@ msgstr ""
msgid "Filter transactions" msgid "Filter transactions"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "" msgstr ""
@@ -3485,15 +3475,19 @@ msgstr ""
msgid "View" msgid "View"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
msgid "Only the owner can change this"
msgstr ""
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "" msgstr ""
@@ -3636,6 +3630,40 @@ msgstr ""
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
msgid "Preset name"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:6
msgid "Filter presets"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr ""
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "" msgstr ""
+223 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2026-07-10 04:57+0000\n" "PO-Revision-Date: 2026-07-10 04:57+0000\n"
"Last-Translator: Juan David Afanador <juanafanador07@gmail.com>\n" "Last-Translator: Juan David Afanador <juanafanador07@gmail.com>\n"
"Language-Team: Spanish <https://translations.herculino.com/projects/wygiwyh/" "Language-Team: Spanish <https://translations.herculino.com/projects/wygiwyh/"
@@ -66,9 +66,9 @@ msgstr "Nuevo balance"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -79,13 +79,13 @@ msgstr "Categoría"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -97,8 +97,8 @@ msgstr "Etiquetas"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -167,9 +167,9 @@ msgstr "Las cuentas archivadas no aparecen ni cuentan para su patrimonio neto"
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -178,7 +178,7 @@ msgid "Account"
msgstr "Cuenta" msgstr "Cuenta"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -193,68 +193,56 @@ msgstr ""
"La moneda de cambio no puede ser la misma que la moneda principal de la " "La moneda de cambio no puede ser la misma que la moneda principal de la "
"cuenta." "cuenta."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Grupo de Cuenta añadido exitosamente" msgstr "Grupo de Cuenta añadido exitosamente"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Solo el dueño puede editar esto"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "Grupo de Cuenta actualizado exitosamente" msgstr "Grupo de Cuenta actualizado exitosamente"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "El artículo que ya no se comparte contigo"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "Grupo de Cuenta eliminado exitosamente" msgstr "Grupo de Cuenta eliminado exitosamente"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "El artículo que ya no se comparte contigo"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "Propiedad tomada exitosamete" msgstr "Propiedad tomada exitosamete"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "Configuración guardada exitosamente" msgstr "Configuración guardada exitosamente"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "Cuenta agregada exitosamente" msgstr "Cuenta agregada exitosamente"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "Cuenta actualizada exitosamente" msgstr "Cuenta actualizada exitosamente"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "Cuenta borrada exitosamente" msgstr "Cuenta borrada exitosamente"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "La cuenta ahora está siendo seguida" msgstr "La cuenta ahora está siendo seguida"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "La cuenta ya no está siendo seguida" msgstr "La cuenta ya no está siendo seguida"
@@ -354,6 +342,7 @@ msgstr ""
"todos los usuarios. Solo el propietario puede editarlo." "todos los usuarios. Solo el propietario puede editarlo."
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Guardar" msgstr "Guardar"
@@ -468,10 +457,9 @@ msgstr "Remover"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Limpiar" msgstr "Limpiar"
@@ -490,7 +478,7 @@ msgstr "Sufijo"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -510,7 +498,7 @@ msgid "Decimal Places"
msgstr "Cantidad de decimales" msgstr "Cantidad de decimales"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -576,8 +564,8 @@ msgid "Service Type"
msgstr "Tipo de Servicio" msgstr "Tipo de Servicio"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -768,8 +756,8 @@ msgstr "Moneda de pago"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Notas" msgstr "Notas"
@@ -801,27 +789,27 @@ msgstr "Entrada DCA"
msgid "DCA Entries" msgid "DCA Entries"
msgstr "Entradas DCA" msgstr "Entradas DCA"
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "Estrategia DCA agregada con éxito" msgstr "Estrategia DCA agregada con éxito"
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "Estrategia DCA actualizada con éxito" msgstr "Estrategia DCA actualizada con éxito"
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "Estrategia DCA eliminada con éxito" msgstr "Estrategia DCA eliminada con éxito"
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "Entrada agregada con éxito" msgstr "Entrada agregada con éxito"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "Entrada actualizada con éxito" msgstr "Entrada actualizada con éxito"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "Entrada eliminada con éxito" msgstr "Entrada eliminada con éxito"
@@ -832,7 +820,7 @@ msgid "Users"
msgstr "Usuarios" msgstr "Usuarios"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -841,7 +829,7 @@ msgid "Transactions"
msgstr "Transacciones" msgstr "Transacciones"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -852,12 +840,12 @@ msgstr "Categorías"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -869,14 +857,14 @@ msgid "Entities"
msgstr "Entidades" msgstr "Entidades"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Transacciones Recurrentes" msgstr "Transacciones Recurrentes"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1029,7 +1017,7 @@ msgid "Run deleted successfully"
msgstr "Tarea de importación eliminada con éxito" msgstr "Tarea de importación eliminada con éxito"
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1127,15 +1115,15 @@ msgstr "Operador"
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "Tipo" msgstr "Tipo"
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1145,15 +1133,15 @@ msgstr "Pagado"
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "Fecha de Referencia" msgstr "Fecha de Referencia"
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1164,27 +1152,27 @@ msgstr "Monto"
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "Descripción" msgstr "Descripción"
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "Nota Interna" msgstr "Nota Interna"
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "ID Interno" msgstr "ID Interno"
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "Silenciar" msgstr "Silenciar"
@@ -1197,7 +1185,7 @@ msgid "Set Values"
msgstr "Establecer Valores" msgstr "Establecer Valores"
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "Transacción" msgstr "Transacción"
@@ -1293,15 +1281,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "Actualizar o crear acción de transacción" msgstr "Actualizar o crear acción de transacción"
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "Regla desactivada con éxito" msgstr "Regla desactivada con éxito"
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "Regla activada con éxito" msgstr "Regla activada con éxito"
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "Regla agregada con éxito" msgstr "Regla agregada con éxito"
@@ -1309,27 +1297,27 @@ msgstr "Regla agregada con éxito"
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "Regla actualizada con éxito" msgstr "Regla actualizada con éxito"
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "Regla eliminada con éxito" msgstr "Regla eliminada con éxito"
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "Acción actualizada con éxito" msgstr "Acción actualizada con éxito"
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "Acción eliminada con éxito" msgstr "Acción eliminada con éxito"
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "Acción de Actualizar o Crear Transacción agregada con éxito" msgstr "Acción de Actualizar o Crear Transacción agregada con éxito"
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "Acción de Actualizar o Crear Transacción actualizada con éxito" msgstr "Acción de Actualizar o Crear Transacción actualizada con éxito"
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "Acción de Actualizar o Crear Transacción eliminada con éxito" msgstr "Acción de Actualizar o Crear Transacción eliminada con éxito"
@@ -1346,58 +1334,58 @@ msgstr "Proyectado"
msgid "Muted" msgid "Muted"
msgstr "Silenciado" msgstr "Silenciado"
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "Contenido" msgstr "Contenido"
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "Tipo de Transacción" msgstr "Tipo de Transacción"
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "Silenciada" msgstr "Silenciada"
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "Desde la fecha" msgstr "Desde la fecha"
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "Hasta" msgstr "Hasta"
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "Desde la fecha de referencia" msgstr "Desde la fecha de referencia"
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "Monto mínimo" msgstr "Monto mínimo"
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "Monto máximo" msgstr "Monto máximo"
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "Con Categoría" msgstr "Con Categoría"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "Etiquetado" msgstr "Etiquetado"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "Sin etiqueta" msgstr "Sin etiqueta"
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "Cualquier entidad" msgstr "Cualquier entidad"
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1476,7 +1464,7 @@ msgstr "transacciones futuras"
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "La fecha de fin debe ser posterior a la fecha de inicio" msgstr "La fecha de fin debe ser posterior a la fecha de inicio"
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1484,26 +1472,26 @@ msgstr ""
"Las categorías desactivadas no podrán seleccionarse al crear nuevas " "Las categorías desactivadas no podrán seleccionarse al crear nuevas "
"transacciones" "transacciones"
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "Categoría de Transacción" msgstr "Categoría de Transacción"
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "Categorías de Transacción" msgstr "Categorías de Transacción"
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
"Las etiquetas desactivadas no podrán seleccionarse al crear nuevas " "Las etiquetas desactivadas no podrán seleccionarse al crear nuevas "
"transacciones" "transacciones"
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "Etiquetas de Transacción" msgstr "Etiquetas de Transacción"
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1511,13 +1499,13 @@ msgstr ""
"Las entidades desactivadas no podrán seleccionarse al crear nuevas " "Las entidades desactivadas no podrán seleccionarse al crear nuevas "
"transacciones" "transacciones"
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "Entidad" msgstr "Entidad"
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1529,7 +1517,7 @@ msgstr "Entidad"
msgid "Income" msgid "Income"
msgstr "Ingreso" msgstr "Ingreso"
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1540,157 +1528,157 @@ msgstr "Ingreso"
msgid "Expense" msgid "Expense"
msgstr "Gasto" msgstr "Gasto"
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "Plan de Cuotas" msgstr "Plan de Cuotas"
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "Transacción Recurrente" msgstr "Transacción Recurrente"
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "Eliminado" msgstr "Eliminado"
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "Eliminado en" msgstr "Eliminado en"
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "Sin etiquetas" msgstr "Sin etiquetas"
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "Sin categoría" msgstr "Sin categoría"
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "Sin descripción" msgstr "Sin descripción"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
msgid "File" msgid "File"
msgstr "Archivo" msgstr "Archivo"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "Nombre Original" msgstr "Nombre Original"
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
msgid "Content Type" msgid "Content Type"
msgstr "Tipo de Contenido" msgstr "Tipo de Contenido"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "Tamaño" msgstr "Tamaño"
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "Subido por" msgstr "Subido por"
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Archivos Adjunto" msgstr "Archivos Adjunto"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Archivos Adjuntos" msgstr "Archivos Adjuntos"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "Anual" msgstr "Anual"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "Mensual" msgstr "Mensual"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "Semanal" msgstr "Semanal"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "Diario" msgstr "Diario"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "Cantidad de cuotas" msgstr "Cantidad de cuotas"
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "Cuota de Inicio" msgstr "Cuota de Inicio"
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "El número de la cuota desde la cual comenzar a contar" msgstr "El número de la cuota desde la cual comenzar a contar"
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "Fecha de Inicio" msgstr "Fecha de Inicio"
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "Fecha de Fin" msgstr "Fecha de Fin"
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "Recurrencia" msgstr "Recurrencia"
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "Monto de la Cuota" msgstr "Monto de la Cuota"
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "Agregar descripción a las transacciones" msgstr "Agregar descripción a las transacciones"
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "Agregar notas a las transacciones" msgstr "Agregar notas a las transacciones"
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "día(s)" msgstr "día(s)"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "semana(s)" msgstr "semana(s)"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "mes(es)" msgstr "mes(es)"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "año(s)" msgstr "año(s)"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "Pausado" msgstr "Pausado"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "Tipo de Recurrencia" msgstr "Tipo de Recurrencia"
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "Intervalo de Recurrencia" msgstr "Intervalo de Recurrencia"
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "Mantener como máximo" msgstr "Mantener como máximo"
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "Última Fecha Generada" msgstr "Última Fecha Generada"
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "Última Fecha de Referencia Generada" msgstr "Última Fecha de Referencia Generada"
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1699,7 +1687,7 @@ msgstr "Última Fecha de Referencia Generada"
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "Transacción Rápida" msgstr "Transacción Rápida"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1750,27 +1738,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "%(count)s transacción duplicada con éxito" msgstr[0] "%(count)s transacción duplicada con éxito"
msgstr[1] "%(count)s transacciones duplicadas con éxito" msgstr[1] "%(count)s transacciones duplicadas con éxito"
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "Categoría agregada con éxito" msgstr "Categoría agregada con éxito"
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "Categoría actualizada con éxito" msgstr "Categoría actualizada con éxito"
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "Categoría eliminada con éxito" msgstr "Categoría eliminada con éxito"
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "Entidad agregada con éxito" msgstr "Entidad agregada con éxito"
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "Entidad actualizada con éxito" msgstr "Entidad actualizada con éxito"
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "Entidad eliminada con éxito" msgstr "Entidad eliminada con éxito"
@@ -1833,15 +1821,15 @@ msgstr "Transacción Recurrente terminada exitosamente"
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "Transacción Recurrente borrada exitosamente" msgstr "Transacción Recurrente borrada exitosamente"
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "Etiqueta agregada con éxito" msgstr "Etiqueta agregada con éxito"
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "Etiqueta actualizada con éxito" msgstr "Etiqueta actualizada con éxito"
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "Etiqueta eliminada con éxito" msgstr "Etiqueta eliminada con éxito"
@@ -1923,9 +1911,9 @@ msgstr "Esta cuenta está desactivada"
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "Por Defecto" msgstr "Por Defecto"
@@ -2274,6 +2262,7 @@ msgstr "Compartir"
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "Borrar" msgstr "Borrar"
@@ -2759,19 +2748,19 @@ msgstr "Precio Actual"
msgid "Amount Bought" msgid "Amount Bought"
msgstr "Cantidad Comprada" msgstr "Cantidad Comprada"
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "Precio de Entrada vs Precio Actual" msgstr "Precio de Entrada vs Precio Actual"
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "Días entre Inversiones" msgstr "Días entre Inversiones"
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "Frecuencia de Inversión" msgstr "Frecuencia de Inversión"
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
"Cuanto más recta sea la línea azul, más consistente será tu estrategia DCA." "Cuanto más recta sea la línea azul, más consistente será tu estrategia DCA."
@@ -3012,6 +3001,7 @@ msgid "Reload"
msgstr "Refrescar" msgstr "Refrescar"
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
@@ -3430,16 +3420,16 @@ msgid "Summary"
msgstr "Resumen" msgstr "Resumen"
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "Lo más antiguo primero" msgstr "Lo más antiguo primero"
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "Lo más nuevo primero" msgstr "Lo más nuevo primero"
@@ -3448,8 +3438,8 @@ msgstr "Lo más nuevo primero"
msgid "Filter transactions" msgid "Filter transactions"
msgstr "Filtrar transacciones" msgstr "Filtrar transacciones"
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "Ordenar por" msgstr "Ordenar por"
@@ -3559,15 +3549,21 @@ msgstr "Sin transacciones recurrentes"
msgid "View" msgid "View"
msgstr "Ver" msgstr "Ver"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "Desactivar" msgstr "Desactivar"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "Activar" msgstr "Activar"
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Solo el dueño puede editar esto"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "Sin reglas" msgstr "Sin reglas"
@@ -3714,6 +3710,48 @@ msgstr "Edición"
msgid "transactions" msgid "transactions"
msgstr "transacciones" msgstr "transacciones"
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
#, fuzzy
#| msgid "File name"
msgid "Preset name"
msgstr "Nombre de archivo"
#: templates/transactions/fragments/filter_actions.html:40
#, fuzzy
#| msgid "From preset"
msgid "Save preset"
msgstr "Desde plantilla"
#: templates/transactions/fragments/filter_presets.html:6
#, fuzzy
#| msgid "From preset"
msgid "Filter presets"
msgstr "Desde plantilla"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
#, fuzzy
#| msgid "No presets yet"
msgid "No saved presets"
msgstr "Aún no hay plantillas"
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "No se encontraron transacciones" msgstr "No se encontraron transacciones"
File diff suppressed because it is too large Load Diff
+219 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2026-01-10 03:09+0000\n" "PO-Revision-Date: 2026-01-10 03:09+0000\n"
"Last-Translator: Herculino Trotta <netotrotta@gmail.com>\n" "Last-Translator: Herculino Trotta <netotrotta@gmail.com>\n"
"Language-Team: Hungarian <https://translations.herculino.com/projects/" "Language-Team: Hungarian <https://translations.herculino.com/projects/"
@@ -66,9 +66,9 @@ msgstr "Új egyenleg"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -79,13 +79,13 @@ msgstr "Kategória"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -97,8 +97,8 @@ msgstr "Címkék"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -170,9 +170,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -181,7 +181,7 @@ msgid "Account"
msgstr "Számla" msgstr "Számla"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -194,68 +194,56 @@ msgstr "Számlák"
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "A váltási pénznem nem lehet azonos a számla fő pénznemével." msgstr "A váltási pénznem nem lehet azonos a számla fő pénznemével."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Számlacsoport sikeresen hozzáadva" msgstr "Számlacsoport sikeresen hozzáadva"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Csak a tulajdonos szerkesztheti ezt"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "A számlacsoport sikeresen módosítva lett" msgstr "A számlacsoport sikeresen módosítva lett"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "A tétel már nincs megosztva veled"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "A számlacsoport sikeresen törlésre került" msgstr "A számlacsoport sikeresen törlésre került"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "A tétel már nincs megosztva veled"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "A tulajdonjog sikeresen átvéve" msgstr "A tulajdonjog sikeresen átvéve"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "A beállítás mentésre került" msgstr "A beállítás mentésre került"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "A számla hozzáadásra került" msgstr "A számla hozzáadásra került"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "A számla módosítása sikeres volt" msgstr "A számla módosítása sikeres volt"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "A számla törlésre került" msgstr "A számla törlésre került"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "A számla mostantól követve van" msgstr "A számla mostantól követve van"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "A számla mostantól nincs követve" msgstr "A számla mostantól nincs követve"
@@ -351,6 +339,7 @@ msgid ""
msgstr "" msgstr ""
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Mentés" msgstr "Mentés"
@@ -465,10 +454,9 @@ msgstr "Eltávolítás"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Törlés" msgstr "Törlés"
@@ -487,7 +475,7 @@ msgstr "Utótag"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -507,7 +495,7 @@ msgid "Decimal Places"
msgstr "Tizedesek" msgstr "Tizedesek"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -573,8 +561,8 @@ msgid "Service Type"
msgstr "Szolgáltatás típusa" msgstr "Szolgáltatás típusa"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -753,8 +741,8 @@ msgstr ""
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Megjegyzések" msgstr "Megjegyzések"
@@ -786,27 +774,27 @@ msgstr ""
msgid "DCA Entries" msgid "DCA Entries"
msgstr "" msgstr ""
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "" msgstr ""
@@ -817,7 +805,7 @@ msgid "Users"
msgstr "Felhasználók" msgstr "Felhasználók"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -826,7 +814,7 @@ msgid "Transactions"
msgstr "Tranzakciók" msgstr "Tranzakciók"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -837,12 +825,12 @@ msgstr "Kategóriák"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -854,14 +842,14 @@ msgid "Entities"
msgstr "Entitások" msgstr "Entitások"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Ismétlődő tranzakciók" msgstr "Ismétlődő tranzakciók"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1013,7 +1001,7 @@ msgid "Run deleted successfully"
msgstr "" msgstr ""
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1111,15 +1099,15 @@ msgstr ""
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1129,15 +1117,15 @@ msgstr ""
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "" msgstr ""
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1148,27 +1136,27 @@ msgstr ""
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "" msgstr ""
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "" msgstr ""
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "" msgstr ""
@@ -1181,7 +1169,7 @@ msgid "Set Values"
msgstr "" msgstr ""
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "" msgstr ""
@@ -1275,15 +1263,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "" msgstr ""
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "" msgstr ""
@@ -1291,27 +1279,27 @@ msgstr ""
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "" msgstr ""
@@ -1328,58 +1316,58 @@ msgstr "Várható"
msgid "Muted" msgid "Muted"
msgstr "" msgstr ""
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "" msgstr ""
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "" msgstr ""
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "" msgstr ""
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "" msgstr ""
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "" msgstr ""
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "" msgstr ""
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "" msgstr ""
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1454,42 +1442,42 @@ msgstr ""
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "" msgstr ""
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "" msgstr ""
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "" msgstr ""
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "" msgstr ""
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1501,7 +1489,7 @@ msgstr ""
msgid "Income" msgid "Income"
msgstr "" msgstr ""
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1512,165 +1500,165 @@ msgstr ""
msgid "Expense" msgid "Expense"
msgstr "" msgstr ""
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "" msgstr ""
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr ""
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "" msgstr ""
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "" msgstr ""
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "Nincs leírás" msgstr "Nincs leírás"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
#, fuzzy #, fuzzy
#| msgid "ZIP File" #| msgid "ZIP File"
msgid "File" msgid "File"
msgstr "ZIP fájl" msgstr "ZIP fájl"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
#, fuzzy #, fuzzy
#| msgid "Interval Type" #| msgid "Interval Type"
msgid "Content Type" msgid "Content Type"
msgstr "Intervallum típusa" msgstr "Intervallum típusa"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
#, fuzzy #, fuzzy
#| msgid "Transaction rules" #| msgid "Transaction rules"
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Tranzakciós szabályok" msgstr "Tranzakciós szabályok"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
#, fuzzy #, fuzzy
#| msgid "Transaction rules" #| msgid "Transaction rules"
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Tranzakciós szabályok" msgstr "Tranzakciós szabályok"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "Éves" msgstr "Éves"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "Havi" msgstr "Havi"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "Heti" msgstr "Heti"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "Napi" msgstr "Napi"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "" msgstr ""
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "" msgstr ""
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "" msgstr ""
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "" msgstr ""
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "" msgstr ""
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "nap" msgstr "nap"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "hét" msgstr "hét"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "hónap" msgstr "hónap"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "év" msgstr "év"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "Szüneteltetve" msgstr "Szüneteltetve"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "" msgstr ""
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "" msgstr ""
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1679,7 +1667,7 @@ msgstr ""
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "Gyors tranzakció" msgstr "Gyors tranzakció"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1730,27 +1718,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "" msgstr ""
@@ -1813,15 +1801,15 @@ msgstr ""
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "" msgstr ""
@@ -1907,9 +1895,9 @@ msgstr ""
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "" msgstr ""
@@ -2248,6 +2236,7 @@ msgstr ""
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@@ -2733,19 +2722,19 @@ msgstr ""
msgid "Amount Bought" msgid "Amount Bought"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
@@ -2982,6 +2971,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -3398,16 +3388,16 @@ msgid "Summary"
msgstr "Összegzés" msgstr "Összegzés"
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "Régiek elől" msgstr "Régiek elől"
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "Újjak elől" msgstr "Újjak elől"
@@ -3416,8 +3406,8 @@ msgstr "Újjak elől"
msgid "Filter transactions" msgid "Filter transactions"
msgstr "Tranzakciók szűrése" msgstr "Tranzakciók szűrése"
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "Rendezés" msgstr "Rendezés"
@@ -3523,15 +3513,21 @@ msgstr ""
msgid "View" msgid "View"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Csak a tulajdonos szerkesztheti ezt"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "" msgstr ""
@@ -3676,6 +3672,44 @@ msgstr ""
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
#, fuzzy
#| msgid "File name"
msgid "Preset name"
msgstr "Fájlnév"
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:6
#, fuzzy
#| msgid "Filter transactions"
msgid "Filter presets"
msgstr "Tranzakciók szűrése"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr ""
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "" msgstr ""
+213 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@@ -64,9 +64,9 @@ msgstr ""
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -77,13 +77,13 @@ msgstr ""
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -95,8 +95,8 @@ msgstr ""
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -164,9 +164,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -175,7 +175,7 @@ msgid "Account"
msgstr "" msgstr ""
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -188,68 +188,56 @@ msgstr ""
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr ""
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr ""
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr ""
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "" msgstr ""
@@ -344,6 +332,7 @@ msgid ""
msgstr "" msgstr ""
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "" msgstr ""
@@ -458,10 +447,9 @@ msgstr ""
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "" msgstr ""
@@ -480,7 +468,7 @@ msgstr ""
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -500,7 +488,7 @@ msgid "Decimal Places"
msgstr "" msgstr ""
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -566,8 +554,8 @@ msgid "Service Type"
msgstr "" msgstr ""
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -746,8 +734,8 @@ msgstr ""
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
@@ -779,27 +767,27 @@ msgstr ""
msgid "DCA Entries" msgid "DCA Entries"
msgstr "" msgstr ""
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "" msgstr ""
@@ -810,7 +798,7 @@ msgid "Users"
msgstr "" msgstr ""
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -819,7 +807,7 @@ msgid "Transactions"
msgstr "" msgstr ""
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -830,12 +818,12 @@ msgstr ""
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -847,14 +835,14 @@ msgid "Entities"
msgstr "" msgstr ""
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "" msgstr ""
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1006,7 +994,7 @@ msgid "Run deleted successfully"
msgstr "" msgstr ""
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1104,15 +1092,15 @@ msgstr ""
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1122,15 +1110,15 @@ msgstr ""
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "" msgstr ""
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1141,27 +1129,27 @@ msgstr ""
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "" msgstr ""
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "" msgstr ""
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "" msgstr ""
@@ -1174,7 +1162,7 @@ msgid "Set Values"
msgstr "" msgstr ""
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "" msgstr ""
@@ -1268,15 +1256,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "" msgstr ""
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "" msgstr ""
@@ -1284,27 +1272,27 @@ msgstr ""
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "" msgstr ""
@@ -1321,58 +1309,58 @@ msgstr ""
msgid "Muted" msgid "Muted"
msgstr "" msgstr ""
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "" msgstr ""
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "" msgstr ""
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "" msgstr ""
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "" msgstr ""
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "" msgstr ""
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "" msgstr ""
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "" msgstr ""
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1447,42 +1435,42 @@ msgstr ""
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "" msgstr ""
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "" msgstr ""
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "" msgstr ""
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "" msgstr ""
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1494,7 +1482,7 @@ msgstr ""
msgid "Income" msgid "Income"
msgstr "" msgstr ""
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1505,157 +1493,157 @@ msgstr ""
msgid "Expense" msgid "Expense"
msgstr "" msgstr ""
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "" msgstr ""
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr ""
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "" msgstr ""
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "" msgstr ""
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "" msgstr ""
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
msgid "File" msgid "File"
msgstr "" msgstr ""
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
msgid "Content Type" msgid "Content Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "" msgstr ""
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "" msgstr ""
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "" msgstr ""
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "" msgstr ""
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "" msgstr ""
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "" msgstr ""
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "" msgstr ""
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "" msgstr ""
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "" msgstr ""
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "" msgstr ""
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "" msgstr ""
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "" msgstr ""
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "" msgstr ""
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "" msgstr ""
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1664,7 +1652,7 @@ msgstr ""
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1715,27 +1703,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "" msgstr ""
@@ -1798,15 +1786,15 @@ msgstr ""
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "" msgstr ""
@@ -1888,9 +1876,9 @@ msgstr ""
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "" msgstr ""
@@ -2211,6 +2199,7 @@ msgstr ""
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@@ -2696,19 +2685,19 @@ msgstr ""
msgid "Amount Bought" msgid "Amount Bought"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
@@ -2944,6 +2933,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -3358,16 +3348,16 @@ msgid "Summary"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "" msgstr ""
@@ -3376,8 +3366,8 @@ msgstr ""
msgid "Filter transactions" msgid "Filter transactions"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "" msgstr ""
@@ -3483,15 +3473,19 @@ msgstr ""
msgid "View" msgid "View"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
msgid "Only the owner can change this"
msgstr ""
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "" msgstr ""
@@ -3634,6 +3628,40 @@ msgstr ""
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
msgid "Preset name"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:6
msgid "Filter presets"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr ""
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "" msgstr ""
+223 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2025-12-28 22:24+0000\n" "PO-Revision-Date: 2025-12-28 22:24+0000\n"
"Last-Translator: icovada <federico.tabbo@networktocode.com>\n" "Last-Translator: icovada <federico.tabbo@networktocode.com>\n"
"Language-Team: Italian <https://translations.herculino.com/projects/wygiwyh/" "Language-Team: Italian <https://translations.herculino.com/projects/wygiwyh/"
@@ -66,9 +66,9 @@ msgstr "Nuovo saldo"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -79,13 +79,13 @@ msgstr "Categoria"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -97,8 +97,8 @@ msgstr "Tag"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -169,9 +169,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -180,7 +180,7 @@ msgid "Account"
msgstr "Conto" msgstr "Conto"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -195,68 +195,56 @@ msgstr ""
"La valuta di cambio non può essere la stessa della valuta principale del " "La valuta di cambio non può essere la stessa della valuta principale del "
"conto." "conto."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Gruppo conti aggiunto con successo" msgstr "Gruppo conti aggiunto con successo"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Solo il proprietario può modificare questo elemento"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "Gruppo conti aggiornato con successo" msgstr "Gruppo conti aggiornato con successo"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "Lelemento non è più condiviso con te"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "Gruppo conti eliminato con successo" msgstr "Gruppo conti eliminato con successo"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "Lelemento non è più condiviso con te"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "Titolarità acquisita con successo" msgstr "Titolarità acquisita con successo"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "Configurazione salvata con successo" msgstr "Configurazione salvata con successo"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "Conto aggiunto con successo" msgstr "Conto aggiunto con successo"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "Conto aggiornato con successo" msgstr "Conto aggiornato con successo"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "Conto eliminato con successo" msgstr "Conto eliminato con successo"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "Il conto è ora tracciato" msgstr "Il conto è ora tracciato"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "Il conto non è più tracciato" msgstr "Il conto non è più tracciato"
@@ -356,6 +344,7 @@ msgstr ""
"utenti. Modificabile solo dal proprietario." "utenti. Modificabile solo dal proprietario."
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Salva" msgstr "Salva"
@@ -470,10 +459,9 @@ msgstr "Rimuovi"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Reset" msgstr "Reset"
@@ -492,7 +480,7 @@ msgstr "Suffisso"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -512,7 +500,7 @@ msgid "Decimal Places"
msgstr "Cifre decimali" msgstr "Cifre decimali"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -578,8 +566,8 @@ msgid "Service Type"
msgstr "Tipo di servizio" msgstr "Tipo di servizio"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -769,8 +757,8 @@ msgstr "Valuta di pagamento"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Note" msgstr "Note"
@@ -802,27 +790,27 @@ msgstr "Rata del PAC"
msgid "DCA Entries" msgid "DCA Entries"
msgstr "Rate del PAC" msgstr "Rate del PAC"
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "Piano d'Accumulo aggiunto con successo" msgstr "Piano d'Accumulo aggiunto con successo"
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "Piano d'Accumulo aggiornato con successo" msgstr "Piano d'Accumulo aggiornato con successo"
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "Piano d'Accumulo eliminato con successo" msgstr "Piano d'Accumulo eliminato con successo"
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "Voce aggiunta con successo" msgstr "Voce aggiunta con successo"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "Voce aggiornata con successo" msgstr "Voce aggiornata con successo"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "Voce eliminata con successo" msgstr "Voce eliminata con successo"
@@ -833,7 +821,7 @@ msgid "Users"
msgstr "Utenti" msgstr "Utenti"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -842,7 +830,7 @@ msgid "Transactions"
msgstr "Transazioni" msgstr "Transazioni"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -853,12 +841,12 @@ msgstr "Categorie"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -870,14 +858,14 @@ msgid "Entities"
msgstr "Beneficiari" msgstr "Beneficiari"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Pagamenti ricorrenti" msgstr "Pagamenti ricorrenti"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1031,7 +1019,7 @@ msgid "Run deleted successfully"
msgstr "Esecuzione eliminata con successo" msgstr "Esecuzione eliminata con successo"
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1130,15 +1118,15 @@ msgstr "Operatore"
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "Tipo" msgstr "Tipo"
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1148,15 +1136,15 @@ msgstr "Pagato"
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "Data di riferimento" msgstr "Data di riferimento"
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1167,27 +1155,27 @@ msgstr "Importo"
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "Descrizione" msgstr "Descrizione"
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "Note interne" msgstr "Note interne"
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "ID Interno" msgstr "ID Interno"
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "Silenzia" msgstr "Silenzia"
@@ -1200,7 +1188,7 @@ msgid "Set Values"
msgstr "Imposta Valori" msgstr "Imposta Valori"
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "Transazione" msgstr "Transazione"
@@ -1296,15 +1284,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "Aggiorna o crea un'azione di transazione" msgstr "Aggiorna o crea un'azione di transazione"
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "Regola disattivata con successo" msgstr "Regola disattivata con successo"
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "Regola attivata con successo" msgstr "Regola attivata con successo"
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "Regola aggiunta con successo" msgstr "Regola aggiunta con successo"
@@ -1312,27 +1300,27 @@ msgstr "Regola aggiunta con successo"
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "Regola aggiornata con successo" msgstr "Regola aggiornata con successo"
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "Regola eliminata con successo" msgstr "Regola eliminata con successo"
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "Azione aggiornata con successo" msgstr "Azione aggiornata con successo"
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "Azione eliminata con successo" msgstr "Azione eliminata con successo"
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "Azione Aggiornamento o Creazione transazione aggiunta correttamente" msgstr "Azione Aggiornamento o Creazione transazione aggiunta correttamente"
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "Azione Aggiornamento o Creazione transazione aggiornata correttamente" msgstr "Azione Aggiornamento o Creazione transazione aggiornata correttamente"
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "Azione Aggiornamento o Creazione transazione eliminata correttamente" msgstr "Azione Aggiornamento o Creazione transazione eliminata correttamente"
@@ -1349,60 +1337,60 @@ msgstr "Previsto"
msgid "Muted" msgid "Muted"
msgstr "Silenziato" msgstr "Silenziato"
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "Contenuto" msgstr "Contenuto"
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "Tipo di transazione" msgstr "Tipo di transazione"
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
#, fuzzy #, fuzzy
#| msgid "Status" #| msgid "Status"
msgid "Mute Status" msgid "Mute Status"
msgstr "Stato" msgstr "Stato"
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "Data da" msgstr "Data da"
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "Fino a" msgstr "Fino a"
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "Data di riferimento da" msgstr "Data di riferimento da"
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "Importo minimo" msgstr "Importo minimo"
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "Importo massimo" msgstr "Importo massimo"
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "Categorizzato" msgstr "Categorizzato"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "Taggato" msgstr "Taggato"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "Senza tag" msgstr "Senza tag"
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "Qualsiasi beneficiario" msgstr "Qualsiasi beneficiario"
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1481,7 +1469,7 @@ msgstr "transazioni future"
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "La data di fine deve essere dopo la data d'inizio" msgstr "La data di fine deve essere dopo la data d'inizio"
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1489,26 +1477,26 @@ msgstr ""
"Le categorie disattivate non potranno essere selezionate durante la " "Le categorie disattivate non potranno essere selezionate durante la "
"creazione di nuove transazioni" "creazione di nuove transazioni"
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "Categoria transazione" msgstr "Categoria transazione"
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "Categorie transazione" msgstr "Categorie transazione"
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
"I tag disattivati non potranno essere selezionati durante la creazione di " "I tag disattivati non potranno essere selezionati durante la creazione di "
"nuove transazioni" "nuove transazioni"
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "Tag di transazione" msgstr "Tag di transazione"
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1516,13 +1504,13 @@ msgstr ""
"I beneficiari disattivati non potranno essere selezionati durante la " "I beneficiari disattivati non potranno essere selezionati durante la "
"creazione di nuove transazioni" "creazione di nuove transazioni"
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "Beneficiari" msgstr "Beneficiari"
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1534,7 +1522,7 @@ msgstr "Beneficiari"
msgid "Income" msgid "Income"
msgstr "Entrate" msgstr "Entrate"
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1545,165 +1533,165 @@ msgstr "Entrate"
msgid "Expense" msgid "Expense"
msgstr "Spesa" msgstr "Spesa"
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "Piano di rateizzazione" msgstr "Piano di rateizzazione"
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "Transazione ricorrente" msgstr "Transazione ricorrente"
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "Eliminato" msgstr "Eliminato"
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "Eliminato alle" msgstr "Eliminato alle"
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "Nessun tag" msgstr "Nessun tag"
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "Nessuna categoria" msgstr "Nessuna categoria"
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "Nessuna descrizione" msgstr "Nessuna descrizione"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
#, fuzzy #, fuzzy
#| msgid "ZIP File" #| msgid "ZIP File"
msgid "File" msgid "File"
msgstr "File ZIP" msgstr "File ZIP"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
#, fuzzy #, fuzzy
#| msgid "Content" #| msgid "Content"
msgid "Content Type" msgid "Content Type"
msgstr "Contenuto" msgstr "Contenuto"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
#, fuzzy #, fuzzy
#| msgid "Transactions on" #| msgid "Transactions on"
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Transazioni del" msgstr "Transazioni del"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
#, fuzzy #, fuzzy
#| msgid "Transaction Tags" #| msgid "Transaction Tags"
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Tag di transazione" msgstr "Tag di transazione"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "Annuale" msgstr "Annuale"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "Mensile" msgstr "Mensile"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "Settimanale" msgstr "Settimanale"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "Quotidiana" msgstr "Quotidiana"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "Numero di rate" msgstr "Numero di rate"
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "Inizio rata" msgstr "Inizio rata"
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "Il numero di rata da cui iniziare il conteggio" msgstr "Il numero di rata da cui iniziare il conteggio"
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "Data di inizio" msgstr "Data di inizio"
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "Data di fine" msgstr "Data di fine"
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "Ricorrenza" msgstr "Ricorrenza"
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "Importo della rata" msgstr "Importo della rata"
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "Aggiungi una descrizione alle transazioni" msgstr "Aggiungi una descrizione alle transazioni"
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "Aggiungi note alle transazioni" msgstr "Aggiungi note alle transazioni"
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "giorno/i" msgstr "giorno/i"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "settimana/e" msgstr "settimana/e"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "mese/i" msgstr "mese/i"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "anno/i" msgstr "anno/i"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "In pausa" msgstr "In pausa"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "Tipo di ricorrenza" msgstr "Tipo di ricorrenza"
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "Frequenza" msgstr "Frequenza"
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "Tieni al massimo" msgstr "Tieni al massimo"
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "Data dell'ultima generazione" msgstr "Data dell'ultima generazione"
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "Data dell'ultimo riferimento generato" msgstr "Data dell'ultimo riferimento generato"
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1712,7 +1700,7 @@ msgstr "Data dell'ultimo riferimento generato"
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "Transazione rapida" msgstr "Transazione rapida"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1763,27 +1751,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "%(count)s transazione duplicata con successo" msgstr[0] "%(count)s transazione duplicata con successo"
msgstr[1] "%(count)s transazioni duplicate con successo" msgstr[1] "%(count)s transazioni duplicate con successo"
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "Categoria aggiunta con successo" msgstr "Categoria aggiunta con successo"
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "Categoria aggiornata con successo" msgstr "Categoria aggiornata con successo"
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "Categoria eliminata con successo" msgstr "Categoria eliminata con successo"
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "Beneficiario aggiunto con successo" msgstr "Beneficiario aggiunto con successo"
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "Beneficiario aggiornato con successo" msgstr "Beneficiario aggiornato con successo"
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "Beneficiario eliminato con successo" msgstr "Beneficiario eliminato con successo"
@@ -1846,15 +1834,15 @@ msgstr "Transazione ricorrente completata con successo"
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "Transazione ricorrente eliminata correttamente" msgstr "Transazione ricorrente eliminata correttamente"
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "Tag aggiunto con successo" msgstr "Tag aggiunto con successo"
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "Tag aggiornato con successo" msgstr "Tag aggiornato con successo"
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "Tag rimosso con successo" msgstr "Tag rimosso con successo"
@@ -1940,9 +1928,9 @@ msgstr "Questo account è disattivato"
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "Predefinito" msgstr "Predefinito"
@@ -2303,6 +2291,7 @@ msgstr "Condividi"
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "Elimina" msgstr "Elimina"
@@ -2790,19 +2779,19 @@ msgstr "Prezzo attuale"
msgid "Amount Bought" msgid "Amount Bought"
msgstr "Importo acquistato" msgstr "Importo acquistato"
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "Prezzo di ingresso vs prezzo corrente" msgstr "Prezzo di ingresso vs prezzo corrente"
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "Giorni tra gli investimenti" msgstr "Giorni tra gli investimenti"
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "Frequenza di investimento" msgstr "Frequenza di investimento"
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." 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." msgstr "Più dritta è la linea blu, più coerente è la tua strategia DCA."
@@ -3045,6 +3034,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
@@ -3481,16 +3471,16 @@ msgid "Summary"
msgstr "Riepilogo" msgstr "Riepilogo"
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "Prima le più vecchie" msgstr "Prima le più vecchie"
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "Prima le più recenti" msgstr "Prima le più recenti"
@@ -3499,8 +3489,8 @@ msgstr "Prima le più recenti"
msgid "Filter transactions" msgid "Filter transactions"
msgstr "Filtra transazioni" msgstr "Filtra transazioni"
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "Ordina per" msgstr "Ordina per"
@@ -3611,15 +3601,21 @@ msgstr "Nessuna transazione ricorrente"
msgid "View" msgid "View"
msgstr "Vista" msgstr "Vista"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "Disattiva" msgstr "Disattiva"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "Attiva" msgstr "Attiva"
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Solo il proprietario può modificare questo elemento"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "Nessuna regola" msgstr "Nessuna regola"
@@ -3766,6 +3762,48 @@ msgstr "Modifica"
msgid "transactions" msgid "transactions"
msgstr "transazioni" msgstr "transazioni"
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
#, fuzzy
#| msgid "File name"
msgid "Preset name"
msgstr "Nome file"
#: templates/transactions/fragments/filter_actions.html:40
#, fuzzy
#| msgid "From preset"
msgid "Save preset"
msgstr "Da preset"
#: templates/transactions/fragments/filter_presets.html:6
#, fuzzy
#| msgid "From preset"
msgid "Filter presets"
msgstr "Da preset"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
#, fuzzy
#| msgid "No presets yet"
msgid "No saved presets"
msgstr "Ancora nessun preset"
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "Nessuna transazione trovata" msgstr "Nessuna transazione trovata"
+218 -188
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2026-07-05 15:57+0000\n" "PO-Revision-Date: 2026-08-17 15:57+0000\n"
"Last-Translator: Dimitri Decrock <dj.flashpower@gmail.com>\n" "Last-Translator: Dimitri Decrock <dj.flashpower@gmail.com>\n"
"Language-Team: Dutch <https://translations.herculino.com/projects/wygiwyh/" "Language-Team: Dutch <https://translations.herculino.com/projects/wygiwyh/"
"app/nl/>\n" "app/nl/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.6.1\n" "X-Generator: Weblate 2026.8.1\n"
#: apps/accounts/forms.py:24 #: apps/accounts/forms.py:24
msgid "Group name" msgid "Group name"
@@ -66,9 +66,9 @@ msgstr "Nieuw saldo"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -79,13 +79,13 @@ msgstr "Categorie"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -97,8 +97,8 @@ msgstr "Labels"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -170,9 +170,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -181,7 +181,7 @@ msgid "Account"
msgstr "Rekening" msgstr "Rekening"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -195,68 +195,56 @@ msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "" msgstr ""
"Eenheid wisselgeld kan niet dezelfde zijn als de munteenheid van de rekening." "Eenheid wisselgeld kan niet dezelfde zijn als de munteenheid van de rekening."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Rekeninggroep succesvol toegevoegd" msgstr "Rekeninggroep succesvol toegevoegd"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Alleen de eigenaar kan dit bewerken"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "Rekeninggroep succesvol bijgewerkt" msgstr "Rekeninggroep succesvol bijgewerkt"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "Item is niet langer met jouw gedeeld"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "Rekeninggroep succesvol verwijderd" msgstr "Rekeninggroep succesvol verwijderd"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "Item is niet langer met jouw gedeeld"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "Eigendom succesvol genomen" msgstr "Eigendom succesvol genomen"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "Configuratie succesvol opgeslagen" msgstr "Configuratie succesvol opgeslagen"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "Rekening succesvol toegevoegd" msgstr "Rekening succesvol toegevoegd"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "Rekening succesvol bijgewerkt" msgstr "Rekening succesvol bijgewerkt"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "Rekening succesvol verwijderd" msgstr "Rekening succesvol verwijderd"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "Account wordt nu bijgehouden" msgstr "Account wordt nu bijgehouden"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "Account wordt nu niet meer bijgehouden" msgstr "Account wordt nu niet meer bijgehouden"
@@ -356,6 +344,7 @@ msgstr ""
"Alleen bewerkbaar door de eigenaar." "Alleen bewerkbaar door de eigenaar."
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Opslaan" msgstr "Opslaan"
@@ -470,10 +459,9 @@ msgstr "Verwijder"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Leegmaken" msgstr "Leegmaken"
@@ -492,7 +480,7 @@ msgstr "Achtervoegsel"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -512,7 +500,7 @@ msgid "Decimal Places"
msgstr "Cijfers na de komma" msgstr "Cijfers na de komma"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -578,8 +566,8 @@ msgid "Service Type"
msgstr "Soort Dienst" msgstr "Soort Dienst"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -770,8 +758,8 @@ msgstr "Betaal Munteenheid"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Opmerkingen" msgstr "Opmerkingen"
@@ -803,27 +791,27 @@ msgstr "DCA Instap"
msgid "DCA Entries" msgid "DCA Entries"
msgstr "DCA Idems" msgstr "DCA Idems"
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "Strategie voor DCA succesvol toegevoegd" msgstr "Strategie voor DCA succesvol toegevoegd"
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "Strategie voor DCA succesvol bijgewerkt" msgstr "Strategie voor DCA succesvol bijgewerkt"
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "Strategie voor DCA succesvol verwijderd" msgstr "Strategie voor DCA succesvol verwijderd"
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "Item succesvol toegevoegd" msgstr "Item succesvol toegevoegd"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "Invoer succesvol bijgewerkt" msgstr "Invoer succesvol bijgewerkt"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "Invoer succesvol verwijderd" msgstr "Invoer succesvol verwijderd"
@@ -834,7 +822,7 @@ msgid "Users"
msgstr "Gebruikers" msgstr "Gebruikers"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -843,7 +831,7 @@ msgid "Transactions"
msgstr "Verrichtingen" msgstr "Verrichtingen"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -854,12 +842,12 @@ msgstr "Categorieën"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -871,14 +859,14 @@ msgid "Entities"
msgstr "Bedrijven" msgstr "Bedrijven"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Terugkerende Verrichtingen" msgstr "Terugkerende Verrichtingen"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1032,7 +1020,7 @@ msgid "Run deleted successfully"
msgstr "Run met succes verwijderd" msgstr "Run met succes verwijderd"
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1130,15 +1118,15 @@ msgstr "Operator"
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "Soort" msgstr "Soort"
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1148,15 +1136,15 @@ msgstr "Betaald"
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "Referentiedatum" msgstr "Referentiedatum"
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1167,27 +1155,27 @@ msgstr "Bedrag"
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "Beschrijving" msgstr "Beschrijving"
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "Interne opmerking" msgstr "Interne opmerking"
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "Interne ID" msgstr "Interne ID"
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "Dempen" msgstr "Dempen"
@@ -1200,7 +1188,7 @@ msgid "Set Values"
msgstr "Waarden Instellen" msgstr "Waarden Instellen"
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "Verrichting" msgstr "Verrichting"
@@ -1296,15 +1284,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "Bewerk of maak verrichtingsregel actie" msgstr "Bewerk of maak verrichtingsregel actie"
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "Regel succesvol uitgeschakeld" msgstr "Regel succesvol uitgeschakeld"
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "Regel succesvol ingeschakeld" msgstr "Regel succesvol ingeschakeld"
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "Regel succesvol toegevoegd" msgstr "Regel succesvol toegevoegd"
@@ -1312,27 +1300,27 @@ msgstr "Regel succesvol toegevoegd"
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "Regel succesvol bijgewerkt" msgstr "Regel succesvol bijgewerkt"
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "Regel succesvol verwijderd" msgstr "Regel succesvol verwijderd"
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "Actie succesvol bijgewerkt" msgstr "Actie succesvol bijgewerkt"
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "Actie succesvol verwijderd" msgstr "Actie succesvol verwijderd"
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "Verrichting Bijwerken Of Maken succesvol toegevoegd" msgstr "Verrichting Bijwerken Of Maken succesvol toegevoegd"
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "Verrichting Bijwerken Of Maken succesvol bijgewerkt" msgstr "Verrichting Bijwerken Of Maken succesvol bijgewerkt"
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "Verrichting Bijwerken Of Maken succesvol verwijderd" msgstr "Verrichting Bijwerken Of Maken succesvol verwijderd"
@@ -1349,58 +1337,58 @@ msgstr "Ingepland"
msgid "Muted" msgid "Muted"
msgstr "Gedempt" msgstr "Gedempt"
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "Inhoud" msgstr "Inhoud"
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "Soort transactie" msgstr "Soort transactie"
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "Demp Status" msgstr "Demp Status"
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "Datum vanaf" msgstr "Datum vanaf"
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "Tot" msgstr "Tot"
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "Referentiedatum vanaf" msgstr "Referentiedatum vanaf"
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "Minimum bedrag" msgstr "Minimum bedrag"
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "Maximaal bedrag" msgstr "Maximaal bedrag"
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "Gecategoriseerd" msgstr "Gecategoriseerd"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "Gelabeld" msgstr "Gelabeld"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "Niet gelabeld" msgstr "Niet gelabeld"
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "Elk bedrijf" msgstr "Elk bedrijf"
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1477,7 +1465,7 @@ msgstr "toekomstige verrichtingen"
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "De einddatum moet na de begindatum vallen" msgstr "De einddatum moet na de begindatum vallen"
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1485,26 +1473,26 @@ msgstr ""
"Gedeactiveerde categorieën kunnen niet worden geselecteerd bij het maken van " "Gedeactiveerde categorieën kunnen niet worden geselecteerd bij het maken van "
"nieuwe transacties" "nieuwe transacties"
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "Transactie categorie" msgstr "Transactie categorie"
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "Transactie categorieën" msgstr "Transactie categorieën"
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
"Gedeactiveerde labels kunnen niet worden geselecteerd bij het maken van " "Gedeactiveerde labels kunnen niet worden geselecteerd bij het maken van "
"nieuwe verrichtingen" "nieuwe verrichtingen"
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "Verrichting Labels" msgstr "Verrichting Labels"
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1512,13 +1500,13 @@ msgstr ""
"Gedeactiveerde bedrijven kunnen niet worden geselecteerd bij het maken van " "Gedeactiveerde bedrijven kunnen niet worden geselecteerd bij het maken van "
"nieuwe verrichtingen" "nieuwe verrichtingen"
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "Bedrijf" msgstr "Bedrijf"
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1530,7 +1518,7 @@ msgstr "Bedrijf"
msgid "Income" msgid "Income"
msgstr "Ontvangsten Transactie" msgstr "Ontvangsten Transactie"
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1541,157 +1529,157 @@ msgstr "Ontvangsten Transactie"
msgid "Expense" msgid "Expense"
msgstr "Uitgave" msgstr "Uitgave"
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "Afbetalingsplan" msgstr "Afbetalingsplan"
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "Terugkerende verrichting" msgstr "Terugkerende verrichting"
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "Verwijderd" msgstr "Verwijderd"
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "Verwijderd Op" msgstr "Verwijderd Op"
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "Geen labels" msgstr "Geen labels"
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "Geen categorie" msgstr "Geen categorie"
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "Geen Beschrijving" msgstr "Geen Beschrijving"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
msgid "File" msgid "File"
msgstr "Bestand" msgstr "Bestand"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "Originele Naam" msgstr "Originele Naam"
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
msgid "Content Type" msgid "Content Type"
msgstr "Inhoudstype" msgstr "Inhoudstype"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "Grootte" msgstr "Grootte"
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "Geüpload Door" msgstr "Geüpload Door"
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Transactiebijlage" msgstr "Transactiebijlage"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Transactiebijlages" msgstr "Transactiebijlages"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "Jaarlijks" msgstr "Jaarlijks"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "Maandelijks" msgstr "Maandelijks"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "Wekelijks" msgstr "Wekelijks"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "Dagelijks" msgstr "Dagelijks"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "Aantal aflossingen" msgstr "Aantal aflossingen"
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "Begin afbetaling" msgstr "Begin afbetaling"
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "Het nummer van de aflevering om mee te beginnen" msgstr "Het nummer van de aflevering om mee te beginnen"
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "Startdatum" msgstr "Startdatum"
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "Einddatum" msgstr "Einddatum"
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "Terugkeerpatroon" msgstr "Terugkeerpatroon"
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "Termijnbedrag" msgstr "Termijnbedrag"
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "Beschrijving toevoegen aan verrichting" msgstr "Beschrijving toevoegen aan verrichting"
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "Notities toevoegen aan verrichting" msgstr "Notities toevoegen aan verrichting"
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "dag(en)" msgstr "dag(en)"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "we(e)k(en)" msgstr "we(e)k(en)"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "maand(en)" msgstr "maand(en)"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "ja(a)r(en)" msgstr "ja(a)r(en)"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "Gepauzeerd" msgstr "Gepauzeerd"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "Type Terugkeerpatroon" msgstr "Type Terugkeerpatroon"
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "Terugkeer Interval" msgstr "Terugkeer Interval"
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "Bewaar maximaal" msgstr "Bewaar maximaal"
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "Laatste Gegenereerde Datum" msgstr "Laatste Gegenereerde Datum"
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "Laatste Gegenereerde Referentiedatum" msgstr "Laatste Gegenereerde Referentiedatum"
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1700,7 +1688,7 @@ msgstr "Laatste Gegenereerde Referentiedatum"
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "Snelle verrichting" msgstr "Snelle verrichting"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1751,27 +1739,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "%(count)s verrichting succesvol gedupliceerd" msgstr[0] "%(count)s verrichting succesvol gedupliceerd"
msgstr[1] "%(count)s verrichtingen succesvol gedupliceerd" msgstr[1] "%(count)s verrichtingen succesvol gedupliceerd"
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "Categorie succesvol toegevoegd" msgstr "Categorie succesvol toegevoegd"
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "Categorie succesvol bijgewerkt" msgstr "Categorie succesvol bijgewerkt"
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "Categorie succesvol verwijderd" msgstr "Categorie succesvol verwijderd"
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "Bedrijf succesvol toegevoegd" msgstr "Bedrijf succesvol toegevoegd"
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "Bedrijf succesvol bijgewerkt" msgstr "Bedrijf succesvol bijgewerkt"
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "Bedrijf succesvol verwijderd" msgstr "Bedrijf succesvol verwijderd"
@@ -1834,15 +1822,15 @@ msgstr "Terugkerende Verrichting succesvol voltooid"
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "Terugkerende Verrichting succesvol verwijderd" msgstr "Terugkerende Verrichting succesvol verwijderd"
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "Label succesvol toegevoegd" msgstr "Label succesvol toegevoegd"
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "Label succesvol bijgewerkt" msgstr "Label succesvol bijgewerkt"
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "Label succesvol verwijderd" msgstr "Label succesvol verwijderd"
@@ -1924,9 +1912,9 @@ msgstr "Deze gebruiker is gedeactiveerd"
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "Standaard" msgstr "Standaard"
@@ -2256,6 +2244,7 @@ msgstr "Deel"
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "Verwijderen" msgstr "Verwijderen"
@@ -2741,19 +2730,19 @@ msgstr "Actuele Prijs"
msgid "Amount Bought" msgid "Amount Bought"
msgstr "Gekocht Bedrag" msgstr "Gekocht Bedrag"
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "Instapprijs vs Huidige Prijs" msgstr "Instapprijs vs Huidige Prijs"
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "Dagen Tussen Investeringen" msgstr "Dagen Tussen Investeringen"
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "Investeringsfrequentie" msgstr "Investeringsfrequentie"
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." 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." msgstr "Hoe rechter de blauwe lijn, hoe consistenter je DCA-strategie is."
@@ -2889,7 +2878,7 @@ msgstr "Geen importprofielen"
#: templates/import_app/fragments/profiles/list_presets.html:5 #: templates/import_app/fragments/profiles/list_presets.html:5
msgid "Import Presets" msgid "Import Presets"
msgstr "Presets importeren" msgstr "Voorinstellingen importeren"
#: templates/import_app/fragments/profiles/list_presets.html:33 #: templates/import_app/fragments/profiles/list_presets.html:33
msgid "By" msgid "By"
@@ -2995,6 +2984,7 @@ msgid "Reload"
msgstr "Herlaad" msgstr "Herlaad"
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "Annuleer" msgstr "Annuleer"
@@ -3414,16 +3404,16 @@ msgid "Summary"
msgstr "Samenvatting" msgstr "Samenvatting"
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "Oudste eerst" msgstr "Oudste eerst"
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "Nieuwste eerst" msgstr "Nieuwste eerst"
@@ -3432,8 +3422,8 @@ msgstr "Nieuwste eerst"
msgid "Filter transactions" msgid "Filter transactions"
msgstr "Filter verrichtingen" msgstr "Filter verrichtingen"
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "Sorteer op" msgstr "Sorteer op"
@@ -3545,15 +3535,21 @@ msgstr "Geen terugkerende verrichtingen"
msgid "View" msgid "View"
msgstr "Toon" msgstr "Toon"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "Uitschakelen" msgstr "Uitschakelen"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "Inschakelen" msgstr "Inschakelen"
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Alleen de eigenaar kan dit bewerken"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "Geen regels" msgstr "Geen regels"
@@ -3696,6 +3692,40 @@ msgstr "Bewerking"
msgid "transactions" msgid "transactions"
msgstr "verrichtingen" msgstr "verrichtingen"
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr "Instellingen filter opslaan"
#: templates/transactions/fragments/filter_actions.html:3
msgid "Preset name"
msgstr "Preset snaam"
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr "Opslaan voorinstelling"
#: templates/transactions/fragments/filter_presets.html:6
msgid "Filter presets"
msgstr "Filter voorinstelling"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr "Verwijder %(name)s"
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr "Voorinstelling filter verwijderen?"
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr "Verwijder “%(name)s”?"
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr "Geen opgeslagen voorinstellingen"
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "Geen Verrichtingen gevonden" msgstr "Geen Verrichtingen gevonden"
+219 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2026-06-08 07:57+0000\n" "PO-Revision-Date: 2026-06-08 07:57+0000\n"
"Last-Translator: Pawel Augustyn <pawelaugustyn15@gmail.com>\n" "Last-Translator: Pawel Augustyn <pawelaugustyn15@gmail.com>\n"
"Language-Team: Polish <https://translations.herculino.com/projects/wygiwyh/" "Language-Team: Polish <https://translations.herculino.com/projects/wygiwyh/"
@@ -67,9 +67,9 @@ msgstr "Nowe saldo"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -80,13 +80,13 @@ msgstr "Kategoria"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -98,8 +98,8 @@ msgstr "Tagi"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -171,9 +171,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -182,7 +182,7 @@ msgid "Account"
msgstr "Konto" msgstr "Konto"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -195,68 +195,56 @@ msgstr "Konta"
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "Waluta do wymiany nie może być taka sama jak waluta konta." msgstr "Waluta do wymiany nie może być taka sama jak waluta konta."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Grupa kont dodana pomyślnie" msgstr "Grupa kont dodana pomyślnie"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Tylko właściciel może to edytować"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "Zaktualizowano grupę kont" msgstr "Zaktualizowano grupę kont"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "Ten wpis nie jest już dostępny dla Ciebie"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "Usunięto grupę kont" msgstr "Usunięto grupę kont"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "Ten wpis nie jest już dostępny dla Ciebie"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "Własność przejęta pomyślnie" msgstr "Własność przejęta pomyślnie"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "Pomyślnie zapisano konfigurację" msgstr "Pomyślnie zapisano konfigurację"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "Konto dodane pomyślnie" msgstr "Konto dodane pomyślnie"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "Konto zaktualizowane" msgstr "Konto zaktualizowane"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "Usunięto konto" msgstr "Usunięto konto"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "Konto jest teraz śledzone" msgstr "Konto jest teraz śledzone"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "Przestano śledzić konto" msgstr "Przestano śledzić konto"
@@ -360,6 +348,7 @@ msgstr ""
"Widoczne dla wszystkich. Tylko właściciel może dokonywać zmian." "Widoczne dla wszystkich. Tylko właściciel może dokonywać zmian."
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Zapisz" msgstr "Zapisz"
@@ -480,10 +469,9 @@ msgstr "Usuń"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Wyczyść" msgstr "Wyczyść"
@@ -502,7 +490,7 @@ msgstr "Suffix"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -522,7 +510,7 @@ msgid "Decimal Places"
msgstr "Liczba miejsc po przecinku" msgstr "Liczba miejsc po przecinku"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -588,8 +576,8 @@ msgid "Service Type"
msgstr "Typ serwisu" msgstr "Typ serwisu"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -774,8 +762,8 @@ msgstr "Waluta dla płatności"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Notatki" msgstr "Notatki"
@@ -807,27 +795,27 @@ msgstr ""
msgid "DCA Entries" msgid "DCA Entries"
msgstr "" msgstr ""
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "Pomyślnie dodano wpis" msgstr "Pomyślnie dodano wpis"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "Pomyślnie zaktualizowano wpis" msgstr "Pomyślnie zaktualizowano wpis"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "Pomyślnie usunięto wpis" msgstr "Pomyślnie usunięto wpis"
@@ -838,7 +826,7 @@ msgid "Users"
msgstr "Użytkownicy" msgstr "Użytkownicy"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -847,7 +835,7 @@ msgid "Transactions"
msgstr "Transakcje" msgstr "Transakcje"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -858,12 +846,12 @@ msgstr "Kategorie"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -875,14 +863,14 @@ msgid "Entities"
msgstr "Encje" msgstr "Encje"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Zlecenia stałe" msgstr "Zlecenia stałe"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1036,7 +1024,7 @@ msgid "Run deleted successfully"
msgstr "Usunięto import" msgstr "Usunięto import"
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1134,15 +1122,15 @@ msgstr "Operator"
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "Typ" msgstr "Typ"
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1152,15 +1140,15 @@ msgstr "Zapłacono"
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "Data referencyjna" msgstr "Data referencyjna"
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1171,27 +1159,27 @@ msgstr "Kwota"
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "Opis" msgstr "Opis"
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "Notatka" msgstr "Notatka"
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "Wewnętrzne ID" msgstr "Wewnętrzne ID"
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "Wycisz" msgstr "Wycisz"
@@ -1204,7 +1192,7 @@ msgid "Set Values"
msgstr "Ustaw wartości" msgstr "Ustaw wartości"
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "Transakcja" msgstr "Transakcja"
@@ -1300,15 +1288,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "Zaktualizuj lub utwórz akcję transakcji" msgstr "Zaktualizuj lub utwórz akcję transakcji"
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "Reguła zdezaktywowana" msgstr "Reguła zdezaktywowana"
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "Reguła aktywowana" msgstr "Reguła aktywowana"
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "Dodano regułę" msgstr "Dodano regułę"
@@ -1316,27 +1304,27 @@ msgstr "Dodano regułę"
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "Zaktualizowano regułę" msgstr "Zaktualizowano regułę"
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "Usunięto regułę" msgstr "Usunięto regułę"
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "Zaktualizowano akcję" msgstr "Zaktualizowano akcję"
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "Usunięto akcję" msgstr "Usunięto akcję"
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "Akcja stworzenia lub aktualizacji transakcji dodana pomyślnie" msgstr "Akcja stworzenia lub aktualizacji transakcji dodana pomyślnie"
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "Akcja stworzenia lub aktualizacji transakcji zmodyfikowana" msgstr "Akcja stworzenia lub aktualizacji transakcji zmodyfikowana"
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "Usunięto akcję stworzenia lub aktualizacji transakcji" msgstr "Usunięto akcję stworzenia lub aktualizacji transakcji"
@@ -1353,58 +1341,58 @@ msgstr "Przewidywane"
msgid "Muted" msgid "Muted"
msgstr "Wyciszone" msgstr "Wyciszone"
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "Zawartość" msgstr "Zawartość"
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "Typ transakcji" msgstr "Typ transakcji"
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "Wycisz status" msgstr "Wycisz status"
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "Data od" msgstr "Data od"
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "Data do" msgstr "Data do"
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "Data referencyjna od" msgstr "Data referencyjna od"
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "Kwota od" msgstr "Kwota od"
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "Kwota do" msgstr "Kwota do"
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "Skategoryzowane" msgstr "Skategoryzowane"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "Otagowane" msgstr "Otagowane"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "Nieotagowane" msgstr "Nieotagowane"
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "Dowolna encja" msgstr "Dowolna encja"
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1481,7 +1469,7 @@ msgstr "przyszłe transakcje"
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "Data końcowa powinna być po dacie startowej" msgstr "Data końcowa powinna być po dacie startowej"
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1489,26 +1477,26 @@ msgstr ""
"Zdezaktywowanych kategorii nie da się wykorzystać przy tworzeniu nowych " "Zdezaktywowanych kategorii nie da się wykorzystać przy tworzeniu nowych "
"transakcji" "transakcji"
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "Kategoria transakcji" msgstr "Kategoria transakcji"
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "Kategorie transakcji" msgstr "Kategorie transakcji"
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
"Zdezaktywowanych tagów nie da się wykorzystać przy tworzeniu nowych " "Zdezaktywowanych tagów nie da się wykorzystać przy tworzeniu nowych "
"transakcji" "transakcji"
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "Tagi transakcji" msgstr "Tagi transakcji"
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1516,13 +1504,13 @@ msgstr ""
"Zdezaktywowanych encji nie da się wykorzystać przy tworzeniu nowych " "Zdezaktywowanych encji nie da się wykorzystać przy tworzeniu nowych "
"transakcji" "transakcji"
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "Encja" msgstr "Encja"
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1534,7 +1522,7 @@ msgstr "Encja"
msgid "Income" msgid "Income"
msgstr "Przychody" msgstr "Przychody"
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1545,161 +1533,161 @@ msgstr "Przychody"
msgid "Expense" msgid "Expense"
msgstr "Wydatek" msgstr "Wydatek"
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "" msgstr ""
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "Zlecenie stałe" msgstr "Zlecenie stałe"
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "Usunięte" msgstr "Usunięte"
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "" msgstr ""
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "Brak tagów" msgstr "Brak tagów"
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "Brak kategorii" msgstr "Brak kategorii"
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "Brak opisu" msgstr "Brak opisu"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
#, fuzzy #, fuzzy
#| msgid "ZIP File" #| msgid "ZIP File"
msgid "File" msgid "File"
msgstr "Plik ZIP" msgstr "Plik ZIP"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
#, fuzzy #, fuzzy
#| msgid "Content" #| msgid "Content"
msgid "Content Type" msgid "Content Type"
msgstr "Zawartość" msgstr "Zawartość"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Załącznik transakcji" msgstr "Załącznik transakcji"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Załączniki transakcji" msgstr "Załączniki transakcji"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "Rocznie" msgstr "Rocznie"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "Miesięcznie" msgstr "Miesięcznie"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "Tygodniowo" msgstr "Tygodniowo"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "Dziennie" msgstr "Dziennie"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "" msgstr ""
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "" msgstr ""
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "" msgstr ""
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "Data startowa" msgstr "Data startowa"
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "Data końcowa" msgstr "Data końcowa"
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "Zlecenie stałe" msgstr "Zlecenie stałe"
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "" msgstr ""
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "Dodaj opis dla transakcji" msgstr "Dodaj opis dla transakcji"
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "Dodaj notatki do transakcji" msgstr "Dodaj notatki do transakcji"
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "dni" msgstr "dni"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "tygodni" msgstr "tygodni"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "miesięcy" msgstr "miesięcy"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "lat" msgstr "lat"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "Zapauzowane" msgstr "Zapauzowane"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "Typ powtarzania" msgstr "Typ powtarzania"
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "Co ile powtarzać" msgstr "Co ile powtarzać"
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "Zachowuj co najwyżej" msgstr "Zachowuj co najwyżej"
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1708,7 +1696,7 @@ msgstr ""
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "Szablon transakcji" msgstr "Szablon transakcji"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1764,27 +1752,27 @@ msgstr[0] "Zduplikowano %(count)s transakcję"
msgstr[1] "Zduplikowano %(count)s transakcje" msgstr[1] "Zduplikowano %(count)s transakcje"
msgstr[2] "Zduplikowano %(count)s transakcji" msgstr[2] "Zduplikowano %(count)s transakcji"
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "Dodano kategorię" msgstr "Dodano kategorię"
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "Zaktualizowano kategorię" msgstr "Zaktualizowano kategorię"
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "Usunięto kategorię" msgstr "Usunięto kategorię"
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "Dodano encję" msgstr "Dodano encję"
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "Zaktualizowano encję" msgstr "Zaktualizowano encję"
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "Usunięto encję" msgstr "Usunięto encję"
@@ -1847,15 +1835,15 @@ msgstr "Zakończono zlecenie stałe"
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "Usunięto zlecenie stałe" msgstr "Usunięto zlecenie stałe"
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "Dodano tag" msgstr "Dodano tag"
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "Zaktualizowano tag" msgstr "Zaktualizowano tag"
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "Usunięto tag" msgstr "Usunięto tag"
@@ -1938,9 +1926,9 @@ msgstr "To konto jest nieaktywne"
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "Domyślne" msgstr "Domyślne"
@@ -2287,6 +2275,7 @@ msgstr "Udostępnij"
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "Usuń" msgstr "Usuń"
@@ -2772,19 +2761,19 @@ msgstr ""
msgid "Amount Bought" msgid "Amount Bought"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
@@ -3025,6 +3014,7 @@ msgid "Reload"
msgstr "Odśwież" msgstr "Odśwież"
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -3439,16 +3429,16 @@ msgid "Summary"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "" msgstr ""
@@ -3457,8 +3447,8 @@ msgstr ""
msgid "Filter transactions" msgid "Filter transactions"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "" msgstr ""
@@ -3566,15 +3556,21 @@ msgstr "Brak zleceń stałych"
msgid "View" msgid "View"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Tylko właściciel może to edytować"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "" msgstr ""
@@ -3717,6 +3713,44 @@ msgstr ""
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
#, fuzzy
#| msgid "File name"
msgid "Preset name"
msgstr "Nazwa pliku"
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:6
#, fuzzy
#| msgid "Filter"
msgid "Filter presets"
msgstr "Filtr"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr ""
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "" msgstr ""
+217 -187
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2026-07-05 23:34+0000\n" "PO-Revision-Date: 2026-08-16 22:03+0000\n"
"Last-Translator: Herculino Trotta <netotrotta@gmail.com>\n" "Last-Translator: Herculino Trotta <netotrotta@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translations.herculino.com/" "Language-Team: Portuguese (Brazil) <https://translations.herculino.com/"
"projects/wygiwyh/app/pt_BR/>\n" "projects/wygiwyh/app/pt_BR/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 2026.6.1\n" "X-Generator: Weblate 2026.8.1\n"
#: apps/accounts/forms.py:24 #: apps/accounts/forms.py:24
msgid "Group name" msgid "Group name"
@@ -66,9 +66,9 @@ msgstr "Novo saldo"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -79,13 +79,13 @@ msgstr "Categoria"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -97,8 +97,8 @@ msgstr "Tags"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -169,9 +169,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -180,7 +180,7 @@ msgid "Account"
msgstr "Conta" msgstr "Conta"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -193,68 +193,56 @@ msgstr "Contas"
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "A moeda de câmbio não pode ser a mesma que a moeda principal da conta." msgstr "A moeda de câmbio não pode ser a mesma que a moeda principal da conta."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Grupo de Conta adicionado com sucesso" msgstr "Grupo de Conta adicionado com sucesso"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Somente o proprietário pode editar isso"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "Grupo de Conta atualizado com sucesso" msgstr "Grupo de Conta atualizado com sucesso"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "Item não está mais compartilhado com você"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "Grupo de Conta apagado com sucesso" msgstr "Grupo de Conta apagado com sucesso"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "Item não está mais compartilhado com você"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "Propriedade assumida com sucesso" msgstr "Propriedade assumida com sucesso"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "Configuração salva com sucesso" msgstr "Configuração salva com sucesso"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "Conta adicionado com sucesso" msgstr "Conta adicionado com sucesso"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "Conta atualizada com sucesso" msgstr "Conta atualizada com sucesso"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "Conta apagada com sucesso" msgstr "Conta apagada com sucesso"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "A conta agora está sendo acompanhada" msgstr "A conta agora está sendo acompanhada"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "A conta agora não está mais sendo acompanhada" msgstr "A conta agora não está mais sendo acompanhada"
@@ -354,6 +342,7 @@ msgstr ""
"usuários. Somente editável pelo proprietário." "usuários. Somente editável pelo proprietário."
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Salvar" msgstr "Salvar"
@@ -468,10 +457,9 @@ msgstr "Remover"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Limpar" msgstr "Limpar"
@@ -490,7 +478,7 @@ msgstr "Sufixo"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -510,7 +498,7 @@ msgid "Decimal Places"
msgstr "Casas Decimais" msgstr "Casas Decimais"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -576,8 +564,8 @@ msgid "Service Type"
msgstr "Tipo de Serviço" msgstr "Tipo de Serviço"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -768,8 +756,8 @@ msgstr "Moeda de pagamento"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Notas" msgstr "Notas"
@@ -801,27 +789,27 @@ msgstr "Entrada CMP"
msgid "DCA Entries" msgid "DCA Entries"
msgstr "Entradas CMP" msgstr "Entradas CMP"
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "Estratégia CMP adicionada com sucesso" msgstr "Estratégia CMP adicionada com sucesso"
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "Estratégia CMP atualizada com sucesso" msgstr "Estratégia CMP atualizada com sucesso"
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "Estratégia CMP apagada com sucesso" msgstr "Estratégia CMP apagada com sucesso"
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "Entrada adicionada com sucesso" msgstr "Entrada adicionada com sucesso"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "Entrada atualizada com sucesso" msgstr "Entrada atualizada com sucesso"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "Entrada apagada com sucesso" msgstr "Entrada apagada com sucesso"
@@ -832,7 +820,7 @@ msgid "Users"
msgstr "Usuários" msgstr "Usuários"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -841,7 +829,7 @@ msgid "Transactions"
msgstr "Transações" msgstr "Transações"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -852,12 +840,12 @@ msgstr "Categorias"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -869,14 +857,14 @@ msgid "Entities"
msgstr "Entidades" msgstr "Entidades"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Transações Recorrentes" msgstr "Transações Recorrentes"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1030,7 +1018,7 @@ msgid "Run deleted successfully"
msgstr "Importação apagada com sucesso" msgstr "Importação apagada com sucesso"
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1128,15 +1116,15 @@ msgstr "Operador"
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "Tipo" msgstr "Tipo"
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1146,15 +1134,15 @@ msgstr "Pago"
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "Data de Referência" msgstr "Data de Referência"
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1165,27 +1153,27 @@ msgstr "Quantia"
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "Descrição" msgstr "Descrição"
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "Nota Interna" msgstr "Nota Interna"
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "ID Interna" msgstr "ID Interna"
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "Silenciada" msgstr "Silenciada"
@@ -1198,7 +1186,7 @@ msgid "Set Values"
msgstr "Definir valores" msgstr "Definir valores"
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "Transação" msgstr "Transação"
@@ -1294,15 +1282,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "Ação de atualizar ou criar transação" msgstr "Ação de atualizar ou criar transação"
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "Regra desativada com sucesso" msgstr "Regra desativada com sucesso"
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "Regra ativada com sucesso" msgstr "Regra ativada com sucesso"
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "Regra adicionada com sucesso" msgstr "Regra adicionada com sucesso"
@@ -1310,27 +1298,27 @@ msgstr "Regra adicionada com sucesso"
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "Regra atualizada com sucesso" msgstr "Regra atualizada com sucesso"
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "Regra apagada com sucesso" msgstr "Regra apagada com sucesso"
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "Ação atualizada com sucesso" msgstr "Ação atualizada com sucesso"
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "Ação apagada com sucesso" msgstr "Ação apagada com sucesso"
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "Ação Atualizar ou Criar Transação adicionada com sucesso" msgstr "Ação Atualizar ou Criar Transação adicionada com sucesso"
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "Ação Atualizar ou Criar Transação atualizada com sucesso" msgstr "Ação Atualizar ou Criar Transação atualizada com sucesso"
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "Ação Atualizar ou Criar Transação apagada com sucesso" msgstr "Ação Atualizar ou Criar Transação apagada com sucesso"
@@ -1347,58 +1335,58 @@ msgstr "Previsto"
msgid "Muted" msgid "Muted"
msgstr "Silenciada" msgstr "Silenciada"
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "Conteúdo" msgstr "Conteúdo"
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "Tipo de Transação" msgstr "Tipo de Transação"
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "Status de silenciamento" msgstr "Status de silenciamento"
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "Data de" msgstr "Data de"
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "Até" msgstr "Até"
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "Data de Referência de" msgstr "Data de Referência de"
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "Quantia miníma" msgstr "Quantia miníma"
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "Quantia máxima" msgstr "Quantia máxima"
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "Categorizada" msgstr "Categorizada"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "Com tag" msgstr "Com tag"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "Sem tag" msgstr "Sem tag"
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "Qualquer entidade" msgstr "Qualquer entidade"
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1475,7 +1463,7 @@ msgstr "transações futuras"
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "Data final deve ser após data inicial" msgstr "Data final deve ser após data inicial"
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1483,25 +1471,25 @@ msgstr ""
"As categorias desativadas não poderão ser selecionadas ao criar novas " "As categorias desativadas não poderão ser selecionadas ao criar novas "
"transações" "transações"
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "Categoria da Transação" msgstr "Categoria da Transação"
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "Categorias da Trasanção" msgstr "Categorias da Trasanção"
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
"As tags desativadas não poderão ser selecionadas ao criar novas transações" "As tags desativadas não poderão ser selecionadas ao criar novas transações"
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "Tags da Transação" msgstr "Tags da Transação"
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
@@ -1509,13 +1497,13 @@ msgstr ""
"As entidades desativadas não poderão ser selecionadas ao criar novas " "As entidades desativadas não poderão ser selecionadas ao criar novas "
"transações" "transações"
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "Entidade" msgstr "Entidade"
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1527,7 +1515,7 @@ msgstr "Entidade"
msgid "Income" msgid "Income"
msgstr "Renda" msgstr "Renda"
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1538,157 +1526,157 @@ msgstr "Renda"
msgid "Expense" msgid "Expense"
msgstr "Despesa" msgstr "Despesa"
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "Parcelamento" msgstr "Parcelamento"
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "Transação Recorrente" msgstr "Transação Recorrente"
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "Apagado" msgstr "Apagado"
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "Apagado Em" msgstr "Apagado Em"
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "Nenhuma tag" msgstr "Nenhuma tag"
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "Sem categoria" msgstr "Sem categoria"
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "Sem descrição" msgstr "Sem descrição"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
msgid "File" msgid "File"
msgstr "Arquivo" msgstr "Arquivo"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "Nome Original" msgstr "Nome Original"
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
msgid "Content Type" msgid "Content Type"
msgstr "Tipo de Conteúdo" msgstr "Tipo de Conteúdo"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "Tamanho" msgstr "Tamanho"
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "Enviado por" msgstr "Enviado por"
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Anexo de transação" msgstr "Anexo de transação"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Anexo de transações" msgstr "Anexo de transações"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "Anual" msgstr "Anual"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "Mensal" msgstr "Mensal"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "Semanal" msgstr "Semanal"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "Diária" msgstr "Diária"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "Número de Parcelas" msgstr "Número de Parcelas"
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "Parcela inicial" msgstr "Parcela inicial"
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "O número da parcela a partir do qual se inicia a contagem" msgstr "O número da parcela a partir do qual se inicia a contagem"
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "Data de Início" msgstr "Data de Início"
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "Data Final" msgstr "Data Final"
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "Recorrência" msgstr "Recorrência"
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "Valor da Parcela" msgstr "Valor da Parcela"
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "Adicionar descrição às transações" msgstr "Adicionar descrição às transações"
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "Adicionar notas às transações" msgstr "Adicionar notas às transações"
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "dia(s)" msgstr "dia(s)"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "semana(s)" msgstr "semana(s)"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "mês(es)" msgstr "mês(es)"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "ano(s)" msgstr "ano(s)"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "Pausado" msgstr "Pausado"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "Tipo de recorrência" msgstr "Tipo de recorrência"
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "Intervalo de recorrência" msgstr "Intervalo de recorrência"
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "Manter no máximo" msgstr "Manter no máximo"
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "Última data gerada" msgstr "Última data gerada"
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "Última data de referência gerada" msgstr "Última data de referência gerada"
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1697,7 +1685,7 @@ msgstr "Última data de referência gerada"
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "Transação Rápida" msgstr "Transação Rápida"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1748,27 +1736,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "%(count)s transação duplicada com sucesso" msgstr[0] "%(count)s transação duplicada com sucesso"
msgstr[1] "%(count)s transações duplicadas com sucesso" msgstr[1] "%(count)s transações duplicadas com sucesso"
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "Categoria adicionada com sucesso" msgstr "Categoria adicionada com sucesso"
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "Categoria atualizada com sucesso" msgstr "Categoria atualizada com sucesso"
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "Categoria apagada com sucesso" msgstr "Categoria apagada com sucesso"
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "Entidade adicionada com sucesso" msgstr "Entidade adicionada com sucesso"
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "Entidade atualizada com sucesso" msgstr "Entidade atualizada com sucesso"
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "Entidade apagada com sucesso" msgstr "Entidade apagada com sucesso"
@@ -1831,15 +1819,15 @@ msgstr "Transação Recorrente finalizada com sucesso"
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "Transação Recorrente apagada com sucesso" msgstr "Transação Recorrente apagada com sucesso"
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "Tag adicionada com sucesso" msgstr "Tag adicionada com sucesso"
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "Tag atualizada com sucesso" msgstr "Tag atualizada com sucesso"
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "Tag apagada com sucesso" msgstr "Tag apagada com sucesso"
@@ -1921,9 +1909,9 @@ msgstr "Essa conta está desativada"
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "Padrão" msgstr "Padrão"
@@ -2253,6 +2241,7 @@ msgstr "Compartilhar"
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "Apagar" msgstr "Apagar"
@@ -2738,19 +2727,19 @@ msgstr "Preço atual"
msgid "Amount Bought" msgid "Amount Bought"
msgstr "Quantia comprada" msgstr "Quantia comprada"
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "Preço de Entrada vs Preço Atual" msgstr "Preço de Entrada vs Preço Atual"
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "Dias entre investimentos" msgstr "Dias entre investimentos"
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "Frequência de Investimento" msgstr "Frequência de Investimento"
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
"Quanto mais reta for a linha azul, mais consistente é sua estratégia de CMP." "Quanto mais reta for a linha azul, mais consistente é sua estratégia de CMP."
@@ -2992,6 +2981,7 @@ msgid "Reload"
msgstr "Recarregar" msgstr "Recarregar"
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
@@ -3411,16 +3401,16 @@ msgid "Summary"
msgstr "Resumo" msgstr "Resumo"
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "Mais antigas primeiro" msgstr "Mais antigas primeiro"
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "Mais novas primeiro" msgstr "Mais novas primeiro"
@@ -3429,8 +3419,8 @@ msgstr "Mais novas primeiro"
msgid "Filter transactions" msgid "Filter transactions"
msgstr "Filtrar transações" msgstr "Filtrar transações"
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "Ordernar por" msgstr "Ordernar por"
@@ -3539,15 +3529,21 @@ msgstr "Nenhuma transação recorrente"
msgid "View" msgid "View"
msgstr "Visualizar" msgstr "Visualizar"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "Desativar" msgstr "Desativar"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "Ativar" msgstr "Ativar"
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Somente o proprietário pode editar isso"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "Nenhuma regra" msgstr "Nenhuma regra"
@@ -3690,6 +3686,40 @@ msgstr "Editando"
msgid "transactions" msgid "transactions"
msgstr "transações" msgstr "transações"
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr "Salvar predefinição de filtro"
#: templates/transactions/fragments/filter_actions.html:3
msgid "Preset name"
msgstr "Nome da predefinição"
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr "Salvar predefinição"
#: templates/transactions/fragments/filter_presets.html:6
msgid "Filter presets"
msgstr "Predefinições de filtro"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr "Apagar %(name)s"
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr "Apagar predefinição de filtro?"
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr "Apagar \"%(name)s\"?"
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr "Não há predefinições salvas"
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "Nenhuma transação encontrada" msgstr "Nenhuma transação encontrada"
+219 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2026-05-01 07:24+0000\n" "PO-Revision-Date: 2026-05-01 07:24+0000\n"
"Last-Translator: masttera <mail.masttera@gmail.com>\n" "Last-Translator: masttera <mail.masttera@gmail.com>\n"
"Language-Team: Russian <https://translations.herculino.com/projects/wygiwyh/" "Language-Team: Russian <https://translations.herculino.com/projects/wygiwyh/"
@@ -67,9 +67,9 @@ msgstr "Новый баланс"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -80,13 +80,13 @@ msgstr "Категория"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -98,8 +98,8 @@ msgstr "Тэг"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -171,9 +171,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -182,7 +182,7 @@ msgid "Account"
msgstr "Счет" msgstr "Счет"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -195,68 +195,56 @@ msgstr "Счета"
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "Обменная валюта не может совпадать с основной валютой счета." msgstr "Обменная валюта не может совпадать с основной валютой счета."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Группа счетов успешно добавлена" msgstr "Группа счетов успешно добавлена"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Редактировать это может только владелец"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "Группа счетов успешно обновлена" msgstr "Группа счетов успешно обновлена"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "Информация больше не предоставляется вам"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "Группа счетов успешно удалена" msgstr "Группа счетов успешно удалена"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "Информация больше не предоставляется вам"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "Владелец успешно присвоен" msgstr "Владелец успешно присвоен"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "Настройки успешно сохранены" msgstr "Настройки успешно сохранены"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "Счет успешно добавлен" msgstr "Счет успешно добавлен"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "Счет успешно обновлен" msgstr "Счет успешно обновлен"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "Счет успешно удален" msgstr "Счет успешно удален"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "Счет теперь отслеживается" msgstr "Счет теперь отслеживается"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "Счет теперь не отслеживается" msgstr "Счет теперь не отслеживается"
@@ -358,6 +346,7 @@ msgstr ""
"пользователей. Может быть изменено только владельцем." "пользователей. Может быть изменено только владельцем."
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Сохранить" msgstr "Сохранить"
@@ -478,10 +467,9 @@ msgstr "Снять"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Очистить" msgstr "Очистить"
@@ -500,7 +488,7 @@ msgstr "Суффикс"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -520,7 +508,7 @@ msgid "Decimal Places"
msgstr "Десятичные знаки" msgstr "Десятичные знаки"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -586,8 +574,8 @@ msgid "Service Type"
msgstr "Тип услуги" msgstr "Тип услуги"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -778,8 +766,8 @@ msgstr "Валюта платежа"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Заметки" msgstr "Заметки"
@@ -811,27 +799,27 @@ msgstr ""
msgid "DCA Entries" msgid "DCA Entries"
msgstr "Записи DCA" msgstr "Записи DCA"
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "Стратегия DCA успешно добавлена" msgstr "Стратегия DCA успешно добавлена"
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "Стратегия DCA успешно обновлена" msgstr "Стратегия DCA успешно обновлена"
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "Стратегия DCA успешно удалена" msgstr "Стратегия DCA успешно удалена"
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "Запись успешно добавлена" msgstr "Запись успешно добавлена"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "Запись успешно обновлена" msgstr "Запись успешно обновлена"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "Запись успешно удалена" msgstr "Запись успешно удалена"
@@ -842,7 +830,7 @@ msgid "Users"
msgstr "Пользователи" msgstr "Пользователи"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -851,7 +839,7 @@ msgid "Transactions"
msgstr "Транзакции" msgstr "Транзакции"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -862,12 +850,12 @@ msgstr "Категории"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -879,14 +867,14 @@ msgid "Entities"
msgstr "Объекты" msgstr "Объекты"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Повторяющиеся транзакции" msgstr "Повторяющиеся транзакции"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1040,7 +1028,7 @@ msgid "Run deleted successfully"
msgstr "Запуск успешно удален" msgstr "Запуск успешно удален"
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1138,15 +1126,15 @@ msgstr "Оператор"
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1156,15 +1144,15 @@ msgstr "Оплаченный"
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "Дата ссылки" msgstr "Дата ссылки"
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1175,27 +1163,27 @@ msgstr ""
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "" msgstr ""
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "" msgstr ""
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "" msgstr ""
@@ -1208,7 +1196,7 @@ msgid "Set Values"
msgstr "" msgstr ""
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "Транзакция" msgstr "Транзакция"
@@ -1302,15 +1290,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "Операция обновления или создания транзакции" msgstr "Операция обновления или создания транзакции"
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "Правило успешно деактивировано" msgstr "Правило успешно деактивировано"
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "Правило успешно активировано" msgstr "Правило успешно активировано"
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "Правило успешно добавлено" msgstr "Правило успешно добавлено"
@@ -1318,27 +1306,27 @@ msgstr "Правило успешно добавлено"
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "Правило успешно обновлено" msgstr "Правило успешно обновлено"
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "Правило успешно удалено" msgstr "Правило успешно удалено"
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "Действие успешно обновлено" msgstr "Действие успешно обновлено"
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "Действие успешно удалено" msgstr "Действие успешно удалено"
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "Действие «Обновить или создать транзакцию» успешно добавлено" msgstr "Действие «Обновить или создать транзакцию» успешно добавлено"
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "Операция обновления или создания транзакции успешно завершена" msgstr "Операция обновления или создания транзакции успешно завершена"
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "Операция обновления или создания транзакции успешно удалена" msgstr "Операция обновления или создания транзакции успешно удалена"
@@ -1355,58 +1343,58 @@ msgstr "Прогнозируемый"
msgid "Muted" msgid "Muted"
msgstr "" msgstr ""
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "" msgstr ""
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "Тип транзакции" msgstr "Тип транзакции"
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "" msgstr ""
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "Дата с" msgstr "Дата с"
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "" msgstr ""
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "Дата отсчета с" msgstr "Дата отсчета с"
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "" msgstr ""
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "" msgstr ""
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "" msgstr ""
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1485,45 +1473,45 @@ msgstr "будущие транзакции"
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "Дата окончания должна быть после даты начала" msgstr "Дата окончания должна быть после даты начала"
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
"Деактивированные категории нельзя будет выбрать при создании новых транзакций" "Деактивированные категории нельзя будет выбрать при создании новых транзакций"
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "Категория транзакции" msgstr "Категория транзакции"
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "Категории транзакций" msgstr "Категории транзакций"
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
"Деактивированные теги нельзя будет выбрать при создании новых транзакций" "Деактивированные теги нельзя будет выбрать при создании новых транзакций"
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "Теги транзакций" msgstr "Теги транзакций"
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
"Деактивированные объекты нельзя будет выбрать при создании новых транзакций" "Деактивированные объекты нельзя будет выбрать при создании новых транзакций"
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "" msgstr ""
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1535,7 +1523,7 @@ msgstr ""
msgid "Income" msgid "Income"
msgstr "Доход" msgstr "Доход"
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1546,165 +1534,165 @@ msgstr "Доход"
msgid "Expense" msgid "Expense"
msgstr "Расход" msgstr "Расход"
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "План рассрочки" msgstr "План рассрочки"
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "Повторяющаяся транзакция" msgstr "Повторяющаяся транзакция"
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "Удалено" msgstr "Удалено"
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "" msgstr ""
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "Нет тегов" msgstr "Нет тегов"
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "Нет категории" msgstr "Нет категории"
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "Нет описания" msgstr "Нет описания"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
#, fuzzy #, fuzzy
#| msgid "ZIP File" #| msgid "ZIP File"
msgid "File" msgid "File"
msgstr "ZIP File" msgstr "ZIP File"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
#, fuzzy #, fuzzy
#| msgid "Interval Type" #| msgid "Interval Type"
msgid "Content Type" msgid "Content Type"
msgstr "Тип интервала" msgstr "Тип интервала"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
#, fuzzy #, fuzzy
#| msgid "Transaction rule" #| msgid "Transaction rule"
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Правило транзакции" msgstr "Правило транзакции"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
#, fuzzy #, fuzzy
#| msgid "Transaction Tags" #| msgid "Transaction Tags"
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Теги транзакций" msgstr "Теги транзакций"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "Ежегодно" msgstr "Ежегодно"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "Ежемесячно" msgstr "Ежемесячно"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "Еженедельно" msgstr "Еженедельно"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "Ежедневно" msgstr "Ежедневно"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "Количество платежей" msgstr "Количество платежей"
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "Начало выплаты рассрочки" msgstr "Начало выплаты рассрочки"
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "Номер платежа, с которого начинается отсчет" msgstr "Номер платежа, с которого начинается отсчет"
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "Дата начала" msgstr "Дата начала"
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "Дата окончания" msgstr "Дата окончания"
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "" msgstr ""
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "Сумма рассрочки" msgstr "Сумма рассрочки"
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "Добавить описание к транзакциям" msgstr "Добавить описание к транзакциям"
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "Добавить примечания к транзакциям" msgstr "Добавить примечания к транзакциям"
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "день" msgstr "день"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "неделя" msgstr "неделя"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "месяц" msgstr "месяц"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "год" msgstr "год"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "Приостановлено" msgstr "Приостановлено"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "" msgstr ""
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "Хранить максимум" msgstr "Хранить максимум"
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1713,7 +1701,7 @@ msgstr ""
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "Быстрая сделка" msgstr "Быстрая сделка"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1764,27 +1752,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "Категория успешно добавлена" msgstr "Категория успешно добавлена"
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "Категория успешно обновлена" msgstr "Категория успешно обновлена"
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "Категория успешно удалена" msgstr "Категория успешно удалена"
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "Объект успешно добавлен" msgstr "Объект успешно добавлен"
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "Объект обновлен успешно" msgstr "Объект обновлен успешно"
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "Объект успешно удален" msgstr "Объект успешно удален"
@@ -1847,15 +1835,15 @@ msgstr "Повторяющаяся транзакция успешно заве
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "Повторяющаяся транзакция успешно удалена" msgstr "Повторяющаяся транзакция успешно удалена"
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "Тег успешно добавлен" msgstr "Тег успешно добавлен"
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "Тег успешно обновлен" msgstr "Тег успешно обновлен"
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "Тег успешно удален" msgstr "Тег успешно удален"
@@ -1941,9 +1929,9 @@ msgstr "Этот аккаунт деактивирован"
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "По умолчанию" msgstr "По умолчанию"
@@ -2287,6 +2275,7 @@ msgstr "Поделиться"
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "Удалить" msgstr "Удалить"
@@ -2772,19 +2761,19 @@ msgstr ""
msgid "Amount Bought" msgid "Amount Bought"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
@@ -3021,6 +3010,7 @@ msgid "Reload"
msgstr "Перезагрузка" msgstr "Перезагрузка"
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
@@ -3435,16 +3425,16 @@ msgid "Summary"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "" msgstr ""
@@ -3453,8 +3443,8 @@ msgstr ""
msgid "Filter transactions" msgid "Filter transactions"
msgstr "Фильтр транзакций" msgstr "Фильтр транзакций"
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "Сортировать по" msgstr "Сортировать по"
@@ -3564,15 +3554,21 @@ msgstr "Нет повторяющихся транзакций"
msgid "View" msgid "View"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "Отключить" msgstr "Отключить"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "включить" msgstr "включить"
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Редактировать это может только владелец"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "Нет правил" msgstr "Нет правил"
@@ -3717,6 +3713,44 @@ msgstr "Редактирование"
msgid "transactions" msgid "transactions"
msgstr "транзакции" msgstr "транзакции"
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
#, fuzzy
#| msgid "File name"
msgid "Preset name"
msgstr "Имя файла"
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:6
#, fuzzy
#| msgid "Filter transactions"
msgid "Filter presets"
msgstr "Фильтр транзакций"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr ""
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "Транзакций не найдено" msgstr "Транзакций не найдено"
+213 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2025-04-14 06:16+0000\n" "PO-Revision-Date: 2025-04-14 06:16+0000\n"
"Last-Translator: Emil <emil.bjorkroth@gmail.com>\n" "Last-Translator: Emil <emil.bjorkroth@gmail.com>\n"
"Language-Team: Swedish <https://translations.herculino.com/projects/wygiwyh/" "Language-Team: Swedish <https://translations.herculino.com/projects/wygiwyh/"
@@ -66,9 +66,9 @@ msgstr ""
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -79,13 +79,13 @@ msgstr ""
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -97,8 +97,8 @@ msgstr ""
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -166,9 +166,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -177,7 +177,7 @@ msgid "Account"
msgstr "" msgstr ""
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -190,68 +190,56 @@ msgstr ""
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr ""
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr ""
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr ""
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "" msgstr ""
@@ -346,6 +334,7 @@ msgid ""
msgstr "" msgstr ""
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "" msgstr ""
@@ -460,10 +449,9 @@ msgstr ""
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "" msgstr ""
@@ -482,7 +470,7 @@ msgstr ""
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -502,7 +490,7 @@ msgid "Decimal Places"
msgstr "" msgstr ""
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -568,8 +556,8 @@ msgid "Service Type"
msgstr "" msgstr ""
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -748,8 +736,8 @@ msgstr ""
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
@@ -781,27 +769,27 @@ msgstr ""
msgid "DCA Entries" msgid "DCA Entries"
msgstr "" msgstr ""
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "" msgstr ""
@@ -812,7 +800,7 @@ msgid "Users"
msgstr "" msgstr ""
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -821,7 +809,7 @@ msgid "Transactions"
msgstr "" msgstr ""
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -832,12 +820,12 @@ msgstr ""
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -849,14 +837,14 @@ msgid "Entities"
msgstr "" msgstr ""
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "" msgstr ""
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1008,7 +996,7 @@ msgid "Run deleted successfully"
msgstr "" msgstr ""
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1106,15 +1094,15 @@ msgstr ""
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1124,15 +1112,15 @@ msgstr ""
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "" msgstr ""
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1143,27 +1131,27 @@ msgstr ""
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "" msgstr ""
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "" msgstr ""
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "" msgstr ""
@@ -1176,7 +1164,7 @@ msgid "Set Values"
msgstr "" msgstr ""
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "" msgstr ""
@@ -1270,15 +1258,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "" msgstr ""
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "" msgstr ""
@@ -1286,27 +1274,27 @@ msgstr ""
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "" msgstr ""
@@ -1323,58 +1311,58 @@ msgstr ""
msgid "Muted" msgid "Muted"
msgstr "" msgstr ""
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "" msgstr ""
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "" msgstr ""
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "" msgstr ""
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "" msgstr ""
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "" msgstr ""
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "" msgstr ""
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "" msgstr ""
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1449,42 +1437,42 @@ msgstr ""
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "" msgstr ""
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "" msgstr ""
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "" msgstr ""
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "" msgstr ""
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1496,7 +1484,7 @@ msgstr ""
msgid "Income" msgid "Income"
msgstr "" msgstr ""
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1507,157 +1495,157 @@ msgstr ""
msgid "Expense" msgid "Expense"
msgstr "" msgstr ""
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "" msgstr ""
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr ""
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "" msgstr ""
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "" msgstr ""
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "" msgstr ""
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
msgid "File" msgid "File"
msgstr "" msgstr ""
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
msgid "Content Type" msgid "Content Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "" msgstr ""
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "" msgstr ""
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "" msgstr ""
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "" msgstr ""
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "" msgstr ""
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "" msgstr ""
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "" msgstr ""
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "" msgstr ""
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "" msgstr ""
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "" msgstr ""
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "" msgstr ""
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "" msgstr ""
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "" msgstr ""
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "" msgstr ""
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1666,7 +1654,7 @@ msgstr ""
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1717,27 +1705,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "" msgstr ""
@@ -1800,15 +1788,15 @@ msgstr ""
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "" msgstr ""
@@ -1890,9 +1878,9 @@ msgstr ""
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "" msgstr ""
@@ -2215,6 +2203,7 @@ msgstr ""
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@@ -2700,19 +2689,19 @@ msgstr ""
msgid "Amount Bought" msgid "Amount Bought"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
@@ -2949,6 +2938,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -3363,16 +3353,16 @@ msgid "Summary"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "" msgstr ""
@@ -3381,8 +3371,8 @@ msgstr ""
msgid "Filter transactions" msgid "Filter transactions"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "" msgstr ""
@@ -3488,15 +3478,19 @@ msgstr ""
msgid "View" msgid "View"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
msgid "Only the owner can change this"
msgstr ""
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "" msgstr ""
@@ -3639,6 +3633,40 @@ msgstr ""
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
msgid "Preset name"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:6
msgid "Filter presets"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr ""
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "" msgstr ""
+213 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2026-01-18 19:24+0000\n" "PO-Revision-Date: 2026-01-18 19:24+0000\n"
"Last-Translator: Ebrahim Tayabali <ebrahimhakimuddin@gmail.com>\n" "Last-Translator: Ebrahim Tayabali <ebrahimhakimuddin@gmail.com>\n"
"Language-Team: Swahili <https://translations.herculino.com/projects/wygiwyh/" "Language-Team: Swahili <https://translations.herculino.com/projects/wygiwyh/"
@@ -67,9 +67,9 @@ msgstr "Salio Mpya"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -80,13 +80,13 @@ msgstr ""
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -98,8 +98,8 @@ msgstr ""
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -170,9 +170,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -181,7 +181,7 @@ msgid "Account"
msgstr "" msgstr ""
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -194,68 +194,56 @@ msgstr ""
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr ""
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr ""
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr ""
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "" msgstr ""
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "" msgstr ""
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "" msgstr ""
@@ -350,6 +338,7 @@ msgid ""
msgstr "" msgstr ""
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "" msgstr ""
@@ -464,10 +453,9 @@ msgstr ""
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "" msgstr ""
@@ -486,7 +474,7 @@ msgstr ""
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -506,7 +494,7 @@ msgid "Decimal Places"
msgstr "" msgstr ""
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -572,8 +560,8 @@ msgid "Service Type"
msgstr "" msgstr ""
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -752,8 +740,8 @@ msgstr ""
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
@@ -785,27 +773,27 @@ msgstr ""
msgid "DCA Entries" msgid "DCA Entries"
msgstr "" msgstr ""
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "" msgstr ""
@@ -816,7 +804,7 @@ msgid "Users"
msgstr "" msgstr ""
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -825,7 +813,7 @@ msgid "Transactions"
msgstr "" msgstr ""
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -836,12 +824,12 @@ msgstr ""
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -853,14 +841,14 @@ msgid "Entities"
msgstr "" msgstr ""
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "" msgstr ""
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1012,7 +1000,7 @@ msgid "Run deleted successfully"
msgstr "" msgstr ""
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1110,15 +1098,15 @@ msgstr ""
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1128,15 +1116,15 @@ msgstr ""
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "" msgstr ""
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1147,27 +1135,27 @@ msgstr ""
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "" msgstr ""
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "" msgstr ""
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "" msgstr ""
@@ -1180,7 +1168,7 @@ msgid "Set Values"
msgstr "" msgstr ""
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "" msgstr ""
@@ -1274,15 +1262,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "" msgstr ""
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "" msgstr ""
@@ -1290,27 +1278,27 @@ msgstr ""
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "" msgstr ""
@@ -1327,58 +1315,58 @@ msgstr ""
msgid "Muted" msgid "Muted"
msgstr "" msgstr ""
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "" msgstr ""
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "" msgstr ""
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "" msgstr ""
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "" msgstr ""
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "" msgstr ""
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "" msgstr ""
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "" msgstr ""
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1453,42 +1441,42 @@ msgstr ""
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "" msgstr ""
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "" msgstr ""
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "" msgstr ""
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "" msgstr ""
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1500,7 +1488,7 @@ msgstr ""
msgid "Income" msgid "Income"
msgstr "" msgstr ""
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1511,157 +1499,157 @@ msgstr ""
msgid "Expense" msgid "Expense"
msgstr "" msgstr ""
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "" msgstr ""
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr ""
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "" msgstr ""
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "" msgstr ""
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "" msgstr ""
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
msgid "File" msgid "File"
msgstr "" msgstr ""
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
msgid "Content Type" msgid "Content Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "" msgstr ""
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "" msgstr ""
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "" msgstr ""
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "" msgstr ""
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "" msgstr ""
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "" msgstr ""
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "" msgstr ""
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "" msgstr ""
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "" msgstr ""
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "" msgstr ""
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "" msgstr ""
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "" msgstr ""
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "" msgstr ""
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "" msgstr ""
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1670,7 +1658,7 @@ msgstr ""
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1721,27 +1709,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "" msgstr ""
@@ -1804,15 +1792,15 @@ msgstr ""
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "" msgstr ""
@@ -1894,9 +1882,9 @@ msgstr ""
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "" msgstr ""
@@ -2223,6 +2211,7 @@ msgstr ""
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@@ -2708,19 +2697,19 @@ msgstr ""
msgid "Amount Bought" msgid "Amount Bought"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
@@ -2957,6 +2946,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -3371,16 +3361,16 @@ msgid "Summary"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "" msgstr ""
@@ -3389,8 +3379,8 @@ msgstr ""
msgid "Filter transactions" msgid "Filter transactions"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "" msgstr ""
@@ -3496,15 +3486,19 @@ msgstr ""
msgid "View" msgid "View"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
msgid "Only the owner can change this"
msgstr ""
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "" msgstr ""
@@ -3647,6 +3641,40 @@ msgstr ""
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
msgid "Preset name"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:6
msgid "Filter presets"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr ""
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "" msgstr ""
+215 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2025-11-01 01:17+0000\n" "PO-Revision-Date: 2025-11-01 01:17+0000\n"
"Last-Translator: mlystopad <mlystopadt@gmail.com>\n" "Last-Translator: mlystopad <mlystopadt@gmail.com>\n"
"Language-Team: Ukrainian <https://translations.herculino.com/projects/" "Language-Team: Ukrainian <https://translations.herculino.com/projects/"
@@ -67,9 +67,9 @@ msgstr "Новий баланс"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -80,13 +80,13 @@ msgstr "Категорія"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -98,8 +98,8 @@ msgstr "Мітки"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -171,9 +171,9 @@ msgstr ""
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -182,7 +182,7 @@ msgid "Account"
msgstr "Рахунок" msgstr "Рахунок"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -195,68 +195,56 @@ msgstr "Рахунки"
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "Валюта обміну не може збігатися з основною валютою рахунку." msgstr "Валюта обміну не може збігатися з основною валютою рахунку."
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "Групу рахунків успішно додано" msgstr "Групу рахунків успішно додано"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "Тільки власник може редагувати його"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "Групу рахунків успішно оновлено" msgstr "Групу рахунків успішно оновлено"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "Елемент більше не доступний для вас"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "Групу рахунків успішно видалено" msgstr "Групу рахунків успішно видалено"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "Елемент більше не доступний для вас"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "Успішно прийнято право власності" msgstr "Успішно прийнято право власності"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "Конфігурацію успішно збережено" msgstr "Конфігурацію успішно збережено"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "Рахунок додано успішно" msgstr "Рахунок додано успішно"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "Рахунок успішно оновлено" msgstr "Рахунок успішно оновлено"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "Рахунок успішно видалено" msgstr "Рахунок успішно видалено"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "Рахунок теперь відстежується" msgstr "Рахунок теперь відстежується"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "Рахунок більше не відстежується" msgstr "Рахунок більше не відстежується"
@@ -358,6 +346,7 @@ msgstr ""
"користувачів. Редагувати може лише власник." "користувачів. Редагувати може лише власник."
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "Зберегти" msgstr "Зберегти"
@@ -478,10 +467,9 @@ msgstr "Видалити"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "Чисто" msgstr "Чисто"
@@ -500,7 +488,7 @@ msgstr "Суфікс"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -520,7 +508,7 @@ msgid "Decimal Places"
msgstr "Десяткові знаки" msgstr "Десяткові знаки"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -586,8 +574,8 @@ msgid "Service Type"
msgstr "Тип сервісу" msgstr "Тип сервісу"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -778,8 +766,8 @@ msgstr "Валюта платежу"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "Примітки" msgstr "Примітки"
@@ -811,27 +799,27 @@ msgstr ""
msgid "DCA Entries" msgid "DCA Entries"
msgstr "" msgstr ""
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "" msgstr ""
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "Запис успішно додано" msgstr "Запис успішно додано"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "Запис успішно оновлено" msgstr "Запис успішно оновлено"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "Запис успішно видалено" msgstr "Запис успішно видалено"
@@ -842,7 +830,7 @@ msgid "Users"
msgstr "Користувачі" msgstr "Користувачі"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -851,7 +839,7 @@ msgid "Transactions"
msgstr "Транзакції" msgstr "Транзакції"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -862,12 +850,12 @@ msgstr "Категорії"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -879,14 +867,14 @@ msgid "Entities"
msgstr "" msgstr ""
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "Регулярні транзакції" msgstr "Регулярні транзакції"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1040,7 +1028,7 @@ msgid "Run deleted successfully"
msgstr "" msgstr ""
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1138,15 +1126,15 @@ msgstr ""
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1156,15 +1144,15 @@ msgstr ""
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "" msgstr ""
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1175,27 +1163,27 @@ msgstr ""
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "" msgstr ""
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "" msgstr ""
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "" msgstr ""
@@ -1208,7 +1196,7 @@ msgid "Set Values"
msgstr "" msgstr ""
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "" msgstr ""
@@ -1302,15 +1290,15 @@ msgstr ""
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "" msgstr ""
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "" msgstr ""
@@ -1318,27 +1306,27 @@ msgstr ""
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "" msgstr ""
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "" msgstr ""
@@ -1355,60 +1343,60 @@ msgstr ""
msgid "Muted" msgid "Muted"
msgstr "" msgstr ""
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "" msgstr ""
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "" msgstr ""
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
msgid "Mute Status" msgid "Mute Status"
msgstr "" msgstr ""
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "" msgstr ""
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "" msgstr ""
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "" msgstr ""
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "" msgstr ""
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
#, fuzzy #, fuzzy
#| msgid "Category" #| msgid "Category"
msgid "Categorized" msgid "Categorized"
msgstr "Категорія" msgstr "Категорія"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "" msgstr ""
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "" msgstr ""
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1483,42 +1471,42 @@ msgstr ""
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "" msgstr ""
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "" msgstr ""
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "" msgstr ""
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "" msgstr ""
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1530,7 +1518,7 @@ msgstr ""
msgid "Income" msgid "Income"
msgstr "" msgstr ""
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1541,165 +1529,165 @@ msgstr ""
msgid "Expense" msgid "Expense"
msgstr "" msgstr ""
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "" msgstr ""
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr ""
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "" msgstr ""
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "" msgstr ""
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "" msgstr ""
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
#, fuzzy #, fuzzy
#| msgid "ZIP File" #| msgid "ZIP File"
msgid "File" msgid "File"
msgstr "ZIP-Файл" msgstr "ZIP-Файл"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
#, fuzzy #, fuzzy
#| msgid "Interval Type" #| msgid "Interval Type"
msgid "Content Type" msgid "Content Type"
msgstr "Тип інтервалу" msgstr "Тип інтервалу"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
#, fuzzy #, fuzzy
#| msgid "Transaction rules" #| msgid "Transaction rules"
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "Правила транзакцій" msgstr "Правила транзакцій"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
#, fuzzy #, fuzzy
#| msgid "Transaction rules" #| msgid "Transaction rules"
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "Правила транзакцій" msgstr "Правила транзакцій"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "" msgstr ""
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "" msgstr ""
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "" msgstr ""
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "" msgstr ""
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "" msgstr ""
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "" msgstr ""
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "" msgstr ""
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "" msgstr ""
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "" msgstr ""
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "" msgstr ""
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "" msgstr ""
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "" msgstr ""
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "" msgstr ""
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "" msgstr ""
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "" msgstr ""
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "" msgstr ""
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1708,7 +1696,7 @@ msgstr ""
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "" msgstr ""
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1759,27 +1747,27 @@ msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "" msgstr ""
@@ -1844,15 +1832,15 @@ msgstr ""
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "" msgstr ""
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "" msgstr ""
@@ -1938,9 +1926,9 @@ msgstr ""
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "" msgstr ""
@@ -2282,6 +2270,7 @@ msgstr ""
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@@ -2767,19 +2756,19 @@ msgstr ""
msgid "Amount Bought" msgid "Amount Bought"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "" msgstr ""
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "" msgstr ""
@@ -3017,6 +3006,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@@ -3439,16 +3429,16 @@ msgid "Summary"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "" msgstr ""
@@ -3457,8 +3447,8 @@ msgstr ""
msgid "Filter transactions" msgid "Filter transactions"
msgstr "" msgstr ""
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "" msgstr ""
@@ -3564,15 +3554,21 @@ msgstr ""
msgid "View" msgid "View"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "" msgstr ""
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "Тільки власник може редагувати його"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "" msgstr ""
@@ -3717,6 +3713,40 @@ msgstr ""
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
msgid "Preset name"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:40
msgid "Save preset"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:6
msgid "Filter presets"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
msgid "No saved presets"
msgstr ""
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "" msgstr ""
+223 -185
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-15 17:43+0000\n" "POT-Creation-Date: 2026-09-06 19:42+0000\n"
"PO-Revision-Date: 2025-10-08 16:17+0000\n" "PO-Revision-Date: 2025-10-08 16:17+0000\n"
"Last-Translator: doody <doodykimo@gmail.com>\n" "Last-Translator: doody <doodykimo@gmail.com>\n"
"Language-Team: Chinese (Traditional Han script) <https://translations." "Language-Team: Chinese (Traditional Han script) <https://translations."
@@ -66,9 +66,9 @@ msgstr "新的餘額"
#: apps/transactions/forms.py:61 apps/transactions/forms.py:307 #: apps/transactions/forms.py:61 apps/transactions/forms.py:307
#: apps/transactions/forms.py:475 apps/transactions/forms.py:572 #: apps/transactions/forms.py:475 apps/transactions/forms.py:572
#: apps/transactions/forms.py:579 apps/transactions/forms.py:763 #: apps/transactions/forms.py:579 apps/transactions/forms.py:763
#: apps/transactions/forms.py:1007 apps/transactions/models.py:331 #: apps/transactions/forms.py:1007 apps/transactions/models.py:346
#: apps/transactions/models.py:641 apps/transactions/models.py:841 #: apps/transactions/models.py:658 apps/transactions/models.py:858
#: apps/transactions/models.py:1093 #: apps/transactions/models.py:1110
#: templates/insights/fragments/category_overview/index.html:86 #: templates/insights/fragments/category_overview/index.html:86
#: templates/insights/fragments/category_overview/index.html:542 #: templates/insights/fragments/category_overview/index.html:542
#: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/month_by_month.html:84
@@ -79,13 +79,13 @@ msgstr "分類"
#: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103 #: apps/accounts/forms.py:132 apps/dca/forms.py:95 apps/dca/forms.py:103
#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 #: apps/export_app/forms.py:43 apps/export_app/forms.py:132
#: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45 #: apps/rules/forms.py:184 apps/rules/forms.py:194 apps/rules/models.py:45
#: apps/rules/models.py:315 apps/transactions/filters.py:73 #: apps/rules/models.py:315 apps/transactions/filters.py:79
#: apps/transactions/forms.py:69 apps/transactions/forms.py:315 #: apps/transactions/forms.py:69 apps/transactions/forms.py:315
#: apps/transactions/forms.py:483 apps/transactions/forms.py:588 #: apps/transactions/forms.py:483 apps/transactions/forms.py:588
#: apps/transactions/forms.py:596 apps/transactions/forms.py:756 #: apps/transactions/forms.py:596 apps/transactions/forms.py:756
#: apps/transactions/forms.py:1000 apps/transactions/models.py:337 #: apps/transactions/forms.py:1000 apps/transactions/models.py:352
#: apps/transactions/models.py:643 apps/transactions/models.py:845 #: apps/transactions/models.py:660 apps/transactions/models.py:862
#: apps/transactions/models.py:1099 templates/includes/sidebar.html:150 #: apps/transactions/models.py:1116 templates/includes/sidebar.html:150
#: templates/insights/fragments/category_overview/index.html:40 #: templates/insights/fragments/category_overview/index.html:40
#: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:29
#: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/month_by_month.html:32
@@ -97,8 +97,8 @@ msgstr "標籤"
#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 #: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13
#: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/import_app/models.py:14 apps/rules/models.py:13
#: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:238 apps/transactions/models.py:263
#: apps/transactions/models.py:272 apps/transactions/models.py:1061 #: apps/transactions/models.py:287 apps/transactions/models.py:1078
#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: apps/users/models.py:572 templates/account_groups/fragments/list.html:22
#: templates/accounts/fragments/list.html:22 #: templates/accounts/fragments/list.html:22
#: templates/categories/fragments/table.html:17 #: templates/categories/fragments/table.html:17
@@ -166,9 +166,9 @@ msgstr "封存的帳戶不會在淨資產中被計算或顯示"
#: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/rules/models.py:35 apps/rules/models.py:267
#: apps/transactions/forms.py:81 apps/transactions/forms.py:327 #: apps/transactions/forms.py:81 apps/transactions/forms.py:327
#: apps/transactions/forms.py:442 apps/transactions/forms.py:748 #: apps/transactions/forms.py:442 apps/transactions/forms.py:748
#: apps/transactions/forms.py:992 apps/transactions/models.py:303 #: apps/transactions/forms.py:992 apps/transactions/models.py:318
#: apps/transactions/models.py:601 apps/transactions/models.py:823 #: apps/transactions/models.py:618 apps/transactions/models.py:840
#: apps/transactions/models.py:1067 #: apps/transactions/models.py:1084
#: templates/installment_plans/fragments/table.html:17 #: templates/installment_plans/fragments/table.html:17
#: templates/quick_transactions/fragments/list.html:14 #: templates/quick_transactions/fragments/list.html:14
#: templates/recurring_transactions/fragments/table.html:19 #: templates/recurring_transactions/fragments/table.html:19
@@ -177,7 +177,7 @@ msgid "Account"
msgstr "帳戶" msgstr "帳戶"
#: apps/accounts/models.py:76 apps/export_app/forms.py:19 #: apps/accounts/models.py:76 apps/export_app/forms.py:19
#: apps/export_app/forms.py:129 apps/transactions/filters.py:57 #: apps/export_app/forms.py:129 apps/transactions/filters.py:63
#: templates/accounts/fragments/list.html:9 #: templates/accounts/fragments/list.html:9
#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162 #: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:162
#: templates/includes/sidebar.html:164 #: templates/includes/sidebar.html:164
@@ -190,68 +190,56 @@ msgstr "帳戶"
msgid "Exchange currency cannot be the same as the account's main currency." msgid "Exchange currency cannot be the same as the account's main currency."
msgstr "目標貨幣不能跟原始貨幣相同。" msgstr "目標貨幣不能跟原始貨幣相同。"
#: apps/accounts/views/account_groups.py:44 #: apps/accounts/views/account_groups.py:50
msgid "Account Group added successfully" msgid "Account Group added successfully"
msgstr "成功新增帳戶組" msgstr "成功新增帳戶組"
#: apps/accounts/views/account_groups.py:69 #: apps/accounts/views/account_groups.py:78
#: apps/accounts/views/account_groups.py:152 apps/accounts/views/accounts.py:68
#: apps/accounts/views/accounts.py:106 apps/dca/views.py:62
#: apps/dca/views.py:145 apps/rules/views.py:118 apps/rules/views.py:228
#: apps/transactions/views/categories.py:91
#: apps/transactions/views/categories.py:129
#: apps/transactions/views/entities.py:91
#: apps/transactions/views/entities.py:171 apps/transactions/views/tags.py:91
#: apps/transactions/views/tags.py:171
msgid "Only the owner can edit this"
msgstr "只有擁有者可以編輯這個項目"
#: apps/accounts/views/account_groups.py:82
msgid "Account Group updated successfully" msgid "Account Group updated successfully"
msgstr "成功更新帳戶組" msgstr "成功更新帳戶組"
#: apps/accounts/views/account_groups.py:111 #: apps/accounts/views/account_groups.py:104
#: apps/accounts/views/accounts.py:145 apps/dca/views.py:104
#: apps/rules/views.py:185 apps/transactions/views/categories.py:168
#: apps/transactions/views/entities.py:130 apps/transactions/views/tags.py:130
msgid "Item no longer shared with you"
msgstr "這個項目不再與你分享"
#: apps/accounts/views/account_groups.py:114
msgid "Account Group deleted successfully" msgid "Account Group deleted successfully"
msgstr "成功刪除帳戶組" msgstr "成功刪除帳戶組"
#: apps/accounts/views/account_groups.py:135 #: apps/accounts/views/account_groups.py:109
#: apps/accounts/views/accounts.py:189 apps/dca/views.py:128 #: apps/accounts/views/accounts.py:137 apps/dca/views.py:106
#: apps/rules/views.py:210 apps/transactions/views/categories.py:192 #: apps/rules/views.py:191 apps/transactions/views/categories.py:163
#: apps/transactions/views/entities.py:154 apps/transactions/views/tags.py:154 #: apps/transactions/views/entities.py:135 apps/transactions/views/tags.py:131
msgid "Item no longer shared with you"
msgstr "這個項目不再與你分享"
#: apps/accounts/views/account_groups.py:132
#: apps/accounts/views/accounts.py:182 apps/dca/views.py:131
#: apps/rules/views.py:217 apps/transactions/views/categories.py:188
#: apps/transactions/views/entities.py:160 apps/transactions/views/tags.py:154
msgid "Ownership taken successfully" msgid "Ownership taken successfully"
msgstr "成功取得所有權" msgstr "成功取得所有權"
#: apps/accounts/views/account_groups.py:165 #: apps/accounts/views/account_groups.py:152
#: apps/accounts/views/accounts.py:119 apps/dca/views.py:158 #: apps/accounts/views/accounts.py:106 apps/dca/views.py:151
#: apps/rules/views.py:241 apps/transactions/views/categories.py:142 #: apps/rules/views.py:238 apps/transactions/views/categories.py:130
#: apps/transactions/views/entities.py:184 apps/transactions/views/tags.py:184 #: apps/transactions/views/entities.py:180 apps/transactions/views/tags.py:174
msgid "Configuration saved successfully" msgid "Configuration saved successfully"
msgstr "成功儲存設定" msgstr "成功儲存設定"
#: apps/accounts/views/accounts.py:44 #: apps/accounts/views/accounts.py:50
msgid "Account added successfully" msgid "Account added successfully"
msgstr "成功新增帳戶" msgstr "成功新增帳戶"
#: apps/accounts/views/accounts.py:81 #: apps/accounts/views/accounts.py:78
msgid "Account updated successfully" msgid "Account updated successfully"
msgstr "成功更新帳戶" msgstr "成功更新帳戶"
#: apps/accounts/views/accounts.py:148 #: apps/accounts/views/accounts.py:132
msgid "Account deleted successfully" msgid "Account deleted successfully"
msgstr "成功刪除帳戶" msgstr "成功刪除帳戶"
#: apps/accounts/views/accounts.py:165 #: apps/accounts/views/accounts.py:158
msgid "Account is now tracked" msgid "Account is now tracked"
msgstr "帳戶已追蹤" msgstr "帳戶已追蹤"
#: apps/accounts/views/accounts.py:168 #: apps/accounts/views/accounts.py:161
msgid "Account is now untracked" msgid "Account is now untracked"
msgstr "取消追蹤帳戶" msgstr "取消追蹤帳戶"
@@ -350,6 +338,7 @@ msgstr ""
"開:所有使用者都可以看到。只有擁有者可以編輯這個選項。" "開:所有使用者都可以看到。只有擁有者可以編輯這個選項。"
#: apps/common/forms.py:76 apps/users/forms.py:172 #: apps/common/forms.py:76 apps/users/forms.py:172
#: templates/transactions/fragments/filter_actions.html:5
msgid "Save" msgid "Save"
msgstr "儲存" msgstr "儲存"
@@ -458,10 +447,9 @@ msgstr "移除"
#: apps/common/widgets/tom_select.py:15 #: apps/common/widgets/tom_select.py:15
#: templates/mini_tools/unit_price_calculator.html:180 #: templates/mini_tools/unit_price_calculator.html:180
#: templates/monthly_overview/pages/overview.html:275 #: templates/monthly_overview/pages/overview.html:284
#: templates/monthly_overview/pages/overview.html:287 #: templates/transactions/fragments/filter_actions.html:48
#: templates/transactions/pages/transactions.html:225 #: templates/transactions/pages/transactions.html:233
#: templates/transactions/pages/transactions.html:237
msgid "Clear" msgid "Clear"
msgstr "清除" msgstr "清除"
@@ -480,7 +468,7 @@ msgstr "後綴"
#: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176 #: apps/currencies/forms.py:66 apps/dca/models.py:158 apps/rules/forms.py:176
#: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279 #: apps/rules/forms.py:190 apps/rules/models.py:38 apps/rules/models.py:279
#: apps/transactions/forms.py:85 apps/transactions/forms.py:447 #: apps/transactions/forms.py:85 apps/transactions/forms.py:447
#: apps/transactions/forms.py:600 apps/transactions/models.py:313 #: apps/transactions/forms.py:600 apps/transactions/models.py:328
#: templates/dca/fragments/strategy/details.html:49 #: templates/dca/fragments/strategy/details.html:49
#: templates/exchange_rates/fragments/table.html:10 #: templates/exchange_rates/fragments/table.html:10
#: templates/exchange_rates_services/fragments/table.html:11 #: templates/exchange_rates_services/fragments/table.html:11
@@ -500,7 +488,7 @@ msgid "Decimal Places"
msgstr "小數點後位數" msgstr "小數點後位數"
#: apps/currencies/models.py:45 apps/export_app/forms.py:25 #: apps/currencies/models.py:45 apps/export_app/forms.py:25
#: apps/export_app/forms.py:130 apps/transactions/filters.py:64 #: apps/export_app/forms.py:130 apps/transactions/filters.py:70
#: templates/currencies/fragments/list.html:9 #: templates/currencies/fragments/list.html:9
#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176 #: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:176
#: templates/includes/sidebar.html:178 #: templates/includes/sidebar.html:178
@@ -566,8 +554,8 @@ msgid "Service Type"
msgstr "服務類型" msgstr "服務類型"
#: apps/currencies/models.py:119 apps/transactions/filters.py:27 #: apps/currencies/models.py:119 apps/transactions/filters.py:27
#: apps/transactions/models.py:227 apps/transactions/models.py:251 #: apps/transactions/models.py:242 apps/transactions/models.py:266
#: apps/transactions/models.py:275 templates/categories/fragments/list.html:16 #: apps/transactions/models.py:290 templates/categories/fragments/list.html:16
#: templates/entities/fragments/list.html:16 #: templates/entities/fragments/list.html:16
#: templates/installment_plans/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16
#: templates/recurring_transactions/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16
@@ -748,8 +736,8 @@ msgstr "交易貨幣"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180
#: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295
#: apps/transactions/forms.py:469 apps/transactions/forms.py:616 #: apps/transactions/forms.py:469 apps/transactions/forms.py:616
#: apps/transactions/models.py:327 apps/transactions/models.py:650 #: apps/transactions/models.py:342 apps/transactions/models.py:667
#: apps/transactions/models.py:851 apps/transactions/models.py:1089 #: apps/transactions/models.py:868 apps/transactions/models.py:1106
msgid "Notes" msgid "Notes"
msgstr "備註" msgstr "備註"
@@ -781,27 +769,27 @@ msgstr "定期定額投入"
msgid "DCA Entries" msgid "DCA Entries"
msgstr "定期定額投入" msgstr "定期定額投入"
#: apps/dca/views.py:38 #: apps/dca/views.py:44
msgid "DCA Strategy added successfully" msgid "DCA Strategy added successfully"
msgstr "成功新增定期定額策略" msgstr "成功新增定期定額策略"
#: apps/dca/views.py:75 #: apps/dca/views.py:73
msgid "DCA Strategy updated successfully" msgid "DCA Strategy updated successfully"
msgstr "成功更新定期定額策略" msgstr "成功更新定期定額策略"
#: apps/dca/views.py:107 #: apps/dca/views.py:101
msgid "DCA strategy deleted successfully" msgid "DCA strategy deleted successfully"
msgstr "成功刪除定期定額策略" msgstr "成功刪除定期定額策略"
#: apps/dca/views.py:237 #: apps/dca/views.py:236
msgid "Entry added successfully" msgid "Entry added successfully"
msgstr "成功新增投入" msgstr "成功新增投入"
#: apps/dca/views.py:264 #: apps/dca/views.py:270
msgid "Entry updated successfully" msgid "Entry updated successfully"
msgstr "成功更新投入" msgstr "成功更新投入"
#: apps/dca/views.py:290 #: apps/dca/views.py:303
msgid "Entry deleted successfully" msgid "Entry deleted successfully"
msgstr "成功刪除投入" msgstr "成功刪除投入"
@@ -812,7 +800,7 @@ msgid "Users"
msgstr "使用者" msgstr "使用者"
#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 #: apps/export_app/forms.py:31 apps/export_app/forms.py:134
#: apps/transactions/models.py:388 templates/includes/sidebar.html:81 #: apps/transactions/models.py:403 templates/includes/sidebar.html:81
#: templates/includes/sidebar.html:142 #: templates/includes/sidebar.html:142
#: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/list_transactions.html:5
#: templates/recurring_transactions/fragments/table.html:37 #: templates/recurring_transactions/fragments/table.html:37
@@ -821,7 +809,7 @@ msgid "Transactions"
msgstr "交易" msgstr "交易"
#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 #: apps/export_app/forms.py:37 apps/export_app/forms.py:131
#: apps/transactions/filters.py:68 templates/categories/fragments/list.html:9 #: apps/transactions/filters.py:74 templates/categories/fragments/list.html:9
#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144 #: templates/categories/pages/index.html:4 templates/includes/sidebar.html:144
#: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:18
#: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/month_by_month.html:21
@@ -832,12 +820,12 @@ msgstr "類別"
#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 #: apps/export_app/forms.py:49 apps/export_app/forms.py:133
#: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46 #: apps/rules/forms.py:185 apps/rules/forms.py:195 apps/rules/models.py:46
#: apps/rules/models.py:307 apps/transactions/filters.py:78 #: apps/rules/models.py:307 apps/transactions/filters.py:84
#: apps/transactions/forms.py:77 apps/transactions/forms.py:323 #: apps/transactions/forms.py:77 apps/transactions/forms.py:323
#: apps/transactions/forms.py:491 apps/transactions/forms.py:771 #: apps/transactions/forms.py:491 apps/transactions/forms.py:771
#: apps/transactions/forms.py:1015 apps/transactions/models.py:286 #: apps/transactions/forms.py:1015 apps/transactions/models.py:301
#: apps/transactions/models.py:342 apps/transactions/models.py:646 #: apps/transactions/models.py:357 apps/transactions/models.py:663
#: apps/transactions/models.py:848 apps/transactions/models.py:1104 #: apps/transactions/models.py:865 apps/transactions/models.py:1121
#: templates/entities/fragments/list.html:9 #: templates/entities/fragments/list.html:9
#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/entities/pages/index.html:4 templates/includes/sidebar.html:156
#: templates/insights/fragments/category_overview/index.html:54 #: templates/insights/fragments/category_overview/index.html:54
@@ -849,14 +837,14 @@ msgid "Entities"
msgstr "實體" msgstr "實體"
#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 #: apps/export_app/forms.py:55 apps/export_app/forms.py:137
#: apps/transactions/models.py:888 templates/includes/sidebar.html:110 #: apps/transactions/models.py:905 templates/includes/sidebar.html:110
#: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/fragments/list.html:9
#: templates/recurring_transactions/pages/index.html:4 #: templates/recurring_transactions/pages/index.html:4
msgid "Recurring Transactions" msgid "Recurring Transactions"
msgstr "定期扣款交易" msgstr "定期扣款交易"
#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 #: apps/export_app/forms.py:61 apps/export_app/forms.py:135
#: apps/transactions/models.py:664 templates/includes/sidebar.html:104 #: apps/transactions/models.py:681 templates/includes/sidebar.html:104
#: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/fragments/list.html:9
#: templates/installment_plans/pages/index.html:4 #: templates/installment_plans/pages/index.html:4
msgid "Installment Plans" msgid "Installment Plans"
@@ -1008,7 +996,7 @@ msgid "Run deleted successfully"
msgstr "成功刪除匯入任務" msgstr "成功刪除匯入任務"
#: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36 #: apps/insights/forms.py:118 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:203 #: apps/insights/utils/sankey.py:167 apps/transactions/filters.py:209
#: templates/insights/fragments/category_overview/index.html:96 #: templates/insights/fragments/category_overview/index.html:96
#: templates/insights/fragments/category_overview/index.html:407 #: templates/insights/fragments/category_overview/index.html:407
#: templates/insights/fragments/category_overview/index.html:436 #: templates/insights/fragments/category_overview/index.html:436
@@ -1106,15 +1094,15 @@ msgstr "運算子"
#: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36
#: apps/rules/models.py:271 apps/transactions/forms.py:433 #: apps/rules/models.py:271 apps/transactions/forms.py:433
#: apps/transactions/models.py:310 apps/transactions/models.py:606 #: apps/transactions/models.py:325 apps/transactions/models.py:623
#: apps/transactions/models.py:829 apps/transactions/models.py:1074 #: apps/transactions/models.py:846 apps/transactions/models.py:1091
msgid "Type" msgid "Type"
msgstr "種類" msgstr "種類"
#: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37
#: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/rules/models.py:275 apps/transactions/filters.py:22
#: apps/transactions/forms.py:437 apps/transactions/models.py:312 #: apps/transactions/forms.py:437 apps/transactions/models.py:327
#: apps/transactions/models.py:1076 templates/cotton/transaction/item.html:20 #: apps/transactions/models.py:1093 templates/cotton/transaction/item.html:20
#: templates/cotton/transaction/item.html:31 #: templates/cotton/transaction/item.html:31
#: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/paid_toggle_button.html:10
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13
@@ -1124,15 +1112,15 @@ msgstr "已支付"
#: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39 #: apps/rules/forms.py:177 apps/rules/forms.py:191 apps/rules/models.py:39
#: apps/rules/models.py:283 apps/transactions/forms.py:89 #: apps/rules/models.py:283 apps/transactions/forms.py:89
#: apps/transactions/forms.py:453 apps/transactions/forms.py:603 #: apps/transactions/forms.py:453 apps/transactions/forms.py:603
#: apps/transactions/forms.py:777 apps/transactions/models.py:314 #: apps/transactions/forms.py:777 apps/transactions/models.py:329
#: apps/transactions/models.py:624 apps/transactions/models.py:853 #: apps/transactions/models.py:641 apps/transactions/models.py:870
msgid "Reference Date" msgid "Reference Date"
msgstr "起算日" msgstr "起算日"
#: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41
#: apps/rules/models.py:287 apps/transactions/forms.py:460 #: apps/rules/models.py:287 apps/transactions/forms.py:460
#: apps/transactions/models.py:320 apps/transactions/models.py:834 #: apps/transactions/models.py:335 apps/transactions/models.py:851
#: apps/transactions/models.py:1082 #: apps/transactions/models.py:1099
#: templates/insights/fragments/sankey.html:102 #: templates/insights/fragments/sankey.html:102
#: templates/installment_plans/fragments/table.html:18 #: templates/installment_plans/fragments/table.html:18
#: templates/quick_transactions/fragments/list.html:15 #: templates/quick_transactions/fragments/list.html:15
@@ -1143,27 +1131,27 @@ msgstr "金額"
#: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14
#: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/rules/models.py:42 apps/rules/models.py:291
#: apps/transactions/forms.py:464 apps/transactions/forms.py:607 #: apps/transactions/forms.py:464 apps/transactions/forms.py:607
#: apps/transactions/models.py:325 apps/transactions/models.py:608 #: apps/transactions/models.py:340 apps/transactions/models.py:625
#: apps/transactions/models.py:837 apps/transactions/models.py:1087 #: apps/transactions/models.py:854 apps/transactions/models.py:1104
msgid "Description" msgid "Description"
msgstr "描述" msgstr "描述"
#: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47
#: apps/rules/models.py:299 apps/transactions/models.py:364 #: apps/rules/models.py:299 apps/transactions/models.py:379
#: apps/transactions/models.py:1109 #: apps/transactions/models.py:1126
msgid "Internal Note" msgid "Internal Note"
msgstr "內部註記" msgstr "內部註記"
#: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48
#: apps/rules/models.py:303 apps/transactions/models.py:366 #: apps/rules/models.py:303 apps/transactions/models.py:381
#: apps/transactions/models.py:1111 #: apps/transactions/models.py:1128
msgid "Internal ID" msgid "Internal ID"
msgstr "內部ID" msgstr "內部ID"
#: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40
#: apps/rules/models.py:319 apps/transactions/forms.py:620 #: apps/rules/models.py:319 apps/transactions/forms.py:620
#: apps/transactions/models.py:224 apps/transactions/models.py:315 #: apps/transactions/models.py:239 apps/transactions/models.py:330
#: apps/transactions/models.py:1077 #: apps/transactions/models.py:1094
msgid "Mute" msgid "Mute"
msgstr "靜音" msgstr "靜音"
@@ -1176,7 +1164,7 @@ msgid "Set Values"
msgstr "設定值" msgstr "設定值"
#: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477
#: apps/transactions/models.py:387 apps/transactions/models.py:544 #: apps/transactions/models.py:402 apps/transactions/models.py:560
msgid "Transaction" msgid "Transaction"
msgstr "交易" msgstr "交易"
@@ -1270,15 +1258,15 @@ msgstr "決定是否啟用或停用規則執行的通用表達式,結果應該
msgid "Update or create transaction action" msgid "Update or create transaction action"
msgstr "更新或建立交易行為" msgstr "更新或建立交易行為"
#: apps/rules/views.py:71 #: apps/rules/views.py:79
msgid "Rule deactivated successfully" msgid "Rule deactivated successfully"
msgstr "成功停用規則" msgstr "成功停用規則"
#: apps/rules/views.py:73 #: apps/rules/views.py:81
msgid "Rule activated successfully" msgid "Rule activated successfully"
msgstr "成功啟用規則" msgstr "成功啟用規則"
#: apps/rules/views.py:92 #: apps/rules/views.py:100
msgid "Rule added successfully" msgid "Rule added successfully"
msgstr "成功新增規則" msgstr "成功新增規則"
@@ -1286,27 +1274,27 @@ msgstr "成功新增規則"
msgid "Rule updated successfully" msgid "Rule updated successfully"
msgstr "成功更新規則" msgstr "成功更新規則"
#: apps/rules/views.py:188 #: apps/rules/views.py:186
msgid "Rule deleted successfully" msgid "Rule deleted successfully"
msgstr "成功刪除規則" msgstr "成功刪除規則"
#: apps/rules/views.py:305 #: apps/rules/views.py:306
msgid "Action updated successfully" msgid "Action updated successfully"
msgstr "成功更新行為" msgstr "成功更新行為"
#: apps/rules/views.py:336 #: apps/rules/views.py:341
msgid "Action deleted successfully" msgid "Action deleted successfully"
msgstr "成功刪除行為" msgstr "成功刪除行為"
#: apps/rules/views.py:360 #: apps/rules/views.py:367
msgid "Update or Create Transaction action added successfully" msgid "Update or Create Transaction action added successfully"
msgstr "成功新增「更新或建立交易行為」" msgstr "成功新增「更新或建立交易行為」"
#: apps/rules/views.py:393 #: apps/rules/views.py:402
msgid "Update or Create Transaction action updated successfully" msgid "Update or Create Transaction action updated successfully"
msgstr "成功更新「更新或建立交易行為」" msgstr "成功更新「更新或建立交易行為」"
#: apps/rules/views.py:423 #: apps/rules/views.py:434
msgid "Update or Create Transaction action deleted successfully" msgid "Update or Create Transaction action deleted successfully"
msgstr "成功刪除「更新或建立交易行為」" msgstr "成功刪除「更新或建立交易行為」"
@@ -1323,60 +1311,60 @@ msgstr "預期"
msgid "Muted" msgid "Muted"
msgstr "已靜音" msgstr "已靜音"
#: apps/transactions/filters.py:45 #: apps/transactions/filters.py:51
msgid "Content" msgid "Content"
msgstr "內容" msgstr "內容"
#: apps/transactions/filters.py:51 #: apps/transactions/filters.py:57
msgid "Transaction Type" msgid "Transaction Type"
msgstr "交易種類" msgstr "交易種類"
#: apps/transactions/filters.py:89 #: apps/transactions/filters.py:95
#, fuzzy #, fuzzy
#| msgid "Status" #| msgid "Status"
msgid "Mute Status" msgid "Mute Status"
msgstr "狀態" msgstr "狀態"
#: apps/transactions/filters.py:94 #: apps/transactions/filters.py:100
msgid "Date from" msgid "Date from"
msgstr "起始日期" msgstr "起始日期"
#: apps/transactions/filters.py:99 apps/transactions/filters.py:109 #: apps/transactions/filters.py:105 apps/transactions/filters.py:115
msgid "Until" msgid "Until"
msgstr "直到" msgstr "直到"
#: apps/transactions/filters.py:104 #: apps/transactions/filters.py:110
msgid "Reference date from" msgid "Reference date from"
msgstr "起算日日期" msgstr "起算日日期"
#: apps/transactions/filters.py:114 #: apps/transactions/filters.py:120
msgid "Amount min" msgid "Amount min"
msgstr "最小金額" msgstr "最小金額"
#: apps/transactions/filters.py:119 #: apps/transactions/filters.py:125
msgid "Amount max" msgid "Amount max"
msgstr "最大金額" msgstr "最大金額"
#: apps/transactions/filters.py:202 #: apps/transactions/filters.py:208
msgid "Categorized" msgid "Categorized"
msgstr "已分類" msgstr "已分類"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
msgid "Tagged" msgid "Tagged"
msgstr "已標籤" msgstr "已標籤"
#: apps/transactions/filters.py:209 #: apps/transactions/filters.py:215
#: templates/insights/fragments/category_overview/index.html:189 #: templates/insights/fragments/category_overview/index.html:189
#: templates/insights/fragments/month_by_month.html:121 #: templates/insights/fragments/month_by_month.html:121
#: templates/insights/fragments/year_by_year.html:75 #: templates/insights/fragments/year_by_year.html:75
msgid "Untagged" msgid "Untagged"
msgstr "未標籤" msgstr "未標籤"
#: apps/transactions/filters.py:215 #: apps/transactions/filters.py:221
msgid "Any entity" msgid "Any entity"
msgstr "任何實體" msgstr "任何實體"
#: apps/transactions/filters.py:216 #: apps/transactions/filters.py:222
#: templates/insights/fragments/category_overview/index.html:282 #: templates/insights/fragments/category_overview/index.html:282
#: templates/insights/fragments/month_by_month.html:123 #: templates/insights/fragments/month_by_month.html:123
#: templates/insights/fragments/year_by_year.html:77 #: templates/insights/fragments/year_by_year.html:77
@@ -1453,42 +1441,42 @@ msgstr "未來的交易"
msgid "End date should be after the start date" msgid "End date should be after the start date"
msgstr "結束日期應該大於起始日期" msgstr "結束日期應該大於起始日期"
#: apps/transactions/models.py:229 #: apps/transactions/models.py:244
msgid "" msgid ""
"Deactivated categories won't be able to be selected when creating new " "Deactivated categories won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "新增交易的時候無法選擇停用的分類" msgstr "新增交易的時候無法選擇停用的分類"
#: apps/transactions/models.py:237 #: apps/transactions/models.py:252
msgid "Transaction Category" msgid "Transaction Category"
msgstr "交易分類" msgstr "交易分類"
#: apps/transactions/models.py:238 #: apps/transactions/models.py:253
msgid "Transaction Categories" msgid "Transaction Categories"
msgstr "交易分類" msgstr "交易分類"
#: apps/transactions/models.py:253 #: apps/transactions/models.py:268
msgid "" msgid ""
"Deactivated tags won't be able to be selected when creating new transactions" "Deactivated tags won't be able to be selected when creating new transactions"
msgstr "新增交易的時候無法選擇停用的標籤" msgstr "新增交易的時候無法選擇停用的標籤"
#: apps/transactions/models.py:261 apps/transactions/models.py:262 #: apps/transactions/models.py:276 apps/transactions/models.py:277
msgid "Transaction Tags" msgid "Transaction Tags"
msgstr "交易標籤" msgstr "交易標籤"
#: apps/transactions/models.py:277 #: apps/transactions/models.py:292
msgid "" msgid ""
"Deactivated entities won't be able to be selected when creating new " "Deactivated entities won't be able to be selected when creating new "
"transactions" "transactions"
msgstr "新增交易的時候無法選擇停用的實體" msgstr "新增交易的時候無法選擇停用的實體"
#: apps/transactions/models.py:285 #: apps/transactions/models.py:300
#: templates/insights/fragments/month_by_month.html:88 #: templates/insights/fragments/month_by_month.html:88
#: templates/insights/fragments/year_by_year.html:56 #: templates/insights/fragments/year_by_year.html:56
msgid "Entity" msgid "Entity"
msgstr "實體" msgstr "實體"
#: apps/transactions/models.py:297 apps/transactions/models.py:1054 #: apps/transactions/models.py:312 apps/transactions/models.py:1071
#: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:42
#: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:44
#: templates/calendar_view/fragments/list.html:52 #: templates/calendar_view/fragments/list.html:52
@@ -1500,7 +1488,7 @@ msgstr "實體"
msgid "Income" msgid "Income"
msgstr "收入" msgstr "收入"
#: apps/transactions/models.py:298 apps/transactions/models.py:1055 #: apps/transactions/models.py:313 apps/transactions/models.py:1072
#: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:46
#: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:48
#: templates/calendar_view/fragments/list.html:56 #: templates/calendar_view/fragments/list.html:56
@@ -1511,165 +1499,165 @@ msgstr "收入"
msgid "Expense" msgid "Expense"
msgstr "支出" msgstr "支出"
#: apps/transactions/models.py:353 apps/transactions/models.py:663 #: apps/transactions/models.py:368 apps/transactions/models.py:680
msgid "Installment Plan" msgid "Installment Plan"
msgstr "分期付款計劃" msgstr "分期付款計劃"
#: apps/transactions/models.py:362 apps/transactions/models.py:887 #: apps/transactions/models.py:377 apps/transactions/models.py:904
msgid "Recurring Transaction" msgid "Recurring Transaction"
msgstr "定期扣款交易" msgstr "定期扣款交易"
#: apps/transactions/models.py:370 #: apps/transactions/models.py:385
msgid "Deleted" msgid "Deleted"
msgstr "已刪除" msgstr "已刪除"
#: apps/transactions/models.py:375 #: apps/transactions/models.py:390
msgid "Deleted At" msgid "Deleted At"
msgstr "刪除時間" msgstr "刪除時間"
#: apps/transactions/models.py:489 templates/tags/fragments/table.html:69 #: apps/transactions/models.py:504 templates/tags/fragments/table.html:69
msgid "No tags" msgid "No tags"
msgstr "沒有標籤" msgstr "沒有標籤"
#: apps/transactions/models.py:491 #: apps/transactions/models.py:506
msgid "No category" msgid "No category"
msgstr "沒有分類" msgstr "沒有分類"
#: apps/transactions/models.py:493 #: apps/transactions/models.py:508
msgid "No description" msgid "No description"
msgstr "沒有描述" msgstr "沒有描述"
#: apps/transactions/models.py:549 #: apps/transactions/models.py:565
#, fuzzy #, fuzzy
#| msgid "ZIP File" #| msgid "ZIP File"
msgid "File" msgid "File"
msgstr "ZIP檔" msgstr "ZIP檔"
#: apps/transactions/models.py:551 #: apps/transactions/models.py:567
msgid "Original Name" msgid "Original Name"
msgstr "" msgstr ""
#: apps/transactions/models.py:553 #: apps/transactions/models.py:569
#, fuzzy #, fuzzy
#| msgid "Content" #| msgid "Content"
msgid "Content Type" msgid "Content Type"
msgstr "內容" msgstr "內容"
#: apps/transactions/models.py:555 #: apps/transactions/models.py:571
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: apps/transactions/models.py:560 #: apps/transactions/models.py:576
msgid "Uploaded By" msgid "Uploaded By"
msgstr "" msgstr ""
#: apps/transactions/models.py:565 #: apps/transactions/models.py:581
#, fuzzy #, fuzzy
#| msgid "Transactions on" #| msgid "Transactions on"
msgid "Transaction Attachment" msgid "Transaction Attachment"
msgstr "交易時間" msgstr "交易時間"
#: apps/transactions/models.py:566 #: apps/transactions/models.py:582
#, fuzzy #, fuzzy
#| msgid "Transaction Tags" #| msgid "Transaction Tags"
msgid "Transaction Attachments" msgid "Transaction Attachments"
msgstr "交易標籤" msgstr "交易標籤"
#: apps/transactions/models.py:595 templates/includes/sidebar.html:57 #: apps/transactions/models.py:612 templates/includes/sidebar.html:57
msgid "Yearly" msgid "Yearly"
msgstr "年" msgstr "年"
#: apps/transactions/models.py:596 apps/users/models.py:469 #: apps/transactions/models.py:613 apps/users/models.py:469
#: templates/includes/sidebar.html:51 #: templates/includes/sidebar.html:51
msgid "Monthly" msgid "Monthly"
msgstr "月" msgstr "月"
#: apps/transactions/models.py:597 #: apps/transactions/models.py:614
msgid "Weekly" msgid "Weekly"
msgstr "週" msgstr "週"
#: apps/transactions/models.py:598 #: apps/transactions/models.py:615
msgid "Daily" msgid "Daily"
msgstr "日" msgstr "日"
#: apps/transactions/models.py:611 #: apps/transactions/models.py:628
msgid "Number of Installments" msgid "Number of Installments"
msgstr "期數" msgstr "期數"
#: apps/transactions/models.py:616 #: apps/transactions/models.py:633
msgid "Installment Start" msgid "Installment Start"
msgstr "分期付款起始日" msgstr "分期付款起始日"
#: apps/transactions/models.py:617 #: apps/transactions/models.py:634
msgid "The installment number to start counting from" msgid "The installment number to start counting from"
msgstr "開始計算的期數" msgstr "開始計算的期數"
#: apps/transactions/models.py:622 apps/transactions/models.py:857 #: apps/transactions/models.py:639 apps/transactions/models.py:874
msgid "Start Date" msgid "Start Date"
msgstr "起始日期" msgstr "起始日期"
#: apps/transactions/models.py:626 apps/transactions/models.py:858 #: apps/transactions/models.py:643 apps/transactions/models.py:875
msgid "End Date" msgid "End Date"
msgstr "結束日期" msgstr "結束日期"
#: apps/transactions/models.py:631 #: apps/transactions/models.py:648
msgid "Recurrence" msgid "Recurrence"
msgstr "頻率" msgstr "頻率"
#: apps/transactions/models.py:634 #: apps/transactions/models.py:651
msgid "Installment Amount" msgid "Installment Amount"
msgstr "分期付款金額" msgstr "分期付款金額"
#: apps/transactions/models.py:653 apps/transactions/models.py:877 #: apps/transactions/models.py:670 apps/transactions/models.py:894
msgid "Add description to transactions" msgid "Add description to transactions"
msgstr "為交易增加描述" msgstr "為交易增加描述"
#: apps/transactions/models.py:656 apps/transactions/models.py:880 #: apps/transactions/models.py:673 apps/transactions/models.py:897
msgid "Add notes to transactions" msgid "Add notes to transactions"
msgstr "為交易新增註記" msgstr "為交易新增註記"
#: apps/transactions/models.py:816 #: apps/transactions/models.py:833
msgid "day(s)" msgid "day(s)"
msgstr "天" msgstr "天"
#: apps/transactions/models.py:817 #: apps/transactions/models.py:834
msgid "week(s)" msgid "week(s)"
msgstr "週" msgstr "週"
#: apps/transactions/models.py:818 #: apps/transactions/models.py:835
msgid "month(s)" msgid "month(s)"
msgstr "月" msgstr "月"
#: apps/transactions/models.py:819 #: apps/transactions/models.py:836
msgid "year(s)" msgid "year(s)"
msgstr "年" msgstr "年"
#: apps/transactions/models.py:821 #: apps/transactions/models.py:838
#: templates/recurring_transactions/fragments/list.html:18 #: templates/recurring_transactions/fragments/list.html:18
msgid "Paused" msgid "Paused"
msgstr "已暫停" msgstr "已暫停"
#: apps/transactions/models.py:860 #: apps/transactions/models.py:877
msgid "Recurrence Type" msgid "Recurrence Type"
msgstr "頻率" msgstr "頻率"
#: apps/transactions/models.py:863 #: apps/transactions/models.py:880
msgid "Recurrence Interval" msgid "Recurrence Interval"
msgstr "頻率間隔" msgstr "頻率間隔"
#: apps/transactions/models.py:866 #: apps/transactions/models.py:883
msgid "Keep at most" msgid "Keep at most"
msgstr "持續最多" msgstr "持續最多"
#: apps/transactions/models.py:870 #: apps/transactions/models.py:887
msgid "Last Generated Date" msgid "Last Generated Date"
msgstr "最後產生的日期" msgstr "最後產生的日期"
#: apps/transactions/models.py:873 #: apps/transactions/models.py:890
msgid "Last Generated Reference Date" msgid "Last Generated Reference Date"
msgstr "最後產生的起算日" msgstr "最後產生的起算日"
#: apps/transactions/models.py:1121 #: apps/transactions/models.py:1138
#: apps/transactions/views/quick_transactions.py:178 #: apps/transactions/views/quick_transactions.py:178
#: apps/transactions/views/quick_transactions.py:187 #: apps/transactions/views/quick_transactions.py:187
#: apps/transactions/views/quick_transactions.py:189 #: apps/transactions/views/quick_transactions.py:189
@@ -1678,7 +1666,7 @@ msgstr "最後產生的起算日"
msgid "Quick Transaction" msgid "Quick Transaction"
msgstr "快速交易" msgstr "快速交易"
#: apps/transactions/models.py:1122 templates/includes/sidebar.html:98 #: apps/transactions/models.py:1139 templates/includes/sidebar.html:98
#: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:5
#: templates/quick_transactions/pages/index.html:15 #: templates/quick_transactions/pages/index.html:15
msgid "Quick Transactions" msgid "Quick Transactions"
@@ -1724,27 +1712,27 @@ msgid "%(count)s transaction duplicated successfully"
msgid_plural "%(count)s transactions duplicated successfully" msgid_plural "%(count)s transactions duplicated successfully"
msgstr[0] "成功複製%(count)s筆交易" msgstr[0] "成功複製%(count)s筆交易"
#: apps/transactions/views/categories.py:66 #: apps/transactions/views/categories.py:72
msgid "Category added successfully" msgid "Category added successfully"
msgstr "成功新增分類" msgstr "成功新增分類"
#: apps/transactions/views/categories.py:104 #: apps/transactions/views/categories.py:102
msgid "Category updated successfully" msgid "Category updated successfully"
msgstr "成功更新分類" msgstr "成功更新分類"
#: apps/transactions/views/categories.py:171 #: apps/transactions/views/categories.py:158
msgid "Category deleted successfully" msgid "Category deleted successfully"
msgstr "成功刪除分類" msgstr "成功刪除分類"
#: apps/transactions/views/entities.py:66 #: apps/transactions/views/entities.py:72
msgid "Entity added successfully" msgid "Entity added successfully"
msgstr "成功新增實體" msgstr "成功新增實體"
#: apps/transactions/views/entities.py:104 #: apps/transactions/views/entities.py:102
msgid "Entity updated successfully" msgid "Entity updated successfully"
msgstr "成功更新實體" msgstr "成功更新實體"
#: apps/transactions/views/entities.py:133 #: apps/transactions/views/entities.py:130
msgid "Entity deleted successfully" msgid "Entity deleted successfully"
msgstr "成功刪除實體" msgstr "成功刪除實體"
@@ -1807,15 +1795,15 @@ msgstr "成功完成定期扣款"
msgid "Recurring Transaction deleted successfully" msgid "Recurring Transaction deleted successfully"
msgstr "成功刪除定期扣款" msgstr "成功刪除定期扣款"
#: apps/transactions/views/tags.py:66 #: apps/transactions/views/tags.py:72
msgid "Tag added successfully" msgid "Tag added successfully"
msgstr "成功新增標籤" msgstr "成功新增標籤"
#: apps/transactions/views/tags.py:104 #: apps/transactions/views/tags.py:100
msgid "Tag updated successfully" msgid "Tag updated successfully"
msgstr "成功更新標籤" msgstr "成功更新標籤"
#: apps/transactions/views/tags.py:133 #: apps/transactions/views/tags.py:126
msgid "Tag deleted successfully" msgid "Tag deleted successfully"
msgstr "成功刪除標籤" msgstr "成功刪除標籤"
@@ -1900,9 +1888,9 @@ msgstr "這個帳號已經被停用"
#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103
#: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:98
#: templates/monthly_overview/pages/overview.html:245 #: templates/monthly_overview/pages/overview.html:247
#: templates/transactions/pages/transactions.html:47 #: templates/transactions/pages/transactions.html:47
#: templates/transactions/pages/transactions.html:195 #: templates/transactions/pages/transactions.html:196
msgid "Default" msgid "Default"
msgstr "預設" msgstr "預設"
@@ -2253,6 +2241,7 @@ msgstr "分享"
#: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:92
#: templates/rules/fragments/transaction_rule/view.html:133 #: templates/rules/fragments/transaction_rule/view.html:133
#: templates/tags/fragments/table.html:51 #: templates/tags/fragments/table.html:51
#: templates/transactions/fragments/filter_presets.html:28
#: templates/users/fragments/api_tokens.html:93 #: templates/users/fragments/api_tokens.html:93
msgid "Delete" msgid "Delete"
msgstr "刪除" msgstr "刪除"
@@ -2744,19 +2733,19 @@ msgstr "當前價格"
msgid "Amount Bought" msgid "Amount Bought"
msgstr "購買數量" msgstr "購買數量"
#: templates/dca/fragments/strategy/details.html:384 #: templates/dca/fragments/strategy/details.html:409
msgid "Entry Price vs Current Price" msgid "Entry Price vs Current Price"
msgstr "投入金額對比當前金額" msgstr "投入金額對比當前金額"
#: templates/dca/fragments/strategy/details.html:398 #: templates/dca/fragments/strategy/details.html:423
msgid "Days Between Investments" msgid "Days Between Investments"
msgstr "兩次投資之間的天數" msgstr "兩次投資之間的天數"
#: templates/dca/fragments/strategy/details.html:444 #: templates/dca/fragments/strategy/details.html:469
msgid "Investment Frequency" msgid "Investment Frequency"
msgstr "投資頻率" msgstr "投資頻率"
#: templates/dca/fragments/strategy/details.html:446 #: templates/dca/fragments/strategy/details.html:471
msgid "The straighter the blue line, the more consistent your DCA strategy is." msgid "The straighter the blue line, the more consistent your DCA strategy is."
msgstr "藍線越直代表您定期定額的策略越一致。" msgstr "藍線越直代表您定期定額的策略越一致。"
@@ -2992,6 +2981,7 @@ msgid "Reload"
msgstr "" msgstr ""
#: templates/includes/scripts/hyperscript/swal.html:13 #: templates/includes/scripts/hyperscript/swal.html:13
#: templates/transactions/fragments/filter_actions.html:4
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr "取消"
@@ -3424,16 +3414,16 @@ msgid "Summary"
msgstr "總結" msgstr "總結"
#: templates/monthly_overview/pages/overview.html:99 #: templates/monthly_overview/pages/overview.html:99
#: templates/monthly_overview/pages/overview.html:254 #: templates/monthly_overview/pages/overview.html:256
#: templates/transactions/pages/transactions.html:48 #: templates/transactions/pages/transactions.html:48
#: templates/transactions/pages/transactions.html:204 #: templates/transactions/pages/transactions.html:205
msgid "Oldest first" msgid "Oldest first"
msgstr "最舊的優先" msgstr "最舊的優先"
#: templates/monthly_overview/pages/overview.html:100 #: templates/monthly_overview/pages/overview.html:100
#: templates/monthly_overview/pages/overview.html:263 #: templates/monthly_overview/pages/overview.html:265
#: templates/transactions/pages/transactions.html:49 #: templates/transactions/pages/transactions.html:49
#: templates/transactions/pages/transactions.html:213 #: templates/transactions/pages/transactions.html:214
msgid "Newest first" msgid "Newest first"
msgstr "新的優先" msgstr "新的優先"
@@ -3442,8 +3432,8 @@ msgstr "新的優先"
msgid "Filter transactions" msgid "Filter transactions"
msgstr "過濾交易" msgstr "過濾交易"
#: templates/monthly_overview/pages/overview.html:235 #: templates/monthly_overview/pages/overview.html:237
#: templates/transactions/pages/transactions.html:185 #: templates/transactions/pages/transactions.html:186
msgid "Order by" msgid "Order by"
msgstr "排序方式" msgstr "排序方式"
@@ -3549,15 +3539,21 @@ msgstr "沒有定期扣款交易"
msgid "View" msgid "View"
msgstr "檢視" msgstr "檢視"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Deactivate" msgid "Deactivate"
msgstr "停用" msgstr "停用"
#: templates/rules/fragments/list.html:70 #: templates/rules/fragments/list.html:71
msgid "Activate" msgid "Activate"
msgstr "啟用" msgstr "啟用"
#: templates/rules/fragments/list.html:89 #: templates/rules/fragments/list.html:77
#, fuzzy
#| msgid "Only the owner can edit this"
msgid "Only the owner can change this"
msgstr "只有擁有者可以編輯這個項目"
#: templates/rules/fragments/list.html:96
msgid "No rules" msgid "No rules"
msgstr "沒有規則" msgstr "沒有規則"
@@ -3706,6 +3702,48 @@ msgstr "編輯"
msgid "transactions" msgid "transactions"
msgstr "交易" msgstr "交易"
#: templates/transactions/fragments/filter_actions.html:2
msgid "Save filter preset"
msgstr ""
#: templates/transactions/fragments/filter_actions.html:3
#, fuzzy
#| msgid "File name"
msgid "Preset name"
msgstr "檔案名稱"
#: templates/transactions/fragments/filter_actions.html:40
#, fuzzy
#| msgid "From preset"
msgid "Save preset"
msgstr "從設定組"
#: templates/transactions/fragments/filter_presets.html:6
#, fuzzy
#| msgid "From preset"
msgid "Filter presets"
msgstr "從設定組"
#: templates/transactions/fragments/filter_presets.html:21
#, python-format
msgid "Delete %(name)s"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:26
msgid "Delete filter preset?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:27
#, python-format
msgid "Delete “%(name)s”?"
msgstr ""
#: templates/transactions/fragments/filter_presets.html:34
#, fuzzy
#| msgid "No presets yet"
msgid "No saved presets"
msgstr "尚未設定任何設定組"
#: templates/transactions/fragments/list_all.html:58 #: templates/transactions/fragments/list_all.html:58
msgid "No transactions found" msgid "No transactions found"
msgstr "沒有發現交易" msgstr "沒有發現交易"
@@ -107,7 +107,7 @@
@click="filterOpen = !filterOpen" @click="filterOpen = !filterOpen"
:aria-expanded="filterOpen" id="filter-button" :aria-expanded="filterOpen" id="filter-button"
title="{% translate 'Filter transactions' %}" title="{% translate 'Filter transactions' %}"
_="on load or change from #filter _="on change from #filter-container
-- Check if any filter has a non-default value -- Check if any filter has a non-default value
set hasActiveFilter to false set hasActiveFilter to false
@@ -208,7 +208,7 @@
add .hidden to #filter-active-indicator add .hidden to #filter-active-indicator
end"> end">
<i class="fa-solid fa-filter fa-fw"></i> <i class="fa-solid fa-filter fa-fw"></i>
<span id="filter-active-indicator" class="absolute -top-1 -right-1 w-3 h-3 bg-error rounded-full hidden z-10"></span> <span id="filter-active-indicator" class="absolute -top-1 -right-1 w-3 h-3 bg-error rounded-full {% if not filter_is_active %}hidden {% endif %}z-10"></span>
</button> </button>
{# Search box #} {# Search box #}
@@ -228,6 +228,8 @@
show <.transaction/> in <#transactions-list/> show <.transaction/> in <#transactions-list/>
when its textContent.toLowerCase() contains my value.toLowerCase()"> when its textContent.toLowerCase() contains my value.toLowerCase()">
{% include "transactions/fragments/filter_presets.html" %}
{# Order by icon dropdown #} {# Order by icon dropdown #}
<div> <div>
<button class="btn btn-secondary join-item" type="button" <button class="btn btn-secondary join-item" type="button"
@@ -270,21 +272,16 @@
{# Filter transactions form #} {# Filter transactions form #}
<div class="z-1" x-show="filterOpen" x-collapse x-cloak> <div class="z-1" x-show="filterOpen" x-collapse x-cloak>
<div class="card card-body bg-base-200 mt-2"> <div class="card card-body bg-base-200 mt-2">
<div class="text-right"> {% include "transactions/fragments/filter_actions.html" %}
<button class="btn btn-outline btn-error btn-sm w-fit"
_="on click call #filter.reset() then trigger change on #filter">{% translate 'Clear' %}</button>
</div>
<form _="on change or submit or search trigger updated on window {% include "transactions/fragments/filter_form.html" %}
install init_tom_select
install init_datepicker"
id="filter" class="mt-3">
{% crispy filter.form %}
</form>
<div class="text-right"> <div class="text-right">
<button class="btn btn-outline btn-error btn-sm w-fit" <a class="btn btn-outline btn-error btn-sm w-fit"
_="on click call #filter.reset() then trigger change on #filter">{% translate 'Clear' %}</button> href="{{ request.path }}"
hx-get="{% url 'transaction_filter_clear' %}"
hx-target="#filter"
hx-swap="outerHTML">{% translate 'Clear' %}</a>
</div> </div>
</div> </div>
</div> </div>
+15 -8
View File
@@ -64,14 +64,21 @@
</div> </div>
</td> </td>
<td class="table-col-auto"> <td class="table-col-auto">
<a class="no-underline cursor-pointer" {% if not rule.owner or user == rule.owner %}
role="button" <a class="no-underline cursor-pointer"
data-tippy-content=" role="button"
{% if rule.active %}{% translate "Deactivate" %}{% else %}{% translate "Activate" %}{% endif %}" data-tippy-content="
hx-get="{% url 'transaction_rule_toggle_activity' transaction_rule_id=rule.id %}"> {% if rule.active %}{% translate "Deactivate" %}{% else %}{% translate "Activate" %}{% endif %}"
{% if rule.active %}<i class="fa-solid fa-toggle-on text-success"></i>{% else %} hx-get="{% url 'transaction_rule_toggle_activity' transaction_rule_id=rule.id %}">
<i class="fa-solid fa-toggle-off text-error"></i>{% endif %} {% if rule.active %}<i class="fa-solid fa-toggle-on text-success"></i>{% else %}
</a> <i class="fa-solid fa-toggle-off text-error"></i>{% endif %}
</a>
{% else %}
<span data-tippy-content="{% translate "Only the owner can change this" %}">
{% if rule.active %}<i class="fa-solid fa-toggle-on text-success opacity-50"></i>{% else %}
<i class="fa-solid fa-toggle-off text-error opacity-50"></i>{% endif %}
</span>
{% endif %}
</td> </td>
<td class="table-col-auto text-center"> <td class="table-col-auto text-center">
<div>{{ rule.order }}</div> <div>{{ rule.order }}</div>
@@ -0,0 +1,50 @@
{% load i18n %}
{% translate "Save filter preset" as save_filter_preset_title %}
{% translate "Preset name" as preset_name_label %}
{% translate "Cancel" as cancel_label %}
{% translate "Save" as save_label %}
<div class="flex justify-end gap-2">
<form id="save-filter-preset"
hx-post="{% url 'filter_preset_create' %}"
hx-include="#filter"
hx-target="#filter-presets"
hx-swap="outerHTML">
<input id="filter-preset-name" type="hidden" name="name">
<button class="btn btn-outline btn-primary btn-sm" type="button"
data-title="{{ save_filter_preset_title }}"
data-input-label="{{ preset_name_label }}"
data-cancel-text="{{ cancel_label }}"
data-confirm-text="{{ save_label }}"
_="on click
call Swal.fire({title: @data-title,
input: 'text',
inputLabel: @data-input-label,
inputAttributes: {maxlength: '100'},
showCancelButton: true,
cancelButtonText: @data-cancel-text,
confirmButtonText: @data-confirm-text,
customClass: {
confirmButton: 'btn btn-primary me-3',
cancelButton: 'btn btn-error'
},
buttonsStyling: false})
if result.isConfirmed
set presetName to result.value.trim()
if presetName is not ''
set #filter-preset-name.value to presetName
trigger submit on #save-filter-preset
end
end">
<i class="fa-solid fa-bookmark fa-fw"></i>
{% translate 'Save preset' %}
</button>
</form>
<a class="btn btn-outline btn-error btn-sm"
href="{{ request.path }}"
hx-get="{% url 'transaction_filter_clear' %}"
hx-target="#filter"
hx-swap="outerHTML">
{% translate 'Clear' %}
</a>
</div>
@@ -0,0 +1,18 @@
{% load crispy_forms_tags %}
<form _="on change or submit or search
if event.type is 'submit'
halt the event
end
trigger updated on window
end
install init_tom_select
install init_datepicker"
id="filter" class="mt-3">
{% crispy filter.form %}
</form>
{% if swap_filter_indicator %}
<span id="filter-active-indicator"
class="absolute -top-1 -right-1 w-3 h-3 bg-error rounded-full {% if not filter_is_active %}hidden {% endif %}z-10"
hx-swap-oob="outerHTML"></span>
{% endif %}
@@ -0,0 +1,37 @@
{% load i18n %}
<div id="filter-presets">
<button class="btn btn-secondary join-item" type="button"
data-bs-toggle="dropdown" aria-expanded="false"
title="{% translate 'Filter presets' %}">
<i class="fa-solid fa-bookmark fa-fw"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end menu min-w-52">
{% for preset in filter_presets %}
<li class="group flex-row items-center">
<button class="grow justify-start"
type="button"
hx-get="{% url 'filter_preset_apply' preset.id %}"
hx-target="#filter"
hx-swap="outerHTML">
{{ preset.name }}
</button>
<button class="btn btn-ghost btn-xs opacity-0 group-hover:opacity-100 focus:opacity-100"
type="button"
aria-label="{% blocktranslate with name=preset.name %}Delete {{ name }}{% endblocktranslate %}"
hx-post="{% url 'filter_preset_delete' preset.id %}"
hx-trigger="confirmed"
hx-target="#filter-presets"
hx-swap="outerHTML"
data-title="{% translate 'Delete filter preset?' %}"
data-text="{% blocktranslate with name=preset.name %}Delete “{{ name }}”?{% endblocktranslate %}"
data-confirm-text="{% translate 'Delete' %}"
_="install prompt_swal">
<i class="fa-solid fa-xmark fa-fw"></i>
</button>
</li>
{% empty %}
<li class="menu-disabled"><span>{% translate 'No saved presets' %}</span></li>
{% endfor %}
</ul>
</div>
@@ -56,7 +56,7 @@
@click="filterOpen = !filterOpen" @click="filterOpen = !filterOpen"
:aria-expanded="filterOpen" id="filter-button" :aria-expanded="filterOpen" id="filter-button"
title="{% translate 'Filter transactions' %}" title="{% translate 'Filter transactions' %}"
_="on load or change from #filter _="on change from #filter-container
-- Check if any filter has a non-default value -- Check if any filter has a non-default value
set hasActiveFilter to false set hasActiveFilter to false
@@ -157,7 +157,7 @@
add .hidden to #filter-active-indicator add .hidden to #filter-active-indicator
end"> end">
<i class="fa-solid fa-filter fa-fw"></i> <i class="fa-solid fa-filter fa-fw"></i>
<span id="filter-active-indicator" class="absolute -top-1 -right-1 w-3 h-3 bg-error rounded-full hidden z-10"></span> <span id="filter-active-indicator" class="absolute -top-1 -right-1 w-3 h-3 bg-error rounded-full {% if not filter_is_active %}hidden {% endif %}z-10"></span>
</button> </button>
{# Search box #} {# Search box #}
@@ -177,7 +177,8 @@
show <.transaction/> in <#transactions-list/> show <.transaction/> in <#transactions-list/>
when its textContent.toLowerCase() contains my value.toLowerCase()"> when its textContent.toLowerCase() contains my value.toLowerCase()">
{# Order by icon dropdown #} {% include "transactions/fragments/filter_presets.html" %}
{# Order by icon dropdown #} {# Order by icon dropdown #}
<div> <div>
<button class="btn btn-secondary join-item" type="button" <button class="btn btn-secondary join-item" type="button"
@@ -220,21 +221,16 @@
{# Filter transactions form #} {# Filter transactions form #}
<div class="z-1" x-show="filterOpen" x-collapse x-cloak> <div class="z-1" x-show="filterOpen" x-collapse x-cloak>
<div class="card card-body bg-base-200 mt-2"> <div class="card card-body bg-base-200 mt-2">
<div class="text-right"> {% include "transactions/fragments/filter_actions.html" %}
<button class="btn btn-outline btn-error btn-sm w-fit"
_="on click call #filter.reset() then trigger change on #filter">{% translate 'Clear' %}</button>
</div>
<form _="on change or submit or search trigger updated on window {% include "transactions/fragments/filter_form.html" %}
install init_tom_select
install init_datepicker"
id="filter" class="mt-3">
{% crispy filter.form %}
</form>
<div class="text-right"> <div class="text-right">
<button class="btn btn-outline btn-error btn-sm w-fit" <a class="btn btn-outline btn-error btn-sm w-fit"
_="on click call #filter.reset() then trigger change on #filter">{% translate 'Clear' %}</button> href="{{ request.path }}"
hx-get="{% url 'transaction_filter_clear' %}"
hx-target="#filter"
hx-swap="outerHTML">{% translate 'Clear' %}</a>
</div> </div>
</div> </div>
</div> </div>
+23 -23
View File
@@ -1157,9 +1157,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/baseline-browser-mapping": { "node_modules/baseline-browser-mapping": {
"version": "2.10.34", "version": "2.11.20",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.34.tgz", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.20.tgz",
"integrity": "sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw==", "integrity": "sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw==",
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
"baseline-browser-mapping": "dist/cli.cjs" "baseline-browser-mapping": "dist/cli.cjs"
@@ -1188,9 +1188,9 @@
} }
}, },
"node_modules/browserslist": { "node_modules/browserslist": {
"version": "4.28.2", "version": "4.28.8",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz",
"integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -1207,11 +1207,11 @@
], ],
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"baseline-browser-mapping": "^2.10.12", "baseline-browser-mapping": "^2.11.12",
"caniuse-lite": "^1.0.30001782", "caniuse-lite": "^1.0.30001809",
"electron-to-chromium": "^1.5.328", "electron-to-chromium": "^1.5.402",
"node-releases": "^2.0.36", "node-releases": "^2.0.53",
"update-browserslist-db": "^1.2.3" "update-browserslist-db": "^1.3.0"
}, },
"bin": { "bin": {
"browserslist": "cli.js" "browserslist": "cli.js"
@@ -1221,9 +1221,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001797", "version": "1.0.30001810",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001797.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz",
"integrity": "sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==", "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -1339,9 +1339,9 @@
} }
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.5.368", "version": "1.5.420",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.368.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.420.tgz",
"integrity": "sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==", "integrity": "sha512-2yD6XreGusOfNV+dUcvipJEXc3n/n7fgr7996aszTG+YY5E4mqM4tOq/3uhP129cazL9YHbVWSpc79ePotWtPA==",
"license": "ISC" "license": "ISC"
}, },
"node_modules/enhanced-resolve": { "node_modules/enhanced-resolve": {
@@ -1812,9 +1812,9 @@
"optional": true "optional": true
}, },
"node_modules/node-releases": { "node_modules/node-releases": {
"version": "2.0.47", "version": "2.0.54",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.54.tgz",
"integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==", "integrity": "sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=18" "node": ">=18"
@@ -2069,9 +2069,9 @@
} }
}, },
"node_modules/update-browserslist-db": { "node_modules/update-browserslist-db": {
"version": "1.2.3", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.2.tgz",
"integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "integrity": "sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
Generated
+9 -9
View File
@@ -580,14 +580,14 @@ wheels = [
[[package]] [[package]]
name = "djangorestframework" name = "djangorestframework"
version = "3.17.1" version = "3.17.2"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
dependencies = [ dependencies = [
{ name = "django" }, { name = "django" },
] ]
sdist = { url = "https://files.pythonhosted.org/packages/ca/d7/c016e69fac19ff8afdc89db9d31d9ae43ae031e4d1993b20aca179b8301a/djangorestframework-3.17.1.tar.gz", hash = "sha256:a6def5f447fe78ff853bff1d47a3c59bf38f5434b031780b351b0c73a62db1a5", size = 905742, upload-time = "2026-03-24T16:58:33.705Z" } sdist = { url = "https://files.pythonhosted.org/packages/3b/35/c96055e700fdff25da3a7b7756cfd1d4dc54f38b9bc6d6c5e19e3a0fdc20/djangorestframework-3.17.2.tar.gz", hash = "sha256:89ed713b6dc83e1539f214b7d10808ae19bb8511004beba886225da6d5c9dafa", size = 906683, upload-time = "2026-08-05T07:47:22.5Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/5a/e1/2c516bdc83652b1a60c6119366ac2c0607b479ed05cd6093f916ca8928f8/djangorestframework-3.17.1-py3-none-any.whl", hash = "sha256:c3c74dd3e83a5a3efc37b3c18d92bd6f86a6791c7b7d4dff62bb068500e76457", size = 898844, upload-time = "2026-03-24T16:58:31.845Z" }, { url = "https://files.pythonhosted.org/packages/a2/46/c14108e400b208c394325eb63fbae06c81341b6447fa1a6f9da718b17fe7/djangorestframework-3.17.2-py3-none-any.whl", hash = "sha256:cb0546a7415d5b46c04e0f4fe0a54b2109f4fdd5e83ca773c8c6183a6493d042", size = 899109, upload-time = "2026-08-05T07:47:20.853Z" },
] ]
[[package]] [[package]]
@@ -709,11 +709,11 @@ wheels = [
[[package]] [[package]]
name = "mistune" name = "mistune"
version = "3.3.0" version = "3.3.3"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/84/9c/1939635275ec7258e2b43b00dafabc36d89ad11aa7838d375dc1b0e561cb/mistune-3.3.0.tar.gz", hash = "sha256:3074ec4c61b384abe725128e4dcbb483f5a09cc4632012505cdee655d3a113b9", size = 110936, upload-time = "2026-06-21T13:11:39.458Z" } sdist = { url = "https://files.pythonhosted.org/packages/7b/a5/2dab368d6950e6808904dec98f54c7e726ee7be4a0c6afe00e6e011bd52d/mistune-3.3.3.tar.gz", hash = "sha256:c4c6c0c840b8637a2e9b8b6d607eb7c8f00888bf14c754409bcd339e848c2477", size = 115363, upload-time = "2026-07-09T06:18:05.268Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/b7/76/b90f9d48d43fbd80a79a20d3eab2e5109859c7a56dc663b23187385898f3/mistune-3.3.0-py3-none-any.whl", hash = "sha256:a758e578acda49d8195f9a860b132dae2cf7bf409381393b1c4e6e489a65397b", size = 61250, upload-time = "2026-06-21T13:11:37.938Z" }, { url = "https://files.pythonhosted.org/packages/89/70/b1e4737b84163db5bb1dfde6f216dbfbf32783330a9989c965e121172830/mistune-3.3.3-py3-none-any.whl", hash = "sha256:99de1585e42dcbd826faa9e11a202727a5e202e4e4722a4c69ac1ff615793dd7", size = 63569, upload-time = "2026-07-09T06:18:03.839Z" },
] ]
[[package]] [[package]]
@@ -1532,11 +1532,11 @@ wheels = [
[[package]] [[package]]
name = "sqlparse" name = "sqlparse"
version = "0.5.5" version = "0.6.0"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/90/76/437d71068094df0726366574cf3432a4ed754217b436eb7429415cf2d480/sqlparse-0.5.5.tar.gz", hash = "sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e", size = 120815, upload-time = "2025-12-19T07:17:45.073Z" } sdist = { url = "https://files.pythonhosted.org/packages/5f/d3/3f06a1006f2261d1342aefb3c71eed02f5d4ca5bdbecd86ebc12ad38306e/sqlparse-0.6.0.tar.gz", hash = "sha256:113c35c75365ab9cc9c7231d68c6428fb11c085fc8e9eb1ad659b7ddbf6cd2b9", size = 178477, upload-time = "2026-08-13T19:16:06.396Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/49/4b/359f28a903c13438ef59ebeee215fb25da53066db67b305c125f1c6d2a25/sqlparse-0.5.5-py3-none-any.whl", hash = "sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba", size = 46138, upload-time = "2025-12-19T07:17:46.573Z" }, { url = "https://files.pythonhosted.org/packages/d9/50/f00935da0ec7cbf325f8dc4f772ae46fbc7b672dd62876e73f0a94adda57/sqlparse-0.6.0-py3-none-any.whl", hash = "sha256:b861c0288ce2fa56209a9a6412d2e066ac664b3873b89c26c9d8415e8e32996f", size = 50070, upload-time = "2026-08-13T19:16:04.062Z" },
] ]
[[package]] [[package]]