From 2cb81001292125e3a8d4cc3ce66ab46fc74add20 Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Sat, 11 Jan 2025 13:40:10 -0300 Subject: [PATCH] feat(recurring-transaction): when explicitly finishing, delete any upcoming unpaid transactions --- app/apps/transactions/views/recurring_transactions.py | 5 ++++- app/templates/recurring_transactions/fragments/table.html | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/apps/transactions/views/recurring_transactions.py b/app/apps/transactions/views/recurring_transactions.py index 1c76705..ba163b8 100644 --- a/app/apps/transactions/views/recurring_transactions.py +++ b/app/apps/transactions/views/recurring_transactions.py @@ -202,7 +202,7 @@ def recurring_transaction_toggle_pause(request, recurring_transaction_id): @login_required @require_http_methods(["GET"]) def recurring_transaction_finish(request, recurring_transaction_id): - recurring_transaction = get_object_or_404( + recurring_transaction: RecurringTransaction = get_object_or_404( RecurringTransaction, id=recurring_transaction_id ) today = timezone.localdate(timezone.now()) - relativedelta(days=1) @@ -211,6 +211,9 @@ def recurring_transaction_finish(request, recurring_transaction_id): recurring_transaction.is_paused = True recurring_transaction.save(update_fields=["end_date", "is_paused"]) + # Delete all unpaid transactions associated with this RecurringTransaction + recurring_transaction.delete_unpaid_transactions() + messages.success(request, _("Recurring transaction finished successfully")) return HttpResponse( diff --git a/app/templates/recurring_transactions/fragments/table.html b/app/templates/recurring_transactions/fragments/table.html index 8d735ee..99aedd7 100644 --- a/app/templates/recurring_transactions/fragments/table.html +++ b/app/templates/recurring_transactions/fragments/table.html @@ -80,7 +80,7 @@ hx-swap="innerHTML" data-bypass-on-ctrl="true" data-title="{% translate "Are you sure?" %}" - data-text="{% translate "This will stop the creation of new transactions" %}" + data-text="{% translate "This will stop the creation of new transactions and delete any unpaid transactions after today" %}" data-confirm-text="{% translate "Yes, finish it!" %}" _="install prompt_swal">