mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-04-25 01:58:54 +02:00
feat(transactions): add another transaction (or a similar one) right after adding one
This commit is contained in:
@@ -6,6 +6,7 @@ from crispy_forms.layout import (
|
|||||||
Row,
|
Row,
|
||||||
Column,
|
Column,
|
||||||
Field,
|
Field,
|
||||||
|
Div,
|
||||||
)
|
)
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
@@ -206,10 +207,21 @@ class TransactionForm(forms.ModelForm):
|
|||||||
else:
|
else:
|
||||||
self.fields["amount"].widget = ArbitraryDecimalDisplayNumberInput()
|
self.fields["amount"].widget = ArbitraryDecimalDisplayNumberInput()
|
||||||
self.helper.layout.append(
|
self.helper.layout.append(
|
||||||
FormActions(
|
Div(
|
||||||
NoClassSubmit(
|
NoClassSubmit(
|
||||||
"submit", _("Add"), css_class="btn btn-outline-primary w-100"
|
"submit", _("Add"), css_class="btn btn-outline-primary"
|
||||||
),
|
),
|
||||||
|
NoClassSubmit(
|
||||||
|
"submit_and_similar",
|
||||||
|
_("Save and add similar"),
|
||||||
|
css_class="btn btn-outline-primary",
|
||||||
|
),
|
||||||
|
NoClassSubmit(
|
||||||
|
"submit_and_another",
|
||||||
|
_("Save and add another"),
|
||||||
|
css_class="btn btn-outline-primary",
|
||||||
|
),
|
||||||
|
css_class="d-grid gap-2",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -43,16 +43,33 @@ def transaction_add(request):
|
|||||||
year=year,
|
year=year,
|
||||||
).date()
|
).date()
|
||||||
|
|
||||||
|
update = False
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = TransactionForm(request.POST)
|
form = TransactionForm(request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
messages.success(request, _("Transaction added successfully"))
|
messages.success(request, _("Transaction added successfully"))
|
||||||
|
|
||||||
return HttpResponse(
|
if "submit" in request.POST:
|
||||||
status=204,
|
return HttpResponse(
|
||||||
headers={"HX-Trigger": "updated, hide_offcanvas"},
|
status=204,
|
||||||
)
|
headers={"HX-Trigger": "updated, hide_offcanvas"},
|
||||||
|
)
|
||||||
|
elif "submit_and_another" in request.POST:
|
||||||
|
form = TransactionForm(
|
||||||
|
initial={
|
||||||
|
"date": expected_date,
|
||||||
|
"type": transaction_type,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
update = True
|
||||||
|
elif "submit_and_similar" in request.POST:
|
||||||
|
form = TransactionForm(
|
||||||
|
initial=request.POST.dict(),
|
||||||
|
)
|
||||||
|
update = True
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = TransactionForm(
|
form = TransactionForm(
|
||||||
initial={
|
initial={
|
||||||
@@ -61,11 +78,15 @@ def transaction_add(request):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
return render(
|
response = render(
|
||||||
request,
|
request,
|
||||||
"transactions/fragments/add.html",
|
"transactions/fragments/add.html",
|
||||||
{"form": form},
|
{"form": form},
|
||||||
)
|
)
|
||||||
|
if update:
|
||||||
|
response["HX-Trigger"] = "updated"
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
|||||||
Reference in New Issue
Block a user