diff --git a/courses/views.py b/courses/views.py index bfcac3d..7a1e4ee 100644 --- a/courses/views.py +++ b/courses/views.py @@ -586,7 +586,12 @@ class UploadMaterialView(LoginRequiredMixin, generic.edit.CreateView): return self.success_url -class TopicsView(LoginRequiredMixin, generic.ListView): +class TopicsView(LoginRequiredMixin, LogMixin, generic.ListView): + + log_component = "subject" + log_resource = "topic" + log_action = "viewed" + log_context = {} login_url = reverse_lazy("core:home") redirect_field_name = 'next' @@ -623,10 +628,24 @@ class TopicsView(LoginRequiredMixin, generic.ListView): context['materials'] = materials context['form'] = ActivityForm + 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['topic_id'] = topic.id + self.log_context['topic_name'] = topic.name + self.log_context['topic_slug'] = topic.slug + + super(TopicsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + + return context -class CreateTopicView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.edit.CreateView): +class CreateTopicView(LoginRequiredMixin, LogMixin, HasRoleMixin, NotificationMixin, generic.edit.CreateView): + log_component = "subject" + log_resource = "topic" + log_action = "created" + log_context = {} allowed_roles = ['professor', 'system_admin'] login_url = reverse_lazy("core:home") @@ -643,6 +662,8 @@ class CreateTopicView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, gener context['course'] = subject.course context['subject'] = subject context['subjects'] = subject.course.subjects.all() + + return context def form_valid(self, form): @@ -656,7 +677,16 @@ 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['subject_id'] = subject.id + self.log_context['subject_name'] = subject.name + self.log_context['subject_slug'] = subject.slug + self.log_context['topic_id'] = self.object.id + + 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): -- libgit2 0.21.2