<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"> {% trans "Audio" %}</a>
+ <a href="{% url teleforma-conference-audio period.id conference.id %}" class="component_icon button icon_speaker"> {% 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 }}
<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"> {% trans "Video" %}</a>
+ <a href="{% url teleforma-conference-detail period.id conference.id %}" class="component_icon button icon_clap"> {% trans "Video" %}</a>
</div>
{{ course.title }}{% if course.description %} - {{ course.description }}{% endif %} - {{ conference.session }} - {{ conference.professor }}
<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"> {% trans "Audio" %}</a>
+ <a href="{% url teleforma-media-detail period.id media|get_audio_id %}" class="component_icon button icon_speaker"> {% 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"> {% trans "Video" %}</a>
+ <a href="{% url teleforma-media-detail period.id media|get_video_id %}" class="component_icon button icon_clap"> {% 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>
<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>
{% 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" %}
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"),
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
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']
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):
return context
-class MediaView(DetailView):
+class MediaView(PeriodAccessMixin, DetailView):
model = Media
template_name='teleforma/course_media.html'
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)
(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')
return redirect('teleforma-document-detail', document.id)
-class ConferenceView(DetailView):
+class ConferenceView(PeriodAccessMixin, DetailView):
model = Conference
template_name='teleforma/course_conference.html'
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')
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):
s.teleforma.create_conference(conference.to_json_dict())
-class ConferenceRecordView(FormView):
+class ConferenceRecordView(PeriodAccessMixin, FormView):
"Conference record form : TeleCaster module required"
model = Conference
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()
def dispatch(self, *args, **kwargs):
return super(HelpView, self).dispatch(*args, **kwargs)
-