From: Yoan Le Clanche Date: Tue, 27 Jan 2026 13:23:39 +0000 (+0100) Subject: Add "new" on not read documents X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=15a500674fea2498e4243d724857556310da1bb1;p=teleforma.git Add "new" on not read documents --- diff --git a/teleforma/static/teleforma/css/teleforma.css b/teleforma/static/teleforma/css/teleforma.css index 26e657e4..8e7210cf 100644 --- a/teleforma/static/teleforma/css/teleforma.css +++ b/teleforma/static/teleforma/css/teleforma.css @@ -3325,6 +3325,12 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad font-weight: bold; } - - - +/* New resource indicator */ +.new-resource { + background-color: #e74c3c; + color: white; + padding: 2px 8px; + border-radius: 3px; + font-size: 0.85em; + font-weight: bold; +} \ No newline at end of file diff --git a/teleforma/static/teleforma/js/application.js b/teleforma/static/teleforma/js/application.js index 38bb61cd..4ff43fe2 100644 --- a/teleforma/static/teleforma/js/application.js +++ b/teleforma/static/teleforma/js/application.js @@ -34,7 +34,7 @@ $(document).ready(function(){ var $tbody = $(this); if($tbody.find('tr').size()>=2) { $tbody.find('tr:not(:first)').remove(); - $tbody.append('Voir la suite') + $tbody.append('Voir la suite') } }); }) diff --git a/teleforma/templates/teleforma/inc/document_list.html b/teleforma/templates/teleforma/inc/document_list.html index b1f21155..2e0c6a08 100644 --- a/teleforma/templates/teleforma/inc/document_list.html +++ b/teleforma/templates/teleforma/inc/document_list.html @@ -15,9 +15,14 @@ {% for doc in docs|from_course_type:type|from_doc_type:doc_type|from_periods:period|published %} - {% if doc.file %}{% endif %} {{ doc.title }}{% if doc.file %}{% endif %} - {{ doc.date_added }} + {% if doc.file %}{% endif %} {{ doc.title }}{% if doc.file %}{% endif %} + {{ doc.date_added }} {% if doc.file %}{% endif %} + + {% if not doc|document_read:user %} + Nouveau + {% endif %} + {% endfor %} diff --git a/teleforma/templates/teleforma/inc/media_list.html b/teleforma/templates/teleforma/inc/media_list.html index 9224be4c..d205825f 100644 --- a/teleforma/templates/teleforma/inc/media_list.html +++ b/teleforma/templates/teleforma/inc/media_list.html @@ -75,6 +75,9 @@ {% endif %} {% endif %} + {% if not conference.video|media_read:user %} + Nouveau + {% endif %} {% if conference.video.file %} {% if not "video" in conference.video.mime_type or request.user_agent.os.family == 'iOS' %} diff --git a/teleforma/templatetags/teleforma_tags.py b/teleforma/templatetags/teleforma_tags.py index 0fd6b753..856061b6 100644 --- a/teleforma/templatetags/teleforma_tags.py +++ b/teleforma/templatetags/teleforma_tags.py @@ -465,3 +465,11 @@ def course_past_conferences(context): def conference_publication(context, conference): period = context['period'] return conference.publication_info(period) + +@register.filter +def document_read(document, user): + return document.readers.filter(id=user.id).exists() + +@register.filter +def media_read(media, user): + return media.readers.filter(id=user.id).exists() diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 67fc1ec3..b59a4ef4 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -774,6 +774,8 @@ class DocumentView(CourseAccessMixin, DetailView): courses = get_courses(request.user) document = Document.objects.get(pk=pk) if get_access(document, courses): + # Track document read + document.readers.add(request.user) return serve_media(document.file.path.encode('utf8'), streaming=True) else: return redirect('teleforma-home') diff --git a/teleforma/webclass/views.py b/teleforma/webclass/views.py index e9e7aba5..a583cdf1 100644 --- a/teleforma/webclass/views.py +++ b/teleforma/webclass/views.py @@ -249,9 +249,11 @@ def unregister(request, pk): @access_required def create_bbb_conference(request, period_id, course_id, course_type_id): """ - Create a BBB conference + Create a Conference object and join a bbb webclass with a random room id. + A cron script will later store the BBB record id in the Conference object. """ + username = request.user.get_full_name() is_professor = len(request.user.professor.all()) >= 1 is_staff = request.user.is_staff or request.user.is_superuser