Commit f91fd3cadab4d380210917a224ca06fcc2311d06

Authored by Matheus Lins
2 parents 79a9c769 c919fcb7

Merge branch 'dev' of https://github.com/amadeusproject/amadeuslms into dev

courses/templates/topic/index.html
... ... @@ -148,23 +148,4 @@
148 148  
149 149 </div>
150 150 </div>
151   -
152   -<button id="poll_teste">poll</button>
153   -<script type="text/javascript">
154   - $("#poll_teste").click(function(){
155   - if($('#poll').length){
156   - $('#poll').modal('show');
157   - } else {
158   - var url = "{% url 'course:poll:create_poll' topic.slug%}";
159   - // alert(url);
160   - $.get(url, function(data){
161   - $("#poll_t").append(data);
162   - $('#poll').modal('show');
163   - });
164   - }
165   - });
166   -</script>
167   -
168   -<div class="row" id="poll_t">
169   -</div>
170 151 {% endblock %}
... ...
poll/templates/poll/answer_student.html 0 → 100644
... ... @@ -0,0 +1,34 @@
  1 +{% extends "poll/create.html" %}
  2 +
  3 +{% load i18n static dict_access %}
  4 +
  5 +{% block title_poll %}
  6 +<!-- Put your title here!!! -->
  7 +<h4 class="modal-title" id="myModalLabel">{{poll.name}}</h4>
  8 +{% endblock title_poll %}
  9 +
  10 +{% block content_poll %}
  11 +<form id="answer_form" class="" action="" method="post">
  12 + {% csrf_token %}
  13 + {% for key in keys %}
  14 + <div class="row form-group {% if form.has_error %} has-error {% endif %}">
  15 + <div class="col-md-10 col-sm-10 col-xs-10 col-lg-10">
  16 + <div class="checkbox">
  17 + <label>
  18 + <input type="checkbox" name="{{key}}"><span class="checkbox-material"><span class="check"></span></span> {{ answers|value:key }}
  19 + </label>
  20 + </div>
  21 + </div>
  22 + </div>
  23 + {% endfor %}
  24 +</form>
  25 +{% endblock content_poll %}
  26 +{% block button_save %}
  27 +<button type="submite" id="button" form="answer_form" class="btn btn-primary btn-raised">{% trans "Answer" %}</button>
  28 +<script>
  29 + $("#answer_form").submit(function(event) {
  30 + Submite.post("{% url 'course:poll:answer_student_poll' poll.slug %}",$(this).serialize());
  31 + event.preventDefault();
  32 + });
  33 +</script>
  34 +{% endblock button_save %}
... ...
poll/templates/poll/view.html
... ... @@ -30,6 +30,6 @@
30 30 {% block button_save %}
31 31 <!-- Put curtom buttons here!!! -->
32 32 {% if not status %}
33   -<button type="button" class="btn btn-primary btn-raised">{% trans "Answer" %}</button>
  33 +<button type="button" onclick="javascript:get('{% url 'course:poll:answer_student_poll' poll.slug%}','#poll','#modal_poll');$('div.modal-backdrop.fade.in').remove();" class="btn btn-primary btn-raised">{% trans "Answer" %}</button>
34 34 {% endif %}
35 35 {% endblock button_save %}
... ...
poll/urls.py
... ... @@ -8,4 +8,5 @@ urlpatterns = [
8 8 url(r'^update/(?P<slug>[\w\-_]+)/$', views.UpdatePoll.as_view(), name='update_poll'), # poll slug
9 9 url(r'^delete/(?P<slug>[\w\-_]+)/$', views.DeletePoll.as_view(), name='delete_poll'), # poll
10 10 url(r'^answer/$', views.AnswerPoll.as_view(), name='answer_poll'), # poll
  11 + url(r'^answer-poll/(?P<slug>[\w\-_]+)/$', views.AnswerStudentPoll.as_view(), name='answer_student_poll'), # poll slug
11 12 ]
... ...
poll/views.py
... ... @@ -33,7 +33,12 @@ class ViewPoll(LoginRequiredMixin,generic.DetailView):
33 33 context['course'] = poll.topic.subject.course
34 34 context['subject'] = poll.topic.subject
35 35 context['subjects'] = poll.topic.subject.course.subjects.all()
36   - context['status'] = AnswersStudent.objects.get(poll=poll, student=self.request.user).status
  36 + answered = AnswersStudent.objects.filter(poll = poll, student=self.request.user)
  37 + print (answered)
  38 + if answered.count()<1:
  39 + context['status'] = False
  40 + else:
  41 + context['status'] = answered[0].status
37 42 return context
38 43  
39 44  
... ... @@ -183,3 +188,46 @@ class DeletePoll(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
183 188  
184 189 class AnswerPoll(generic.TemplateView):
185 190 template_name = 'poll/answer.html'
  191 +
  192 +class AnswerStudentPoll(LoginRequiredMixin,generic.CreateView):
  193 +
  194 + model = AnswersStudent
  195 + fields = ['status']
  196 + context_object_name = 'answer'
  197 + template_name = 'poll/answer_student.html'
  198 +
  199 + def form_valid(self, form):
  200 + poll = get_object_or_404(Poll, slug = self.kwargs.get('slug'))
  201 + answers = AnswersStudent(
  202 + status = True,
  203 + poll = poll,
  204 + student = self.request.user,
  205 + )
  206 + answers.save()
  207 +
  208 + for key in self.request.POST:
  209 + if(key != 'csrfmiddlewaretoken'):
  210 + answers.answer.add(poll.answers.all().filter(order=key)[0])
  211 +
  212 + return self.render_to_response(self.get_context_data(form = form), status = 200)
  213 +
  214 + def get_context_data(self, **kwargs):
  215 + context = super(AnswerStudentPoll, self).get_context_data(**kwargs)
  216 + print (self.kwargs.get('slug'))
  217 + poll = get_object_or_404(Poll, slug = self.kwargs.get('slug'))
  218 + context['poll'] = poll
  219 + context['topic'] = poll.topic
  220 + context['course'] = poll.topic.subject.course
  221 + context['subject'] = poll.topic.subject
  222 + context['subjects'] = poll.topic.subject.course.subjects.all()
  223 +
  224 + print (self.request.method)
  225 + answers = {}
  226 + for answer in poll.answers.all():
  227 + answers[answer.order] = answer.answer
  228 +
  229 + keys = sorted(answers)
  230 + context['answers'] = answers
  231 + context['keys'] = keys
  232 +
  233 + return context
... ...