add add_log_action

This commit is contained in:
2022-01-19 13:37:06 +00:00
parent ee1a1c4c17
commit a9c26476e3

View File

@@ -1,8 +1,11 @@
import logging
from collections import deque
from django.contrib.admin.models import ADDITION, CHANGE, LogEntry
from django.contrib.admin.utils import construct_change_message
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.shortcuts import render
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView
@@ -75,6 +78,26 @@ def index(request):
return render(request, "tasks/index.html", context)
def __add_log_action(request, form, add=True):
obj = form.save()
content_type = ContentType.objects.get(app_label="tasks", model="task")
change_message = construct_change_message(form, None, add)
if add:
action_flag = ADDITION
else:
action_flag = CHANGE
LogEntry.objects.log_action(
user_id=request.user.pk,
content_type_id=content_type.pk,
object_id=obj.pk,
object_repr=str(obj),
action_flag=action_flag,
change_message=change_message,
)
class TaskCreate(LoginRequiredMixin, CreateView):
model = Task
success_url = reverse_lazy("tasks")
@@ -83,6 +106,8 @@ class TaskCreate(LoginRequiredMixin, CreateView):
def form_valid(self, form):
form.instance.created_by = self.request.user
__add_log_action(self.request, form, True)
return super().form_valid(form)
@@ -92,6 +117,10 @@ class TaskUpdate(LoginRequiredMixin, UpdateView):
template_name = "tasks/task_create.html"
form_class = TaskForm
def form_valid(self, form):
__add_log_action(self.request, form, False)
return super().form_valid(form)
class TaskDetail(LoginRequiredMixin, DetailView):
model = Task