Commit 3f4869fc868922e49ab5906f65e999aad859aa27

Authored by Zambom
1 parent e4ae9d4b

Adding other crud functions log [Issue: #247]

Showing 2 changed files with 62 additions and 15 deletions   Show diff stats
core/mixins.py
@@ -34,9 +34,6 @@ class LogMixin(object): @@ -34,9 +34,6 @@ class LogMixin(object):
34 else: 34 else:
35 action_resource = action_resource[0] 35 action_resource = action_resource[0]
36 36
37 - print(context)  
38 - print(json.dumps(context))  
39 -  
40 log = Log() 37 log = Log()
41 log.user = actor 38 log.user = actor
42 log.context = json.dumps(context) 39 log.context = json.dumps(context)
courses/views.py
@@ -284,21 +284,12 @@ class DeleteCourseView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.Delet @@ -284,21 +284,12 @@ class DeleteCourseView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.Delet
284 redirect_field_name = 'next' 284 redirect_field_name = 'next'
285 model = Course 285 model = Course
286 template_name = 'course/delete.html' 286 template_name = 'course/delete.html'
287 - success_url = reverse_lazy('course:manage')  
288 287
289 def dispatch(self, *args, **kwargs): 288 def dispatch(self, *args, **kwargs):
290 course = get_object_or_404(Course, slug = self.kwargs.get('slug')) 289 course = get_object_or_404(Course, slug = self.kwargs.get('slug'))
291 if(not has_object_permission('delete_course', self.request.user, course)): 290 if(not has_object_permission('delete_course', self.request.user, course)):
292 return self.handle_no_permission() 291 return self.handle_no_permission()
293 292
294 - self.log_context['course_id'] = course.id  
295 - self.log_context['course_name'] = course.name  
296 - self.log_context['course_slug'] = course.slug  
297 - self.log_context['course_category_id'] = course.category.id  
298 - self.log_context['course_category_name'] = course.category.name  
299 -  
300 - super(DeleteCourseView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)  
301 -  
302 return super(DeleteCourseView, self).dispatch(*args, **kwargs) 293 return super(DeleteCourseView, self).dispatch(*args, **kwargs)
303 294
304 def get_context_data(self, **kwargs): 295 def get_context_data(self, **kwargs):
@@ -314,6 +305,17 @@ class DeleteCourseView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.Delet @@ -314,6 +305,17 @@ class DeleteCourseView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.Delet
314 305
315 return context 306 return context
316 307
  308 + def get_success_url(self):
  309 + self.log_context['course_id'] = self.object.id
  310 + self.log_context['course_name'] = self.object.name
  311 + self.log_context['course_slug'] = self.object.slug
  312 + self.log_context['course_category_id'] = self.object.category.id
  313 + self.log_context['course_category_name'] = self.object.category.name
  314 +
  315 + super(DeleteCourseView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
  316 +
  317 + return reverse_lazy('course:manage')
  318 +
317 319
318 class CourseView(LogMixin, NotificationMixin, generic.DetailView): 320 class CourseView(LogMixin, NotificationMixin, generic.DetailView):
319 log_component = "courses" 321 log_component = "courses"
@@ -741,7 +743,11 @@ class CreateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, Notification @@ -741,7 +743,11 @@ class CreateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, Notification
741 return super(CreateSubjectView, self).form_valid(form) 743 return super(CreateSubjectView, self).form_valid(form)
742 744
743 745
744 -class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): 746 +class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.UpdateView):
  747 + log_component = "course"
  748 + log_resource = "subject"
  749 + log_action = "update"
  750 + log_context = {}
745 751
746 allowed_roles = ['professor', 'system_admin'] 752 allowed_roles = ['professor', 'system_admin']
747 login_url = reverse_lazy("core:home") 753 login_url = reverse_lazy("core:home")
@@ -755,6 +761,22 @@ class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -755,6 +761,22 @@ class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
755 return self.handle_no_permission() 761 return self.handle_no_permission()
756 return super(UpdateSubjectView, self).dispatch(*args, **kwargs) 762 return super(UpdateSubjectView, self).dispatch(*args, **kwargs)
757 763
  764 + def form_valid(self, form):
  765 + self.object = form.save()
  766 +
  767 + self.log_context['subject_id'] = self.object.id
  768 + self.log_context['subject_name'] = self.object.name
  769 + self.log_context['subject_slug'] = self.object.slug
  770 + self.log_context['course_id'] = self.object.course.id
  771 + self.log_context['course_name'] = self.object.course.name
  772 + self.log_context['course_slug'] = self.object.course.slug
  773 + self.log_context['course_category_id'] = self.object.course.category.id
  774 + self.log_context['course_category_name'] = self.object.course.category.name
  775 +
  776 + super(UpdateSubjectView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
  777 +
  778 + return super(UpdateSubjectView, self).form_valid(form)
  779 +
758 def get_object(self, queryset=None): 780 def get_object(self, queryset=None):
759 context = get_object_or_404(Subject, slug = self.kwargs.get('slug')) 781 context = get_object_or_404(Subject, slug = self.kwargs.get('slug'))
760 return context 782 return context
@@ -771,7 +793,11 @@ class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -771,7 +793,11 @@ class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
771 context['subjects'] = self.object.course.subjects.all() 793 context['subjects'] = self.object.course.subjects.all()
772 return context 794 return context
773 795
774 -class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): 796 +class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.DeleteView):
  797 + log_component = "course"
  798 + log_resource = "subject"
  799 + log_action = "delete"
  800 + log_context = {}
775 801
776 allowed_roles = ['professor', 'system_admin'] 802 allowed_roles = ['professor', 'system_admin']
777 login_url = reverse_lazy("core:home") 803 login_url = reverse_lazy("core:home")
@@ -785,7 +811,6 @@ class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): @@ -785,7 +811,6 @@ class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
785 return self.handle_no_permission() 811 return self.handle_no_permission()
786 return super(DeleteSubjectView, self).dispatch(*args, **kwargs) 812 return super(DeleteSubjectView, self).dispatch(*args, **kwargs)
787 813
788 -  
789 def get_context_data(self, **kwargs): 814 def get_context_data(self, **kwargs):
790 context = super(DeleteSubjectView, self).get_context_data(**kwargs) 815 context = super(DeleteSubjectView, self).get_context_data(**kwargs)
791 context['course'] = self.object.course 816 context['course'] = self.object.course
@@ -796,9 +821,21 @@ class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): @@ -796,9 +821,21 @@ class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
796 return context 821 return context
797 822
798 def get_success_url(self): 823 def get_success_url(self):
  824 + self.log_context['subject_id'] = self.object.id
  825 + self.log_context['subject_name'] = self.object.name
  826 + self.log_context['subject_slug'] = self.object.slug
  827 + self.log_context['course_id'] = self.object.course.id
  828 + self.log_context['course_name'] = self.object.course.name
  829 + self.log_context['course_slug'] = self.object.course.slug
  830 + self.log_context['course_category_id'] = self.object.course.category.id
  831 + self.log_context['course_category_name'] = self.object.course.category.name
  832 +
  833 + super(DeleteSubjectView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
  834 +
799 return reverse_lazy('course:view', kwargs={'slug' : self.object.course.slug}) 835 return reverse_lazy('course:view', kwargs={'slug' : self.object.course.slug})
800 836
801 @login_required 837 @login_required
  838 +@log_decorator("course", "subscribe", "subject")
802 def subscribe_subject(request, slug): 839 def subscribe_subject(request, slug):
803 subject = get_object_or_404(Subject, slug = slug) 840 subject = get_object_or_404(Subject, slug = slug)
804 841
@@ -806,6 +843,19 @@ def subscribe_subject(request, slug): @@ -806,6 +843,19 @@ def subscribe_subject(request, slug):
806 subject.students.add(request.user) 843 subject.students.add(request.user)
807 844
808 if request.user in subject.students.all(): 845 if request.user in subject.students.all():
  846 + log_context = {}
  847 + log_context['subject_id'] = subject.id
  848 + log_context['subject_name'] = subject.name
  849 + log_context['subject_slug'] = subject.slug
  850 + log_context['course_id'] = subject.course.id
  851 + log_context['course_name'] = subject.course.name
  852 + log_context['course_slug'] = subject.course.slug
  853 + log_context['course_category_id'] = subject.course.category.id
  854 + log_context['course_category_name'] = subject.course.category.name
  855 +
  856 + request.log_context = log_context
  857 +
  858 +
809 return JsonResponse({"status": "ok", "message": _("Successfully subscribed to the subject!")}) 859 return JsonResponse({"status": "ok", "message": _("Successfully subscribed to the subject!")})
810 else: 860 else:
811 return JsonResponse({"status": "erro", "message": _("An error has occured. Could not subscribe to this subject, try again later")}) 861 return JsonResponse({"status": "erro", "message": _("An error has occured. Could not subscribe to this subject, try again later")})