From cbe691360538d8b3f13c72e35d78fb0678c882b6 Mon Sep 17 00:00:00 2001 From: yomguy Date: Mon, 3 Dec 2012 15:45:23 +0100 Subject: [PATCH] continue question forms, FIX profile for username with @ --- teleforma/forms.py | 7 ++-- .../templates/teleforma/seminar_detail.html | 25 +++++++++++++++ teleforma/templates/teleforma/seminars.html | 17 ++++++++++ teleforma/urls.py | 6 +++- teleforma/views/core.py | 5 +++ teleforma/views/pro.py | 32 ++++++++++++++++--- 6 files changed, 85 insertions(+), 7 deletions(-) diff --git a/teleforma/forms.py b/teleforma/forms.py index 59132456..26bc0e03 100644 --- a/teleforma/forms.py +++ b/teleforma/forms.py @@ -1,6 +1,7 @@ from django.forms import ModelForm from teleforma.models import * +from django.forms.models import inlineformset_factory class ConferenceForm(ModelForm): @@ -9,10 +10,12 @@ 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) diff --git a/teleforma/templates/teleforma/seminar_detail.html b/teleforma/templates/teleforma/seminar_detail.html index 6f3a2674..ba4696ef 100644 --- a/teleforma/templates/teleforma/seminar_detail.html +++ b/teleforma/templates/teleforma/seminar_detail.html @@ -1,7 +1,32 @@ {% extends "teleforma/seminars.html" %} {% load i18n %} +{% block extra_javascript %} + + + + +{% endblock extra_javascript %} {% block course %}
diff --git a/teleforma/templates/teleforma/seminars.html b/teleforma/templates/teleforma/seminars.html index a5ae1c9b..f5f39e51 100644 --- a/teleforma/templates/teleforma/seminars.html +++ b/teleforma/templates/teleforma/seminars.html @@ -4,6 +4,17 @@ {% load i18n %} +{% block extra_javascript %} + +{% endblock extra_javascript %} + + {% block content %}
@@ -57,6 +68,7 @@
{% for seminar in object_list %}
+ @@ -73,6 +85,10 @@
+{% block local_progress %} +
+{% endblock local_progress %} + {% block status %} {% get_telecaster as telecaster %} {% if telecaster %} @@ -88,6 +104,7 @@ server_status_callback(); {% endblock status %} +
{% endblock content %} diff --git a/teleforma/urls.py b/teleforma/urls.py index f3fed23a..08745200 100644 --- a/teleforma/urls.py +++ b/teleforma/urls.py @@ -85,12 +85,16 @@ urlpatterns = patterns('', url(r'^desk/conference_record/$', ConferenceRecordView.as_view(), name="teleforma-conference-record"), + # Questions + url(r'^desk/questions/(?P.*)/$', 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[A-Za-z0-9._-]+)/profile/$', profile_view.profile_detail, + url(r'^users/(?P[A-Za-z0-9._-@]+)/profile/$', profile_view.profile_detail, name="teleforma-profile-detail"), url(r'^users/(?P.*)/login/$', UserLoginView.as_view(), name="teleforma-user-login"), url(r'^users/all/export/$', user_export.all, name="teleforma-users-xls-export"), diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 62577044..d911b830 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -132,6 +132,7 @@ def get_access(obj, courses): access = True return access + access_error = _('Access not allowed.') contact_message = _('Please login or contact the website administator to get a private access.') @@ -326,7 +327,9 @@ class DocumentView(DetailView): 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) @@ -340,7 +343,9 @@ class DocumentView(DetailView): 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) diff --git a/teleforma/views/pro.py b/teleforma/views/pro.py index f0594801..e4bd6b47 100644 --- a/teleforma/views/pro.py +++ b/teleforma/views/pro.py @@ -152,11 +152,35 @@ class SeminarsView(ListView): +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}) -- 2.39.5