diff --git a/courses/templates/topic/index.html b/courses/templates/topic/index.html index ef96e5e..293412c 100644 --- a/courses/templates/topic/index.html +++ b/courses/templates/topic/index.html @@ -148,23 +148,4 @@ - - - - -
-
{% endblock %} diff --git a/poll/templates/poll/answer_student.html b/poll/templates/poll/answer_student.html new file mode 100644 index 0000000..5a66f3c --- /dev/null +++ b/poll/templates/poll/answer_student.html @@ -0,0 +1,34 @@ +{% extends "poll/create.html" %} + +{% load i18n static dict_access %} + +{% block title_poll %} + + +{% endblock title_poll %} + +{% block content_poll %} +
+ {% csrf_token %} + {% for key in keys %} +
+
+
+ +
+
+
+ {% endfor %} +
+{% endblock content_poll %} +{% block button_save %} + + +{% endblock button_save %} diff --git a/poll/templates/poll/view.html b/poll/templates/poll/view.html index 5d00356..72d4c5c 100644 --- a/poll/templates/poll/view.html +++ b/poll/templates/poll/view.html @@ -30,6 +30,6 @@ {% block button_save %} {% if not status %} - + {% endif %} {% endblock button_save %} diff --git a/poll/urls.py b/poll/urls.py index 0fa9db6..b5ec9e4 100644 --- a/poll/urls.py +++ b/poll/urls.py @@ -8,4 +8,5 @@ urlpatterns = [ url(r'^update/(?P[\w\-_]+)/$', views.UpdatePoll.as_view(), name='update_poll'), # poll slug url(r'^delete/(?P[\w\-_]+)/$', views.DeletePoll.as_view(), name='delete_poll'), # poll url(r'^answer/$', views.AnswerPoll.as_view(), name='answer_poll'), # poll + url(r'^answer-poll/(?P[\w\-_]+)/$', views.AnswerStudentPoll.as_view(), name='answer_student_poll'), # poll slug ] diff --git a/poll/views.py b/poll/views.py index 633bf82..cd3c574 100644 --- a/poll/views.py +++ b/poll/views.py @@ -33,7 +33,12 @@ class ViewPoll(LoginRequiredMixin,generic.DetailView): context['course'] = poll.topic.subject.course context['subject'] = poll.topic.subject context['subjects'] = poll.topic.subject.course.subjects.all() - context['status'] = AnswersStudent.objects.get(poll=poll, student=self.request.user).status + answered = AnswersStudent.objects.filter(poll = poll, student=self.request.user) + print (answered) + if answered.count()<1: + context['status'] = False + else: + context['status'] = answered[0].status return context @@ -183,3 +188,46 @@ class DeletePoll(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): class AnswerPoll(generic.TemplateView): template_name = 'poll/answer.html' + +class AnswerStudentPoll(LoginRequiredMixin,generic.CreateView): + + model = AnswersStudent + fields = ['status'] + context_object_name = 'answer' + template_name = 'poll/answer_student.html' + + def form_valid(self, form): + poll = get_object_or_404(Poll, slug = self.kwargs.get('slug')) + answers = AnswersStudent( + status = True, + poll = poll, + student = self.request.user, + ) + answers.save() + + for key in self.request.POST: + if(key != 'csrfmiddlewaretoken'): + answers.answer.add(poll.answers.all().filter(order=key)[0]) + + return self.render_to_response(self.get_context_data(form = form), status = 200) + + def get_context_data(self, **kwargs): + context = super(AnswerStudentPoll, self).get_context_data(**kwargs) + print (self.kwargs.get('slug')) + poll = get_object_or_404(Poll, slug = self.kwargs.get('slug')) + context['poll'] = poll + context['topic'] = poll.topic + context['course'] = poll.topic.subject.course + context['subject'] = poll.topic.subject + context['subjects'] = poll.topic.subject.course.subjects.all() + + print (self.request.method) + answers = {} + for answer in poll.answers.all(): + answers[answer.order] = answer.answer + + keys = sorted(answers) + context['answers'] = answers + context['keys'] = keys + + return context -- libgit2 0.21.2