]> git.parisson.com Git - teleforma.git/commitdiff
working evaluation forms
authoryomguy <yomguy@parisson.com>
Wed, 19 Dec 2012 23:05:03 +0000 (00:05 +0100)
committeryomguy <yomguy@parisson.com>
Wed, 19 Dec 2012 23:05:03 +0000 (00:05 +0100)
teleforma/forms.py
teleforma/templates/teleforma/evaluation_form.html [new file with mode: 0644]
teleforma/templates/teleforma/inc/evaluation_form.html [new file with mode: 0644]
teleforma/urls.py
teleforma/views/pro.py

index 64ce45621cf9213a0ef845119c9876506bfadee2..e331c2df8a60af5b3f1f45bc1abd65ed64fb1ba0 100644 (file)
@@ -30,5 +30,4 @@ class AnswerForm(ModelForm):
         hidden_fields = ['status']
 
 
-# AnswerFormset = inlineformset_factory(QuestionForm, Answer, extra=1)
 
diff --git a/teleforma/templates/teleforma/evaluation_form.html b/teleforma/templates/teleforma/evaluation_form.html
new file mode 100644 (file)
index 0000000..f13c761
--- /dev/null
@@ -0,0 +1,19 @@
+{% extends "teleforma/seminar_detail.html" %}
+{% load teleforma_tags %}
+{% load forms_builder_tags %}
+{% load i18n %}
+
+{% block course_content %}
+
+<div class="course_content">
+  <div class="course_subtitle">
+   <h3><img src="{{ STATIC_URL }}telemeta/images/item_title.png" width="10px" alt="" /> {% trans "Step 6 : evaluate the seminar" %}</h3>
+  </div>
+  <div class="form">
+    {% render_built_form form %}
+  </div>  
+</div>
+
+
+{% endblock course_content %}
+
diff --git a/teleforma/templates/teleforma/inc/evaluation_form.html b/teleforma/templates/teleforma/inc/evaluation_form.html
new file mode 100644 (file)
index 0000000..76f54bc
--- /dev/null
@@ -0,0 +1,19 @@
+{% load teleforma_tags %}
+{% load forms_builder_tags %}
+{% load i18n %}
+
+
+<div class="course_content">
+<div class="course_subtitle">
+    <h3><img src="{{ STATIC_URL }}telemeta/images/item_title.png" width="10px" alt="" /> {{ title }}</h3>
+</div>
+
+<table class="listing" width="100%">
+    <tbody>
+        <tr>
+        <td class="border-top"><a href="{% url teleforma-seminar-form seminar.id %}" title="{% trans "Form" %}"><img src="{{ STATIC_URL }}/telemeta/images/playlist.png" style="vertical-align:middle" alt="" /> {{ form.title }}</a></td>
+        </tr>
+    </tbody>
+</table>
+
+</div>
\ No newline at end of file
index eb6e1c85db32f302a5b1c65454cd65a7213f3cbc..8c001f8164fb0565bc7d9b56ffeb438765a39709 100644 (file)
@@ -101,7 +101,7 @@ urlpatterns = patterns('',
 
     # Evaluations
     url(r'^forms/', include('forms_builder.forms.urls')),
-    url(r'^desk/seminars/(?P<pk>.*)/form/$', EvaluationView.as_view(), name="teleforma-seminar-form"),
+    url(r'^desk/seminars/(?P<pk>.*)/form/$', evaluation_form_detail, name="teleforma-seminar-form"),
 
     # Postman
     url(r'^messages/', include('postman.urls')),
index bf60d9959499591fdf29b0f90e12f3b5f0813266..e4a128043efcbec4068d9e6cc7e089f47f98af7f 100644 (file)
 from teleforma.views.core import *
 from django.utils.translation import ugettext_lazy as _
 
+from forms_builder.forms.forms import FormForForm
+from forms_builder.forms.models import Form
+from forms_builder.forms.signals import form_invalid, form_valid
+
+
 def get_seminars(user):
     seminars = []
 
@@ -341,20 +346,52 @@ class AjaxableResponseMixin(object):
             return super(AjaxableResponseMixin, self).form_valid(form)
 
 
+# class EvaluationView(DetailView):
 
-class EvaluationView(DetailView):
+#     model = Seminar
+#     template_name='teleforma/evaluation_form.html'
 
-    model = Seminar
-    template_name='teleforma/evaluation_form.html'
+#     def get_context_data(self, **kwargs):
+#         context = super(EvaluationView, self).get_context_data(**kwargs)
+#         context['all_seminars'] = get_seminars(self.request.user)
+#         context['total_progress'] = total_progress(self.request.user)
+#         context['form'] = self.get_object().form
+#         context['seminar_progress'] = seminar_progress(self.request.user, self.get_object())
+#         return context
+
+
+def evaluation_form_detail(request, pk, template='teleforma/evaluation_form.html'):
+    """
+    Display a built form and handle submission.
+    """
+    context = {}
+    seminar = Seminar.objects.get(pk=pk)
+    published = Form.objects.published(for_user=request.user)
+    form = seminar.form
+    if form.login_required and not request.user.is_authenticated():
+        return redirect("%s?%s=%s" % (settings.LOGIN_URL, REDIRECT_FIELD_NAME,
+                        urlquote(request.get_full_path())))
+    request_context = RequestContext(request)
+    args = (form, request_context, request.POST or None, request.FILES or None)
+    form_for_form = FormForForm(*args)
+    if request.method == "POST":
+        if not form_for_form.is_valid():
+            form_invalid.send(sender=request, form=form_for_form)
+        else:
+            entry = form_for_form.save()
+            form_valid.send(sender=request, form=form_for_form, entry=entry)
+        return redirect('teleforma-seminar-detail', seminar.id)
+
+    context['seminar'] = seminar
+    context['all_seminars'] = get_seminars(request.user)
+    context['total_progress'] = total_progress(request.user)
+    context['form'] = form
+    context['seminar_progress'] = seminar_progress(request.user, seminar)
+    
+    return render_to_response(template, context, request_context)
 
-    def get_context_data(self, **kwargs):
-        context = super(EvaluationView, self).get_context_data(**kwargs)
-        context['all_seminars'] = get_seminars(self.request.user)
-        context['total_progress'] = total_progress(self.request.user)
-        context['form'] = self.get_object().form
-        context['seminar_progress'] = seminar_progress(self.request.user, self.get_object())
-        return context
 
+# Testimonials
 
 def fetch_resources(uri, rel):
     """