from django.forms import ModelForm
from teleforma.models import *
+from django.forms.models import inlineformset_factory
class ConferenceForm(ModelForm):
model = Conference
-class AnswerForm(ModelForm):
+class QuestionForm(ModelForm):
class Meta:
- model = Answer
+ model = Question
+ # exclude = ['user', 'question', 'status', 'validated', 'date_submitted']
+AnswerFormset = inlineformset_factory(QuestionForm, Answer, extra=1)
{% extends "teleforma/seminars.html" %}
{% load i18n %}
+{% block extra_javascript %}
+<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
+<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
+ <style>
+ .ui-progressbar2 .ui-progressbar-value2 {
+ /*webkit rainbow gradient*/
+ background-image: -webkit-gradient(linear, left top, right top,
+ color-stop(0.00, red),
+ color-stop(16%, orange),
+ color-stop(32%, yellow),
+ color-stop(48%, green),
+ color-stop(60%, blue),
+ color-stop(76%, indigo),
+ color-stop(1.00, violet));
+ }
+
+ </style>
+<script type="text/javascript">
+ $(function() {
+ $( "#progressbar" ).progressbar({
+ value: {{ progress }}
+ });
+ });
+</script>
+{% endblock extra_javascript %}
{% block course %}
<div class="desk_center">
{% load i18n %}
+{% block extra_javascript %}
+<script type="text/javascript">
+ $(function() {
+ $( "#progressbar" ).progressbar({
+ value: {{ total_progress }}
+ });
+ });
+</script>
+{% endblock extra_javascript %}
+
+
{% block content %}
<div id="module-set-left" style="width: 18%">
<div class="desk_center">
{% for seminar in object_list %}
<div class="course">
+
<div class="course_title">
<a href="{% url teleforma-seminar-detail seminar.id %}" style="color: #000;">{{ seminar.title }}</a>
</div>
<div id="module-set" style="width: 22%">
+{% block local_progress %}
+<div id="progressbar"></div>
+{% endblock local_progress %}
+
{% block status %}
{% get_telecaster as telecaster %}
{% if telecaster %}
{% endblock status %}
+
</div>
{% endblock content %}
url(r'^desk/conference_record/$', ConferenceRecordView.as_view(),
name="teleforma-conference-record"),
+ # Questions
+ url(r'^desk/questions/(?P<pk>.*)/$', AnswerCreateView.as_view(),
+ name="teleforma-answer-create"),
+
# Postman
url(r'^messages/', include('postman.urls')),
# Users
url(r'^users/$', UsersView.as_view(), name="teleforma-users"),
- url(r'^users/(?P<username>[A-Za-z0-9._-]+)/profile/$', profile_view.profile_detail,
+ url(r'^users/(?P<username>[A-Za-z0-9._-@]+)/profile/$', profile_view.profile_detail,
name="teleforma-profile-detail"),
url(r'^users/(?P<id>.*)/login/$', UserLoginView.as_view(), name="teleforma-user-login"),
url(r'^users/all/export/$', user_export.all, name="teleforma-users-xls-export"),
access = True
return access
+
access_error = _('Access not allowed.')
contact_message = _('Please login or contact the website administator to get a private access.')
def download(self, request, pk):
courses = get_courses(request.user)
document = Document.objects.get(id=pk)
+ document.readers.add(request.user)
if get_access(document, courses):
+ document.readers.add(request.user)
fsock = open(document.file.path, 'r')
mimetype = mimetypes.guess_type(document.file.path)[0]
extension = mimetypes.guess_extension(mimetype)
def view(self, request, pk):
courses = get_courses(request.user)
document = Document.objects.get(id=pk)
+ document.readers.add(request.user)
if get_access(document, courses):
+ document.readers.add(request.user)
fsock = open(document.file.path, 'r')
mimetype = mimetypes.guess_type(document.file.path)[0]
extension = mimetypes.guess_extension(mimetype)
+class AnswerCreateView(CreateView):
-class AnswerView(FormView):
-
- model = Answer
form_class = AnswerForm
- template_name='teleforma/answer.html'
+ template_name='teleforma/answer_form.html'
+
+ def get_success_url(self):
+ # Redirect to previous url
+ return self.request.META.get('HTTP_REFERER', None)
+
+ def form_valid(self, form):
+ messages.info(
+ self.request,
+ "You have successfully changed your email notifications"
+ )
+ return super(AnswerCreateView, self).form_valid(form)
+
+ def form_invalid(self, form):
+ messages.info(
+ self.request,
+ "Your submission has not been saved. Try again."
+ )
+ return super(AnswerCreateView, self).form_invalid(form)
+
+ def get_context_data(self, **kwargs):
+ context = super(AnswerCreateView, self).get_context_data(**kwargs)
+ context['all_courses'] = get_courses(self.request.user)
+ context['question'] = Question.objects.get(pk=kwargs['pk'])
+ return context
+ def get_success_url(self):
+ return reverse('teleforma-seminar-detail', kwargs={'pk':self.seminar.id})