add add_log_action
This commit is contained in:
@@ -1,8 +1,11 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from collections import deque
|
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.mixins import LoginRequiredMixin
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.views.generic.detail import DetailView
|
from django.views.generic.detail import DetailView
|
||||||
from django.views.generic.edit import CreateView, UpdateView
|
from django.views.generic.edit import CreateView, UpdateView
|
||||||
@@ -75,6 +78,26 @@ def index(request):
|
|||||||
return render(request, "tasks/index.html", context)
|
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):
|
class TaskCreate(LoginRequiredMixin, CreateView):
|
||||||
model = Task
|
model = Task
|
||||||
success_url = reverse_lazy("tasks")
|
success_url = reverse_lazy("tasks")
|
||||||
@@ -83,6 +106,8 @@ class TaskCreate(LoginRequiredMixin, CreateView):
|
|||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
form.instance.created_by = self.request.user
|
form.instance.created_by = self.request.user
|
||||||
|
__add_log_action(self.request, form, True)
|
||||||
|
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|
||||||
@@ -92,6 +117,10 @@ class TaskUpdate(LoginRequiredMixin, UpdateView):
|
|||||||
template_name = "tasks/task_create.html"
|
template_name = "tasks/task_create.html"
|
||||||
form_class = TaskForm
|
form_class = TaskForm
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
__add_log_action(self.request, form, False)
|
||||||
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|
||||||
class TaskDetail(LoginRequiredMixin, DetailView):
|
class TaskDetail(LoginRequiredMixin, DetailView):
|
||||||
model = Task
|
model = Task
|
||||||
|
|||||||
Reference in New Issue
Block a user