From: yomguy Date: Fri, 2 Nov 2012 11:01:41 +0000 (+0100) Subject: add period filtering for contents X-Git-Tag: 0.9-probarreau~341 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=df2319b8e4c695f40bae222bd57677fa0a929f1f;p=teleforma.git add period filtering for contents --- diff --git a/example/settings.py b/example/settings.py index 4c6bda5f..8d8194f3 100644 --- a/example/settings.py +++ b/example/settings.py @@ -194,5 +194,5 @@ TELECASTER_MASTER_SERVER = 'angus.parisson.com' # CRFPA or AE or PRO TELEFORMA_E_LEARNING_TYPE = 'CRFPA' - +TELEFORMA_GLOBAL_TWEETER = False diff --git a/teleforma/templates/teleforma/inc/document_list.html b/teleforma/templates/teleforma/inc/document_list.html index f774b7cb..0982c352 100644 --- a/teleforma/templates/teleforma/inc/document_list.html +++ b/teleforma/templates/teleforma/inc/document_list.html @@ -13,7 +13,7 @@ {{ doc_type }} - {% for doc in docs|from_course_type:type|from_doc_type:doc_type %} + {% for doc in docs|from_course_type:type|from_doc_type:doc_type|from_periods:periods %} {% if doc.course_type.all|length > 1 and type_counter > 1 %} {% else %} diff --git a/teleforma/templates/teleforma/inc/media_list.html b/teleforma/templates/teleforma/inc/media_list.html index e204093c..e0770566 100644 --- a/teleforma/templates/teleforma/inc/media_list.html +++ b/teleforma/templates/teleforma/inc/media_list.html @@ -9,7 +9,7 @@
- {% for media in course.media.all|from_course_type:type %} + {% for media in course.media.all|from_course_type:type|from_periods:periods %} {% if media.is_published or user.is_staff %} {% if media.type == 'webm' %} diff --git a/teleforma/templatetags/teleforma_tags.py b/teleforma/templatetags/teleforma_tags.py index c2ec5059..d88e9a18 100644 --- a/teleforma/templatetags/teleforma_tags.py +++ b/teleforma/templatetags/teleforma_tags.py @@ -134,16 +134,20 @@ def yes_no(bool): return _('No') @register.filter -def from_course_type(docs, type): - if docs: - return docs.filter(course_type=type) - else: - return False - +def from_course_type(contents, type): + if contents: + return contents.filter(course_type=type) + @register.filter -def from_doc_type(docs, type): - return docs.filter(type=type) - +def from_doc_type(contents, type): + if contents: + return contents.filter(type=type) + +@register.filter +def from_periods(contents, periods): + if contents: + return contents.filter(period__in=periods) + @register.assignment_tag def get_all_professors(): return Professor.objects.all().order_by('user__first_name') diff --git a/teleforma/views/core.py b/teleforma/views/core.py index ddcb14ce..1b3290d2 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -153,6 +153,26 @@ def get_random_hash(): hash = random.getrandbits(128) return "%032x" % hash +def get_periods(user): + professor = user.professor.all() + if professor: + professor = user.professor.get() + periods = Period.objects.all() + + if settings.TELEFORMA_E_LEARNING_TYPE == 'CRFPA': + student = user.crfpa_student.all() + if student: + student = user.crfpa_student.get() + periods = student.period.all() + + elif settings.TELEFORMA_E_LEARNING_TYPE == 'AE': + student = user.ae_student.all() + if student: + student = user.ae_student.get() + periods = student.period.all() + + return periods + class CourseView(DetailView): @@ -176,6 +196,7 @@ class CourseView(DetailView): context['room'] = get_room(name=course.title, content_type=content_type, id=course.id) context['doc_types'] = DocumentType.objects.all() + context['periods'] = get_periods(self.request.user) return context @method_decorator(login_required) @@ -198,6 +219,7 @@ class CoursesView(ListView): context['room'] = get_room(name='site') context['doc_types'] = DocumentType.objects.all() context['all_courses'] = sorted(self.all_courses, key=lambda k: k['number']) + context['periods'] = get_periods(self.request.user) return context @method_decorator(login_required) @@ -232,6 +254,7 @@ 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) @@ -295,6 +318,7 @@ class DocumentView(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) @@ -353,6 +377,7 @@ 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')