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 470  
471 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 479 login_url = reverse_lazy("core:home")
475 480 redirect_field_name = 'next'
476 481  
... ... @@ -483,6 +488,25 @@ class CreatePostAnswerView(LoginRequiredMixin, generic.edit.CreateView):
483 488  
484 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 511 return super(CreatePostAnswerView, self).form_valid(form)
488 512  
... ... @@ -501,7 +525,12 @@ def render_post_answer(request, answer):
501 525  
502 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 534 login_url = reverse_lazy("core:home")
506 535 redirect_field_name = 'next'
507 536  
... ... @@ -512,16 +541,65 @@ class PostAnswerUpdateView(LoginRequiredMixin, generic.UpdateView):
512 541  
513 542 def get_success_url(self):
514 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 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 573 login_url = reverse_lazy("core:home")
520 574 redirect_field_name = 'next'
521 575  
522 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 604 def answer_deleted(request):
527 605 return HttpResponse(_("Post answer deleted successfully."))
528 606 \ No newline at end of file
... ...