From 5c7636d37ef4446c1da4e6e299c3e9967bbead93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BE=9D=E7=91=AA=E8=B2=93?= Date: Sun, 9 Aug 2020 14:07:47 +0800 Subject: [PATCH] Added my own DeleteView in the Mia core application, and applied it in the accounting application. --- accounting/views.py | 16 +++++----------- mia_core/views.py | 13 ++++++++++++- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/accounting/views.py b/accounting/views.py index 2983121..519c87f 100644 --- a/accounting/views.py +++ b/accounting/views.py @@ -34,13 +34,14 @@ from django.utils import timezone from django.utils.decorators import method_decorator from django.utils.translation import gettext as _, gettext_noop from django.views.decorators.http import require_GET, require_POST -from django.views.generic import RedirectView, ListView, DetailView, DeleteView +from django.views.generic import RedirectView, ListView, DetailView from mia_core import stored_post from mia_core.digest_auth import login_required from mia_core.period import Period from mia_core.utils import Pagination, get_multi_lingual_search, UrlBuilder, \ strip_form, new_pk, PaginationException +from mia_core.views import DeleteView from .forms import AccountForm from .models import Record, Transaction, Account from .utils import get_cash_accounts, get_ledger_accounts, \ @@ -946,18 +947,11 @@ def txn_store(request, txn_type, txn=None): @method_decorator(login_required, name="dispatch") class TransactionDeleteView(DeleteView): """The view to delete an accounting transaction.""" + success_message = gettext_noop( + "This transaction was deleted successfully.") def get_object(self, queryset=None): - txn = self.request.resolver_match.kwargs["txn"] - txn.request = self.request - return txn - - def delete(self, request, *args, **kwargs): - response = super(TransactionDeleteView, self)\ - .delete(request, *args, **kwargs) - messages.success(request, gettext_noop( - "This transaction was deleted successfully.")) - return response + return self.request.resolver_match.kwargs["txn"] def get_success_url(self): return self.request.GET.get("r") or reverse("accounting:home") diff --git a/mia_core/views.py b/mia_core/views.py index 0ff6061..ebc2a7b 100644 --- a/mia_core/views.py +++ b/mia_core/views.py @@ -18,11 +18,22 @@ """The views of the Mia core application. """ - +from django.contrib import messages from django.contrib.auth import logout as logout_user +from django.contrib.messages.views import SuccessMessageMixin from django.http import HttpResponse from django.shortcuts import redirect, render from django.views.decorators.http import require_POST, require_GET +from django.views.generic import DeleteView as CoreDeleteView + + +class DeleteView(SuccessMessageMixin, CoreDeleteView): + """The delete form view, with SuccessMessageMixin.""" + + def delete(self, request, *args, **kwargs): + response = super(DeleteView, self).delete(request, *args, **kwargs) + messages.success(request, self.get_success_message({})) + return response @require_GET