Commit 4fd89eaab96e32750396fe2a0a414e7f1a8c5a7c

Authored by Zambom
1 parent a9f9b294

Adding crud post_answer log functions [Issue: #243]

Showing 1 changed file with 83 additions and 5 deletions   Show diff stats
forum/views.py
@@ -470,7 +470,12 @@ class PostAnswerIndex(LoginRequiredMixin, generic.ListView): @@ -470,7 +470,12 @@ class PostAnswerIndex(LoginRequiredMixin, generic.ListView):
470 470
471 return context 471 return context
472 472
473 -class CreatePostAnswerView(LoginRequiredMixin, generic.edit.CreateView): 473 +class CreatePostAnswerView(LoginRequiredMixin, LogMixin, generic.edit.CreateView):
  474 + log_component = "forum"
  475 + log_action = "create"
  476 + log_resource = "post_answer"
  477 + log_context = {}
  478 +
474 login_url = reverse_lazy("core:home") 479 login_url = reverse_lazy("core:home")
475 redirect_field_name = 'next' 480 redirect_field_name = 'next'
476 481
@@ -483,6 +488,25 @@ class CreatePostAnswerView(LoginRequiredMixin, generic.edit.CreateView): @@ -483,6 +488,25 @@ class CreatePostAnswerView(LoginRequiredMixin, generic.edit.CreateView):
483 488
484 self.object.save() 489 self.object.save()
485 490
  491 + self.log_context['post_answer_id'] = self.object.id
  492 + self.log_context['post_id'] = self.object.post.id
  493 + self.log_context['post_user_id'] = self.object.post.user.id
  494 + self.log_context['post_user_name'] = self.object.post.user.name
  495 + self.log_context['forum_id'] = self.object.post.forum.id
  496 + self.log_context['forum_name'] = self.object.post.forum.name
  497 + self.log_context['topic_id'] = self.object.post.forum.topic.id
  498 + self.log_context['topic_name'] = self.object.post.forum.topic.name
  499 + self.log_context['topic_slug'] = self.object.post.forum.topic.slug
  500 + self.log_context['subject_id'] = self.object.post.forum.topic.subject.id
  501 + self.log_context['subject_name'] = self.object.post.forum.topic.subject.name
  502 + self.log_context['subject_slug'] = self.object.post.forum.topic.subject.slug
  503 + self.log_context['course_id'] = self.object.post.forum.topic.subject.course.id
  504 + self.log_context['course_name'] = self.object.post.forum.topic.subject.course.name
  505 + self.log_context['course_slug'] = self.object.post.forum.topic.subject.course.slug
  506 + self.log_context['course_category_id'] = self.object.post.forum.topic.subject.course.category.id
  507 + self.log_context['course_category_name'] = self.object.post.forum.topic.subject.course.category.name
  508 +
  509 + super(CreatePostAnswerView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
486 510
487 return super(CreatePostAnswerView, self).form_valid(form) 511 return super(CreatePostAnswerView, self).form_valid(form)
488 512
@@ -501,7 +525,12 @@ def render_post_answer(request, answer): @@ -501,7 +525,12 @@ def render_post_answer(request, answer):
501 525
502 return JsonResponse({'new_id': last_answer.id, 'html': html}) 526 return JsonResponse({'new_id': last_answer.id, 'html': html})
503 527
504 -class PostAnswerUpdateView(LoginRequiredMixin, generic.UpdateView): 528 +class PostAnswerUpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView):
  529 + log_component = "forum"
  530 + log_action = "update"
  531 + log_resource = "post_answer"
  532 + log_context = {}
  533 +
505 login_url = reverse_lazy("core:home") 534 login_url = reverse_lazy("core:home")
506 redirect_field_name = 'next' 535 redirect_field_name = 'next'
507 536
@@ -512,16 +541,65 @@ class PostAnswerUpdateView(LoginRequiredMixin, generic.UpdateView): @@ -512,16 +541,65 @@ class PostAnswerUpdateView(LoginRequiredMixin, generic.UpdateView):
512 541
513 def get_success_url(self): 542 def get_success_url(self):
514 self.success_url = reverse('course:forum:render_post_answer', args = (self.object.id, )) 543 self.success_url = reverse('course:forum:render_post_answer', args = (self.object.id, ))
  544 +
  545 + self.log_context['post_answer_id'] = self.object.id
  546 + self.log_context['post_id'] = self.object.post.id
  547 + self.log_context['post_user_id'] = self.object.post.user.id
  548 + self.log_context['post_user_name'] = self.object.post.user.name
  549 + self.log_context['forum_id'] = self.object.post.forum.id
  550 + self.log_context['forum_name'] = self.object.post.forum.name
  551 + self.log_context['topic_id'] = self.object.post.forum.topic.id
  552 + self.log_context['topic_name'] = self.object.post.forum.topic.name
  553 + self.log_context['topic_slug'] = self.object.post.forum.topic.slug
  554 + self.log_context['subject_id'] = self.object.post.forum.topic.subject.id
  555 + self.log_context['subject_name'] = self.object.post.forum.topic.subject.name
  556 + self.log_context['subject_slug'] = self.object.post.forum.topic.subject.slug
  557 + self.log_context['course_id'] = self.object.post.forum.topic.subject.course.id
  558 + self.log_context['course_name'] = self.object.post.forum.topic.subject.course.name
  559 + self.log_context['course_slug'] = self.object.post.forum.topic.subject.course.slug
  560 + self.log_context['course_category_id'] = self.object.post.forum.topic.subject.course.category.id
  561 + self.log_context['course_category_name'] = self.object.post.forum.topic.subject.course.category.name
  562 +
  563 + super(PostAnswerUpdateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
515 564
516 return self.success_url 565 return self.success_url
517 566
518 -class PostAnswerDeleteView(LoginRequiredMixin, generic.DeleteView): 567 +class PostAnswerDeleteView(LoginRequiredMixin, LogMixin, generic.DeleteView):
  568 + log_component = "forum"
  569 + log_action = "delete"
  570 + log_resource = "post_answer"
  571 + log_context = {}
  572 +
519 login_url = reverse_lazy("core:home") 573 login_url = reverse_lazy("core:home")
520 redirect_field_name = 'next' 574 redirect_field_name = 'next'
521 575
522 model = PostAnswer 576 model = PostAnswer
523 - pk_url_kwarg = 'pk'  
524 - success_url = reverse_lazy('course:forum:deleted_answer') 577 + pk_url_kwarg = 'pk'
  578 +
  579 + def get_success_url(self):
  580 + self.success_url = reverse_lazy('course:forum:deleted_answer')
  581 +
  582 + self.log_context['post_answer_id'] = self.object.id
  583 + self.log_context['post_id'] = self.object.post.id
  584 + self.log_context['post_user_id'] = self.object.post.user.id
  585 + self.log_context['post_user_name'] = self.object.post.user.name
  586 + self.log_context['forum_id'] = self.object.post.forum.id
  587 + self.log_context['forum_name'] = self.object.post.forum.name
  588 + self.log_context['topic_id'] = self.object.post.forum.topic.id
  589 + self.log_context['topic_name'] = self.object.post.forum.topic.name
  590 + self.log_context['topic_slug'] = self.object.post.forum.topic.slug
  591 + self.log_context['subject_id'] = self.object.post.forum.topic.subject.id
  592 + self.log_context['subject_name'] = self.object.post.forum.topic.subject.name
  593 + self.log_context['subject_slug'] = self.object.post.forum.topic.subject.slug
  594 + self.log_context['course_id'] = self.object.post.forum.topic.subject.course.id
  595 + self.log_context['course_name'] = self.object.post.forum.topic.subject.course.name
  596 + self.log_context['course_slug'] = self.object.post.forum.topic.subject.course.slug
  597 + self.log_context['course_category_id'] = self.object.post.forum.topic.subject.course.category.id
  598 + self.log_context['course_category_name'] = self.object.post.forum.topic.subject.course.category.name
  599 +
  600 + super(PostAnswerDeleteView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
  601 +
  602 + return self.success_url
525 603
526 def answer_deleted(request): 604 def answer_deleted(request):
527 return HttpResponse(_("Post answer deleted successfully.")) 605 return HttpResponse(_("Post answer deleted successfully."))
528 \ No newline at end of file 606 \ No newline at end of file