From 902ca402ee208d596062204f35c47de8be3aa705 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 27 Sep 2022 18:20:49 +0500 Subject: [PATCH 1/2] Add actions history --- django_object_actions/utils.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/django_object_actions/utils.py b/django_object_actions/utils.py index 4815311..baf2447 100644 --- a/django_object_actions/utils.py +++ b/django_object_actions/utils.py @@ -4,6 +4,7 @@ from django.conf.urls import url from django.contrib import messages from django.contrib.admin.utils import unquote +from django.contrib.messages import get_messages from django.db.models.query import QuerySet from django.http import Http404, HttpResponseRedirect from django.http.response import HttpResponseBase @@ -254,6 +255,17 @@ def get(self, request, tool, **kwargs): raise Http404("Action does not exist") ret = view(request, *self.view_args) + pk = kwargs.get('pk') + if pk: + obj = self.model.objects.get(pk=pk) + model_admin = view.__self__ + messages = list(get_messages(request)) + if messages: + message = messages[0] + message_text = f'{tool}, status: {message.level_tag}, message: {message.message}' + else: + message_text = f'{tool}' + model_admin.log_change(request, obj, message_text) if isinstance(ret, HttpResponseBase): return ret From 11abb0c8d58ff7b20b5ef81482c34cde67e1478b Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 27 Sep 2022 22:20:04 +0500 Subject: [PATCH 2/2] Fix admin messages --- django_object_actions/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_object_actions/utils.py b/django_object_actions/utils.py index baf2447..2314fa9 100644 --- a/django_object_actions/utils.py +++ b/django_object_actions/utils.py @@ -259,7 +259,7 @@ def get(self, request, tool, **kwargs): if pk: obj = self.model.objects.get(pk=pk) model_admin = view.__self__ - messages = list(get_messages(request)) + messages = request._messages._queued_messages if messages: message = messages[0] message_text = f'{tool}, status: {message.level_tag}, message: {message.message}'