From 3f4869fc868922e49ab5906f65e999aad859aa27 Mon Sep 17 00:00:00 2001 From: Zambom Date: Thu, 3 Nov 2016 22:02:53 -0300 Subject: [PATCH] Adding other crud functions log [Issue: #247] --- core/mixins.py | 3 --- courses/views.py | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 62 insertions(+), 15 deletions(-) diff --git a/core/mixins.py b/core/mixins.py index 6c82977..57214e9 100644 --- a/core/mixins.py +++ b/core/mixins.py @@ -34,9 +34,6 @@ class LogMixin(object): else: action_resource = action_resource[0] - print(context) - print(json.dumps(context)) - log = Log() log.user = actor log.context = json.dumps(context) diff --git a/courses/views.py b/courses/views.py index bddcbf2..696f0ae 100644 --- a/courses/views.py +++ b/courses/views.py @@ -284,21 +284,12 @@ class DeleteCourseView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.Delet redirect_field_name = 'next' model = Course template_name = 'course/delete.html' - success_url = reverse_lazy('course:manage') def dispatch(self, *args, **kwargs): course = get_object_or_404(Course, slug = self.kwargs.get('slug')) if(not has_object_permission('delete_course', self.request.user, course)): return self.handle_no_permission() - self.log_context['course_id'] = course.id - self.log_context['course_name'] = course.name - self.log_context['course_slug'] = course.slug - self.log_context['course_category_id'] = course.category.id - self.log_context['course_category_name'] = course.category.name - - super(DeleteCourseView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) - return super(DeleteCourseView, self).dispatch(*args, **kwargs) def get_context_data(self, **kwargs): @@ -314,6 +305,17 @@ class DeleteCourseView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.Delet return context + def get_success_url(self): + self.log_context['course_id'] = self.object.id + self.log_context['course_name'] = self.object.name + self.log_context['course_slug'] = self.object.slug + self.log_context['course_category_id'] = self.object.category.id + self.log_context['course_category_name'] = self.object.category.name + + super(DeleteCourseView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + + return reverse_lazy('course:manage') + class CourseView(LogMixin, NotificationMixin, generic.DetailView): log_component = "courses" @@ -741,7 +743,11 @@ class CreateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, Notification return super(CreateSubjectView, self).form_valid(form) -class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): +class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.UpdateView): + log_component = "course" + log_resource = "subject" + log_action = "update" + log_context = {} allowed_roles = ['professor', 'system_admin'] login_url = reverse_lazy("core:home") @@ -755,6 +761,22 @@ class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): return self.handle_no_permission() return super(UpdateSubjectView, self).dispatch(*args, **kwargs) + def form_valid(self, form): + self.object = form.save() + + self.log_context['subject_id'] = self.object.id + self.log_context['subject_name'] = self.object.name + self.log_context['subject_slug'] = self.object.slug + self.log_context['course_id'] = self.object.course.id + self.log_context['course_name'] = self.object.course.name + self.log_context['course_slug'] = self.object.course.slug + self.log_context['course_category_id'] = self.object.course.category.id + self.log_context['course_category_name'] = self.object.course.category.name + + super(UpdateSubjectView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + + return super(UpdateSubjectView, self).form_valid(form) + def get_object(self, queryset=None): context = get_object_or_404(Subject, slug = self.kwargs.get('slug')) return context @@ -771,7 +793,11 @@ class UpdateSubjectView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): context['subjects'] = self.object.course.subjects.all() return context -class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): +class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.DeleteView): + log_component = "course" + log_resource = "subject" + log_action = "delete" + log_context = {} allowed_roles = ['professor', 'system_admin'] login_url = reverse_lazy("core:home") @@ -785,7 +811,6 @@ class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): return self.handle_no_permission() return super(DeleteSubjectView, self).dispatch(*args, **kwargs) - def get_context_data(self, **kwargs): context = super(DeleteSubjectView, self).get_context_data(**kwargs) context['course'] = self.object.course @@ -796,9 +821,21 @@ class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): return context def get_success_url(self): + self.log_context['subject_id'] = self.object.id + self.log_context['subject_name'] = self.object.name + self.log_context['subject_slug'] = self.object.slug + self.log_context['course_id'] = self.object.course.id + self.log_context['course_name'] = self.object.course.name + self.log_context['course_slug'] = self.object.course.slug + self.log_context['course_category_id'] = self.object.course.category.id + self.log_context['course_category_name'] = self.object.course.category.name + + super(DeleteSubjectView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + return reverse_lazy('course:view', kwargs={'slug' : self.object.course.slug}) @login_required +@log_decorator("course", "subscribe", "subject") def subscribe_subject(request, slug): subject = get_object_or_404(Subject, slug = slug) @@ -806,6 +843,19 @@ def subscribe_subject(request, slug): subject.students.add(request.user) if request.user in subject.students.all(): + log_context = {} + log_context['subject_id'] = subject.id + log_context['subject_name'] = subject.name + log_context['subject_slug'] = subject.slug + log_context['course_id'] = subject.course.id + log_context['course_name'] = subject.course.name + log_context['course_slug'] = subject.course.slug + log_context['course_category_id'] = subject.course.category.id + log_context['course_category_name'] = subject.course.category.name + + request.log_context = log_context + + return JsonResponse({"status": "ok", "message": _("Successfully subscribed to the subject!")}) else: return JsonResponse({"status": "erro", "message": _("An error has occured. Could not subscribe to this subject, try again later")}) -- libgit2 0.21.2