From 0c6e462c6737d2437e94ae962e437238b11a3427 Mon Sep 17 00:00:00 2001 From: Zambom Date: Thu, 3 Nov 2016 22:25:28 -0300 Subject: [PATCH] Adding topic crud log functions [Issue: #248] --- courses/views.py | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 62 insertions(+), 6 deletions(-) diff --git a/courses/views.py b/courses/views.py index 696f0ae..1a19245 100644 --- a/courses/views.py +++ b/courses/views.py @@ -588,7 +588,11 @@ class UploadMaterialView(LoginRequiredMixin, generic.edit.CreateView): return self.success_url -class TopicsView(LoginRequiredMixin, generic.ListView): +class TopicsView(LoginRequiredMixin, LogMixin, generic.ListView): + log_component = "course" + log_resource = "topic" + log_action = "viewed" + log_context = {} login_url = reverse_lazy("core:home") redirect_field_name = 'next' @@ -602,6 +606,20 @@ class TopicsView(LoginRequiredMixin, generic.ListView): if(not has_object_permission('view_topic', self.request.user, topic)): return self.handle_no_permission() + self.log_context['topic_id'] = topic.id + self.log_context['topic_name'] = topic.name + self.log_context['topic_slug'] = topic.slug + self.log_context['subject_id'] = topic.subject.id + self.log_context['subject_name'] = topic.subject.name + self.log_context['subject_slug'] = topic.subject.slug + self.log_context['course_id'] = topic.subject.course.id + self.log_context['course_name'] = topic.subject.course.name + self.log_context['course_slug'] = topic.subject.course.slug + self.log_context['course_category_id'] = topic.subject.course.category.id + self.log_context['course_category_name'] = topic.subject.course.category.name + + super(TopicsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + return super(TopicsView, self).dispatch(*args, **kwargs) def get_queryset(self): @@ -624,13 +642,15 @@ class TopicsView(LoginRequiredMixin, generic.ListView): context['students_activit'] = students_activit context['materials'] = materials context['form'] = ActivityForm - - return context -class CreateTopicView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.edit.CreateView): +class CreateTopicView(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin, generic.edit.CreateView): + log_component = "course" + log_resource = "topic" + log_action = "create" + log_context = {} allowed_roles = ['professor', 'system_admin'] login_url = reverse_lazy("core:home") @@ -660,10 +680,28 @@ class CreateTopicView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, gener super(CreateTopicView, self).createNotification("Topic "+ self.object.name + " was created", resource_name=self.object.name, resource_link= reverse('course:view_topic',args=[self.object.slug]), actor=self.request.user, users = self.object.subject.course.students.all() ) + + self.log_context['topic_id'] = self.object.id + self.log_context['topic_name'] = self.object.name + self.log_context['topic_slug'] = self.object.slug + self.log_context['subject_id'] = self.object.subject.id + self.log_context['subject_name'] = self.object.subject.name + self.log_context['subject_slug'] = self.object.subject.slug + self.log_context['course_id'] = self.object.subject.course.id + self.log_context['course_name'] = self.object.subject.course.name + self.log_context['course_slug'] = self.object.subject.course.slug + self.log_context['course_category_id'] = self.object.subject.course.category.id + self.log_context['course_category_name'] = self.object.subject.course.category.name + + super(CreateTopicView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) return super(CreateTopicView, self).form_valid(form) -class UpdateTopicView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): +class UpdateTopicView(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.UpdateView): + log_component = "course" + log_resource = "topic" + log_action = "create" + log_context = {} allowed_roles = ['professor','system_admin'] login_url = reverse_lazy("core:home") @@ -693,6 +731,25 @@ class UpdateTopicView(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): context['subjects'] = topic.subject.course.subjects.all() return context + def form_valid(self, form): + self.object = form.save() + + self.log_context['topic_id'] = self.object.id + self.log_context['topic_name'] = self.object.name + self.log_context['topic_slug'] = self.object.slug + self.log_context['subject_id'] = self.object.subject.id + self.log_context['subject_name'] = self.object.subject.name + self.log_context['subject_slug'] = self.object.subject.slug + self.log_context['course_id'] = self.object.subject.course.id + self.log_context['course_name'] = self.object.subject.course.name + self.log_context['course_slug'] = self.object.subject.course.slug + self.log_context['course_category_id'] = self.object.subject.course.category.id + self.log_context['course_category_name'] = self.object.subject.course.category.name + + super(UpdateTopicView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + + return super(UpdateTopicView, self).form_valid(form) + class CreateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin, generic.edit.CreateView): log_component = "course" log_resource = "subject" @@ -855,7 +912,6 @@ def subscribe_subject(request, slug): 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