From 47e3e7601daaccc483ce95272f06ddc9d873b510 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Wed, 24 Apr 2019 17:59:39 +0200 Subject: [PATCH] No streaming conference listed in templates --- teleforma/models/core.py | 3 +- .../teleforma/inc/conference_list.html | 2 +- teleforma/templatetags/teleforma_tags.py | 14 +++--- teleforma/views/core.py | 43 ++++++++++--------- 4 files changed, 34 insertions(+), 28 deletions(-) diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 4f8b24e6..5505375d 100644 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -307,7 +307,7 @@ class Room(Model): verbose_name = _('room') -class Conference(Model): +class Conference(models.Model): public_id = models.CharField(_('public_id'), max_length=255, blank=True) department = models.ForeignKey('Department', related_name='conference', verbose_name=_('department'), @@ -390,6 +390,7 @@ class Conference(Model): 'period': self.period.name if self.period else 'None', 'session': self.session if self.session else 'None', 'comment': self.comment if self.comment else 'None', + 'streaming': self.streaming if self.streaming else 'False', 'streams': [], 'date_begin': self.date_begin.strftime('%Y %m %d %H %M %S') if self.date_begin else 'None', 'date_end': self.date_end.strftime('%Y %m %d %H %M %S') if self.date_end else 'None', diff --git a/teleforma/templates/teleforma/inc/conference_list.html b/teleforma/templates/teleforma/inc/conference_list.html index 8979649f..c750fbc1 100644 --- a/teleforma/templates/teleforma/inc/conference_list.html +++ b/teleforma/templates/teleforma/inc/conference_list.html @@ -1,7 +1,7 @@ {% load teleforma_tags %} {% load i18n %} -{% with course.conference.all|from_course_type:type as conferences %} +{% with course.conference.all|from_course_type:type|streaming_only as conferences %} {% if conferences|from_period:period %}
diff --git a/teleforma/templatetags/teleforma_tags.py b/teleforma/templatetags/teleforma_tags.py index ed8ef8ef..033ca02f 100644 --- a/teleforma/templatetags/teleforma_tags.py +++ b/teleforma/templatetags/teleforma_tags.py @@ -127,6 +127,10 @@ def from_course_type(contents, type): if contents: return contents.filter(course_type=type) +@register.filter +def streaming_only(contents): + return contents.filter(streaming=True) + @register.filter def from_doc_type(contents, type): if contents: @@ -226,7 +230,7 @@ def scripts_count(user, period, statuses): return ' (' + str(len(scripts)) + ')' else: return '' - + @register.simple_tag def untreated_scripts_count(user, period): return scripts_count(user, period, (3,)) @@ -262,17 +266,17 @@ def newsitems_portlet(context, course_id, period_id): 'can_edit':newsitem.can_edit(request), 'can_delete':newsitem.can_delete(request), } - - course = get_object_or_404(Course, id=course_id) + + course = get_object_or_404(Course, id=course_id) course_newsitems = [get_data(news) for news in NewsItem.objects.filter(deleted=False, course__id=course_id, period_id=period_id).order_by('-created')] all_newsitems = [get_data(news) for news in NewsItem.objects.filter(deleted=False, period_id=period_id).order_by('-created')] - can_add = False + can_add = False if user.is_staff or user.professor.count(): can_add = True return { 'can_add':can_add, 'course':course, 'period_id':period_id, - 'course_newsitems':course_newsitems, + 'course_newsitems':course_newsitems, 'all_newsitems':all_newsitems } diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 3ae415e9..f27d9f4a 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -757,27 +757,28 @@ class ConferenceRecordView(FormView): conference.from_json_dict(conf_dict) conference.save() - for stream in conf_dict['streams']: - host = getattr(settings, "TELECASTER_LIVE_STREAMING_SERVER", stream['host']) - server_type = stream['server_type'] - stream_type = stream['stream_type'] - if server_type == 'icecast': - port = getattr(settings, "TELECASTER_LIVE_ICECAST_STREAMING_PORT", stream['port']) - elif server_type == 'stream-m': - port = getattr(settings, "TELECASTER_LIVE_STREAM_M_STREAMING_PORT", stream['port']) - #site = Site.objects.all()[0] - server, c = StreamingServer.objects.get_or_create(host=host, - port=port, - type=server_type) - stream = LiveStream(conference=conference, server=server, - stream_type=stream_type, streaming=True) - stream.save() - - if not conference.web_class_group: - try: - live_message(conference) - except: - pass + if conference.streaming: + for stream in conf_dict['streams']: + host = getattr(settings, "TELECASTER_LIVE_STREAMING_SERVER", stream['host']) + server_type = stream['server_type'] + stream_type = stream['stream_type'] + if server_type == 'icecast': + port = getattr(settings, "TELECASTER_LIVE_ICECAST_STREAMING_PORT", stream['port']) + elif server_type == 'stream-m': + port = getattr(settings, "TELECASTER_LIVE_STREAM_M_STREAMING_PORT", stream['port']) + #site = Site.objects.all()[0] + server, c = StreamingServer.objects.get_or_create(host=host, + port=port, + type=server_type) + stream = LiveStream(conference=conference, server=server, + stream_type=stream_type, streaming=True) + stream.save() + + if not conference.web_class_group: + try: + live_message(conference) + except: + pass else: raise 'Error : input must be a conference dictionnary' -- 2.39.5