From 96fa635bb9ddda2a19d350a6841ef5c634082070 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Thu, 11 Jul 2013 11:40:17 +0200 Subject: [PATCH] fix period context in views --- .../teleforma/course_conference.html | 2 +- .../teleforma/course_conference_audio.html | 2 +- .../templates/teleforma/course_media.html | 4 +- .../teleforma/inc/conference_list.html | 2 +- .../templates/teleforma/inc/media_list.html | 2 +- teleforma/urls.py | 10 ++--- teleforma/views/core.py | 38 ++++++++++--------- 7 files changed, 31 insertions(+), 29 deletions(-) diff --git a/teleforma/templates/teleforma/course_conference.html b/teleforma/templates/teleforma/course_conference.html index a5120265..bf590261 100644 --- a/teleforma/templates/teleforma/course_conference.html +++ b/teleforma/templates/teleforma/course_conference.html @@ -34,7 +34,7 @@
-  {% trans "Audio" %} +  {% trans "Audio" %}
{{ course.title }} - {{ type }} - {% trans "Session" %} {{ conference.session }} diff --git a/teleforma/templates/teleforma/course_conference_audio.html b/teleforma/templates/teleforma/course_conference_audio.html index bc9692a4..e1e0a92b 100644 --- a/teleforma/templates/teleforma/course_conference_audio.html +++ b/teleforma/templates/teleforma/course_conference_audio.html @@ -33,7 +33,7 @@
-  {% trans "Video" %} +  {% trans "Video" %}
{{ course.title }}{% if course.description %} - {{ course.description }}{% endif %} - {{ conference.session }} - {{ conference.professor }} diff --git a/teleforma/templates/teleforma/course_media.html b/teleforma/templates/teleforma/course_media.html index 92632182..d5d4ec87 100644 --- a/teleforma/templates/teleforma/course_media.html +++ b/teleforma/templates/teleforma/course_media.html @@ -73,10 +73,10 @@ $(document).ready(function(){
{% if "video" in media.mime_type %} -  {% trans "Audio" %} +  {% trans "Audio" %} {% endif %} {% if "audio" in media.mime_type %} -  {% trans "Video" %} +  {% trans "Video" %} {% endif %} {% if user.is_staff %} {% if media.is_published %}{% trans " published" %}{% else %}{% trans " rejected" %}{% endif %} diff --git a/teleforma/templates/teleforma/inc/conference_list.html b/teleforma/templates/teleforma/inc/conference_list.html index d57cb4ba..753fcea1 100644 --- a/teleforma/templates/teleforma/inc/conference_list.html +++ b/teleforma/templates/teleforma/inc/conference_list.html @@ -15,7 +15,7 @@ {% if stream.streaming %} - + {% trans 'Click here' %} diff --git a/teleforma/templates/teleforma/inc/media_list.html b/teleforma/templates/teleforma/inc/media_list.html index 1578f3d0..400cc1ba 100644 --- a/teleforma/templates/teleforma/inc/media_list.html +++ b/teleforma/templates/teleforma/inc/media_list.html @@ -14,7 +14,7 @@ {% if media.type == 'webm' %} - + {% if media.item.related.all %} {% for related in media.item.related.all %} {% if related.title == "preview" %} diff --git a/teleforma/urls.py b/teleforma/urls.py index 8282db1e..bc83091f 100644 --- a/teleforma/urls.py +++ b/teleforma/urls.py @@ -68,8 +68,8 @@ urlpatterns = patterns('', url(r'^desk/periods/(?P.*)/courses/(?P.*)/detail/$', PeriodCourseView.as_view(), name="teleforma-desk-period-course"), - url(r'^desk/media/(?P.*)/detail/$', MediaView.as_view(), name="teleforma-media-detail"), - url(r'^desk/media/(?P.*)/download/$', media.download, name="teleforma-media-download"), + url(r'^desk/periods/(?P.*)/medias/(?P.*)/detail/$', MediaView.as_view(), name="teleforma-media-detail"), + url(r'^desk/periods/(?P.*)/medias/(?P.*)/download/$', media.download, name="teleforma-media-download"), url(r'^desk/documents/(?P.*)/detail/$', DocumentView.as_view(), name="teleforma-document-detail"), @@ -82,14 +82,14 @@ urlpatterns = patterns('', url(r'^archives/annals/by-iej/(\w+)/$', AnnalsIEJView.as_view(), name="teleforma-annals-iej"), url(r'^archives/annals/by-course/(\w+)/$', AnnalsCourseView.as_view(), name="teleforma-annals-course"), - url(r'^desk/conferences/(?P.*)/video/$', + url(r'^desk/periods/(?P.*)/conferences/(?P.*)/video/$', ConferenceView.as_view(), name="teleforma-conference-detail"), - url(r'^desk/conferences/(?P.*)/audio/$', + url(r'^desk/periods/(?P.*)/conferences/(?P.*)/audio/$', ConferenceView.as_view(template_name="teleforma/course_conference_audio.html"), name="teleforma-conference-audio"), url(r'^desk/conference_record/$', ConferenceRecordView.as_view(), name="teleforma-conference-record"), - url(r'^desk/conferences/list/$', ConferenceListView.as_view(), + url(r'^desk/periods/(?P.*)/conferences/list/$', ConferenceListView.as_view(), name="teleforma-conferences"), # Postman diff --git a/teleforma/views/core.py b/teleforma/views/core.py index fdda7206..d702d41e 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -204,7 +204,17 @@ class CourseView(DetailView): return super(CourseView, self).dispatch(*args, **kwargs) -class PeriodAccessMixin(object): +class PeriodAccessMixin(View): + + period = None + + def get_context_data(self, **kwargs): + context = super(PeriodAccessMixin, self).get_context_data(**kwargs) + period = Period.objects.filter(id=int(self.kwargs['period_id'])) + if period: + self.period = period[0] + context['period'] = self.period + return context def render_to_response(self, context): period = context['period'] @@ -216,14 +226,8 @@ class PeriodAccessMixin(object): class PeriodCourseView(PeriodAccessMixin, CourseView): - def get_context_data(self, **kwargs): - context = super(PeriodCourseView, self).get_context_data(**kwargs) - self.period = None - period = Period.objects.filter(id=int(self.kwargs['period_id'])) - if period: - self.period = period[0] - context['period'] = self.period - return context + pass + class CoursesView(ListView): @@ -265,7 +269,7 @@ class PeriodListView(PeriodAccessMixin, CoursesView): return context -class MediaView(DetailView): +class MediaView(PeriodAccessMixin, DetailView): model = Media template_name='teleforma/course_media.html' @@ -290,7 +294,6 @@ class MediaView(DetailView): if not access: context['access_error'] = access_error context['message'] = contact_message - context['periods'] = get_periods(self.request.user) return context @method_decorator(login_required) @@ -316,7 +319,7 @@ class MediaView(DetailView): (filename.encode('utf8'), extension) return response else: - return redirect('teleforma-media-detail', media.id) + return redirect('teleforma-media-detail', self.context['period'].id, media.id) @jsonrpc_method('teleforma.publish_media') @@ -385,7 +388,7 @@ class DocumentView(DetailView): return redirect('teleforma-document-detail', document.id) -class ConferenceView(DetailView): +class ConferenceView(PeriodAccessMixin, DetailView): model = Conference template_name='teleforma/course_conference.html' @@ -407,7 +410,6 @@ class ConferenceView(DetailView): if not access: context['access_error'] = access_error context['message'] = contact_message - context['periods'] = get_periods(self.request.user) return context @jsonrpc_method('teleforma.stop_conference') @@ -434,7 +436,7 @@ class ConferenceView(DetailView): return super(ConferenceView, self).dispatch(*args, **kwargs) -class ConferenceListView(View): +class ConferenceListView(PeriodAccessMixin, View): @jsonrpc_method('teleforma.get_conference_list') def get_conference_list(request): @@ -469,7 +471,7 @@ class ConferenceListView(View): s.teleforma.create_conference(conference.to_json_dict()) -class ConferenceRecordView(FormView): +class ConferenceRecordView(PeriodAccessMixin, FormView): "Conference record form : TeleCaster module required" model = Conference @@ -488,7 +490,8 @@ class ConferenceRecordView(FormView): return context def get_success_url(self): - return reverse('teleforma-conference-detail', kwargs={'pk':self.conference.id}) + return reverse('teleforma-conference-detail', kwargs={'period_id': self.context['period'].id, + 'pk':self.conference.id}) def form_valid(self, form): form.save() @@ -596,4 +599,3 @@ class HelpView(TemplateView): def dispatch(self, *args, **kwargs): return super(HelpView, self).dispatch(*args, **kwargs) - -- 2.39.5