|
|
@@ -15,6 +15,7 @@ from expenses.forms import (
|
|
|
CategoryForm,
|
|
|
ExpenseForm,
|
|
|
LoneExpenseForm,
|
|
|
+ SubExpenseForm,
|
|
|
MultiplePaymentExepenseForm,
|
|
|
)
|
|
|
|
|
|
@@ -86,15 +87,27 @@ def lone_expense_create(request):
|
|
|
|
|
|
|
|
|
def multiple_expense_create(request):
|
|
|
- form = MultiplePaymentExepenseForm(request.POST or None)
|
|
|
- if form.is_valid():
|
|
|
- instance = form.save()
|
|
|
+ multiple_expense_form = MultiplePaymentExepenseForm(request.POST or None)
|
|
|
+ lone_expense_form = SubExpenseForm(request.POST or None)
|
|
|
+ if multiple_expense_form.is_valid() and lone_expense_form.is_valid():
|
|
|
+ multiple_expense = multiple_expense_form.save()
|
|
|
+ lone_expense = lone_expense_form.save(commit=False)
|
|
|
+ lone_expense.date = multiple_expense.first_payment_date
|
|
|
+ lone_expense.name = multiple_expense.name + " 1st payment"
|
|
|
+ lone_expense = lone_expense.save()
|
|
|
+ print(lone_expense)
|
|
|
+ multiple_expense.payments.add(lone_expense)
|
|
|
+ multiple_expense.save()
|
|
|
expense = Expense(
|
|
|
- content_object=instance,
|
|
|
+ content_object=multiple_expense,
|
|
|
)
|
|
|
expense.save()
|
|
|
return redirect("expenses:expense_list")
|
|
|
- return render(request, "lone_expense_create.html", {"form": form})
|
|
|
+ context = {
|
|
|
+ 'multiple_expense_form': multiple_expense_form,
|
|
|
+ 'lone_expense_form': lone_expense_form,
|
|
|
+ }
|
|
|
+ return render(request, "expense_create.html", context)
|
|
|
|
|
|
|
|
|
def create_expense(request):
|
|
|
@@ -106,7 +119,7 @@ def create_expense(request):
|
|
|
)
|
|
|
expense.save()
|
|
|
# return HttpResponseRedirect('/')
|
|
|
- return redirect("expenses:expense_create")
|
|
|
+ return redirect("expenses:expense_list")
|
|
|
|
|
|
return render(request, "create_expense.html", {"form": form})
|
|
|
|
|
|
@@ -115,3 +128,8 @@ class RawExpenseListView(ListView):
|
|
|
model = RawExpense
|
|
|
fields = "__all__"
|
|
|
template_name = "raw_expenses_list.html"
|
|
|
+
|
|
|
+
|
|
|
+def expense_detail(request, pk):
|
|
|
+ expense = Expense.objects.get(pk=pk)
|
|
|
+ return render(request, "expense_detail.html", {"expense": expense})
|