Browse Source

fix: expose subcategory creation

master
Codex 2 months ago
parent
commit
50966d598b
  1. 1
      core/context.py
  2. 8
      core/forms.py
  3. 11
      core/views.py

1
core/context.py

@ -5,6 +5,7 @@ def navigation(_request):
("imports-index", "Imports"),
("transaction-list", "Transactions"),
("category-list", "Categories"),
("category-group-list", "Category groups"),
("payee-list", "Payees"),
("reconciliation-index", "Reconciliation"),
("monthly-report", "Reports"),

8
core/forms.py

@ -85,6 +85,14 @@ class AccountForm(forms.Form):
class CategoryForm(forms.Form):
name = forms.CharField(max_length=255)
kind = forms.ChoiceField(choices=Category.Kind.choices)
group = forms.TypedChoiceField(required=False, empty_value=None, coerce=_uuid)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["group"].choices = [("", "Ungrouped"), *(
(str(row.pk), row.name)
for row in CategoryGroup.objects.filter(archived=False).order_by("name", "id")
)]
class CategoryGroupForm(forms.Form):

11
core/views.py

@ -388,7 +388,16 @@ def account_create(request):
def category_create(request):
return _reference_create(request, CategoryForm, create_category, "New category", "category-list")
form = CategoryForm(request.POST or None)
if request.method == "POST" and form.is_valid():
try:
create_category(name=form.cleaned_data["name"], kind=form.cleaned_data["kind"], group_id=form.cleaned_data["group"], actor=LOCAL_ACTOR)
except DomainError as exc:
form.add_error(None, _domain_message(exc))
else:
messages.success(request, "Category created.")
return redirect("category-list")
return render(request, "core/references/form.html", {"form": form, "title": "New category"})
def category_group_create(request):

Loading…
Cancel
Save