]> git.parisson.com Git - teleforma.git/commitdiff
fix period context in views
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 11 Jul 2013 09:40:17 +0000 (11:40 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 11 Jul 2013 09:40:17 +0000 (11:40 +0200)
teleforma/templates/teleforma/course_conference.html
teleforma/templates/teleforma/course_conference_audio.html
teleforma/templates/teleforma/course_media.html
teleforma/templates/teleforma/inc/conference_list.html
teleforma/templates/teleforma/inc/media_list.html
teleforma/urls.py
teleforma/views/core.py

index a5120265f07bb21bdc68d881473d13a0591f3dc6..bf59026172bf155a3fa2718b038e2649a1772db4 100644 (file)
@@ -34,7 +34,7 @@
 
 <div class="course_title">
     <div style="float: right; font-size: 0.9em;">
-        <a href="{% url teleforma-conference-audio conference.id %}" class="component_icon button icon_speaker">&nbsp;{% trans "Audio" %}</a>
+        <a href="{% url teleforma-conference-audio period.id conference.id %}" class="component_icon button icon_speaker">&nbsp;{% trans "Audio" %}</a>
     </div>
 
 <a href="{% url teleforma-desk-period-course period.id course.id %}" style="color: #000;">{{ course.title }}</a> - {{ type }} - {% trans "Session" %} {{ conference.session }}
index bc9692a40b50414ae3732a20756e8f2e84166734..e1e0a92b973429914d0d366d656ae2bfbff170b8 100644 (file)
@@ -33,7 +33,7 @@
 
 <div class="course_title">
     <div style="float: right; font-size: 0.9em;">
-        <a href="{% url teleforma-conference-detail conference.id %}" class="component_icon button icon_clap">&nbsp;{% trans "Video" %}</a>
+        <a href="{% url teleforma-conference-detail period.id conference.id %}" class="component_icon button icon_clap">&nbsp;{% trans "Video" %}</a>
     </div>
 
 {{ course.title }}{% if course.description %} - {{ course.description }}{% endif %} - {{ conference.session }} - {{ conference.professor }}
index 92632182d0fd7431d9be2a7605b83d7de62c2ad5..d5d4ec87cf6519270ae187978b2b60c3eb98b50d 100644 (file)
@@ -73,10 +73,10 @@ $(document).ready(function(){
 <div class="course_title">
     <div style="float: right; font-size: 0.9em;">
         {% if "video" in media.mime_type %}
-        <a href="{% url teleforma-media-detail media|get_audio_id %}" class="component_icon button icon_speaker">&nbsp;{% trans "Audio" %}</a>
+        <a href="{% url teleforma-media-detail period.id media|get_audio_id %}" class="component_icon button icon_speaker">&nbsp;{% trans "Audio" %}</a>
         {% endif %}
         {% if "audio" in media.mime_type %}
-        <a href="{% url teleforma-media-detail media|get_video_id %}" class="component_icon button icon_clap">&nbsp;{% trans "Video" %}</a>
+        <a href="{% url teleforma-media-detail period.id media|get_video_id %}" class="component_icon button icon_clap">&nbsp;{% trans "Video" %}</a>
         {% endif %}
         {% if user.is_staff %}
         <a id="publish" href="#" class="{% if media.is_published %}component_icon button icon_ok{% else %}component_icon button icon_delete{% endif %}">{% if media.is_published %}{% trans " published" %}{% else %}{% trans " rejected" %}{% endif %}</a>
index d57cb4baab139bc286e441ec830fad523c8549bc..753fcea1e1cbcc5515f2cbdf8299bf145195808f 100644 (file)
@@ -15,7 +15,7 @@
             <tr>
             {% if stream.streaming %}
             <td {% if forloop.first %}class="border-top"{% endif %} width="230px">
-               <a href="{% url teleforma-conference-detail stream.conference.id %}" title="{% trans "View" %}">
+               <a href="{% url teleforma-conference-detail period.id stream.conference.id %}" title="{% trans "View" %}">
                <img id="snapshot-{{ stream.course.code }}-{{ stream.course_type }}" src="{{ stream.snapshot_url }}" width="100%" alt="{% trans 'Click here' %}" />
                </a>
             </td>
index 1578f3d0fcd3e2a49db394630ddd981786dfc967..400cc1bae9fbaa32dea6617c4f3c567293fb8b3c 100644 (file)
@@ -14,7 +14,7 @@
           {% if media.type == 'webm' %}
             <tr>
             <td {% if forloop.first %}class="border-top"{% endif %} width="230px" style="vertical-align:middle">
-            <a href="{% url teleforma-media-detail media.id %}" title="{% trans "Play" %}">
+            <a href="{% url teleforma-media-detail period.id media.id %}" title="{% trans "Play" %}">
             {% if media.item.related.all %}
              {% for related in media.item.related.all %}
               {% if related.title == "preview" %}
index 8282db1e1bde792f66d121d706c2cb69b29551fd..bc83091fad16724a157f16db9878f8e5976fabac 100644 (file)
@@ -68,8 +68,8 @@ urlpatterns = patterns('',
     url(r'^desk/periods/(?P<period_id>.*)/courses/(?P<pk>.*)/detail/$', PeriodCourseView.as_view(),
         name="teleforma-desk-period-course"),
 
-    url(r'^desk/media/(?P<pk>.*)/detail/$', MediaView.as_view(), name="teleforma-media-detail"),
-    url(r'^desk/media/(?P<pk>.*)/download/$', media.download, name="teleforma-media-download"),
+    url(r'^desk/periods/(?P<period_id>.*)/medias/(?P<pk>.*)/detail/$', MediaView.as_view(), name="teleforma-media-detail"),
+    url(r'^desk/periods/(?P<period_id>.*)/medias/(?P<pk>.*)/download/$', media.download, name="teleforma-media-download"),
 
     url(r'^desk/documents/(?P<pk>.*)/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<pk>.*)/video/$',
+    url(r'^desk/periods/(?P<period_id>.*)/conferences/(?P<pk>.*)/video/$',
         ConferenceView.as_view(), name="teleforma-conference-detail"),
-    url(r'^desk/conferences/(?P<pk>.*)/audio/$',
+    url(r'^desk/periods/(?P<period_id>.*)/conferences/(?P<pk>.*)/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<period_id>.*)/conferences/list/$', ConferenceListView.as_view(),
         name="teleforma-conferences"),
 
     # Postman
index fdda72064d2957557ca87dd45f27fbf446339b1c..d702d41ef2b81eaf76f2dbade1c4dcf6c4813154 100644 (file)
@@ -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)
 
-