diff --git a/poll/views.py b/poll/views.py index 0d1b6fb..ef439ec 100644 --- a/poll/views.py +++ b/poll/views.py @@ -290,6 +290,12 @@ class AnswerStudentPoll(LoginRequiredMixin, LogMixin, generic.CreateView): context_object_name = 'answer' template_name = 'poll/answer_student.html' + def dispatch(self, *args, **kwargs): + if self.request.method == 'GET': + self.request.session['time_spent'] = str(datetime.datetime.now()) + + return super(AnswerStudentPoll, self).dispatch(*args, **kwargs) + def form_valid(self, form): poll = get_object_or_404(Poll, slug = self.kwargs.get('slug')) answers = AnswersStudent( @@ -317,6 +323,21 @@ class AnswerStudentPoll(LoginRequiredMixin, LogMixin, generic.CreateView): self.log_context['course_category_id'] = poll.topic.subject.course.category.id self.log_context['course_category_name'] = poll.topic.subject.course.category.name + date_time_click = datetime.datetime.strptime(self.request.session.get('time_spent'), "%Y-%m-%d %H:%M:%S.%f") + _now = datetime.datetime.now() + + time_spent = _now - date_time_click + + secs = time_spent.total_seconds() + hours = int(secs / 3600) + minutes = int(secs / 60) % 60 + secs = secs % 60 + + self.log_context['time_spent'] = {} + self.log_context['time_spent']['hours'] = hours + self.log_context['time_spent']['minutes'] = minutes + self.log_context['time_spent']['seconds'] = secs + super(AnswerStudentPoll, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) return self.render_to_response(self.get_context_data(form = form), status = 200) -- libgit2 0.21.2