add add_log_action
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user