feat: default account for new transactions

This commit is contained in:
pawelaugustyn
2026-02-15 22:59:17 +01:00
parent 63ba7af3c8
commit 9ecf8279b4
4 changed files with 61 additions and 0 deletions

View File

@@ -1,6 +1,8 @@
from apps.common.middleware.thread_local import get_current_user
from apps.common.widgets.crispy.submit import NoClassSubmit
from apps.common.widgets.tom_select import TomSelect
from apps.users.models import UserSettings
from apps.accounts.models import Account
from crispy_forms.bootstrap import (
FormActions,
)
@@ -116,6 +118,15 @@ class UserSettingsForm(forms.ModelForm):
label=_("Number Format"),
)
default_account = forms.ModelChoiceField(
queryset=Account.objects.filter(
is_archived=False,
),
label=_("Default Account"),
widget=TomSelect(clear_button=False, group_by="group"),
required=False,
)
class Meta:
model = UserSettings
fields = [
@@ -126,11 +137,19 @@ class UserSettingsForm(forms.ModelForm):
"datetime_format",
"number_format",
"volume",
"default_account",
]
widgets = {
"default_account": TomSelect(clear_button=False, group_by="group"),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["default_account"].queryset = Account.objects.filter(
is_archived=False,
)
self.helper = FormHelper()
self.helper.form_tag = False
self.helper.form_method = "post"
@@ -141,6 +160,7 @@ class UserSettingsForm(forms.ModelForm):
"date_format",
"datetime_format",
"number_format",
"default_account",
HTML('<hr class="hr my-3" />'),
"start_page",
HTML('<hr class="hr my-3" />'),
@@ -157,6 +177,10 @@ class UserSettingsForm(forms.ModelForm):
"translation_link": '<a href="https://translations.herculino.com" target="_blank">translations.herculino.com</a>'
}
self.fields["default_account"].help_text = _(
"Selects the account by default when creating new transactions"
)
class UserUpdateForm(forms.ModelForm):
new_password1 = forms.CharField(