From 000e74d31a5e11cabab23ddd6bcefe24fe5f4182 Mon Sep 17 00:00:00 2001 From: alazo Date: Sat, 1 Sep 2018 15:53:09 +0200 Subject: [PATCH] Only load intranet documents for a single module --- intranet/templatetags/__init__.py | 0 intranet/templatetags/intranet.py | 9 ++++ intranet/test_files/doc_etudiant.pdf | Bin 0 -> 22781 bytes intranet/test_files/doc_prof.pdf | Bin 0 -> 22781 bytes intranet/tests.py | 68 +++++++++++++++++++++++++++ intranet/urls.py | 2 +- intranet/views.py | 8 +++- templates/cms/module_detail.html | 2 +- templates/intranet/list.html | 48 ++++++++++--------- 9 files changed, 113 insertions(+), 24 deletions(-) create mode 100644 intranet/templatetags/__init__.py create mode 100644 intranet/templatetags/intranet.py create mode 100644 intranet/test_files/doc_etudiant.pdf create mode 100644 intranet/test_files/doc_prof.pdf create mode 100644 intranet/tests.py diff --git a/intranet/templatetags/__init__.py b/intranet/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/intranet/templatetags/intranet.py b/intranet/templatetags/intranet.py new file mode 100644 index 0000000..1508c7b --- /dev/null +++ b/intranet/templatetags/intranet.py @@ -0,0 +1,9 @@ +from django import template +from django.contrib.auth.models import Group + +register = template.Library() + + +@register.filter +def has_group(user, group_name): + return user.groups.filter(name=group_name).exists() diff --git a/intranet/test_files/doc_etudiant.pdf b/intranet/test_files/doc_etudiant.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ad0194f70c744503225b9720fbbefdd45f4dfe83 GIT binary patch literal 22781 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 jIO%Fft*@Qh`*IcY^s@Hw`ZB9/', views.IntranetListView.as_view(), name='intranet-list'), ] diff --git a/intranet/views.py b/intranet/views.py index 65c34ed..c78d43d 100644 --- a/intranet/views.py +++ b/intranet/views.py @@ -1,4 +1,5 @@ from django.contrib.auth.mixins import LoginRequiredMixin +from django.shortcuts import get_object_or_404 from django.views.generic import ListView from cms.models import Module @@ -12,7 +13,7 @@ class IntranetListView(LoginRequiredMixin, ListView): def get_queryset(self): groups = self.request.user.groups.values_list('name',flat=True) - qs = IntranetDoc.objects.filter(published=True) + qs = IntranetDoc.objects.filter(module=self.kwargs['module'], published=True) if self.request.user.is_superuser: qs = qs.filter(authorization__in=[1,2,3]) elif 'prof' in groups: @@ -32,3 +33,8 @@ class IntranetListView(LoginRequiredMixin, ListView): else: qs = qs.none() return qs + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['module'] = get_object_or_404(Module, pk=self.kwargs['module']) + return context diff --git a/templates/cms/module_detail.html b/templates/cms/module_detail.html index 1b11f3f..5477df0 100644 --- a/templates/cms/module_detail.html +++ b/templates/cms/module_detail.html @@ -87,7 +87,7 @@

Imprimer en PDF -     Documents de cours (connexion requise) +     Documents de cours (connexion requise)

{% endblock %} diff --git a/templates/intranet/list.html b/templates/intranet/list.html index 3b45da7..cf29c48 100644 --- a/templates/intranet/list.html +++ b/templates/intranet/list.html @@ -1,32 +1,38 @@ {% extends "cms/base_site.html" %} -{% load i18n static %} - -{% block extrastyle %} -{{ block.super }} - -{% endblock %} +{% load i18n static intranet %} {% block content %}
-

Documents de cours

- {% regroup object_list by module as module_list %} -
    - {% for module in module_list %} -
  • {{ module.grouper }}

    +

    Module {{ module.url }} — Documents de cours

    +
    +

    Documents Étudiant

      - {% for doc in module.list %} -
    1. {{ doc.doc.name }} ({{ doc.get_authorization_display }})
    2. + {% for doc in object_list %} + {% if doc.get_authorization_display == 'étudiant' %} +
    3. {{ doc.doc.name }}
    4. + {% endif %} + {% empty %} +

      Aucun document disponible.

      {% endfor %}
    -
  • - {% empty %} -

    Désolé, aucun document disponible pour le moment.

    - {% endfor %} -
+
+ {% if user|has_group:"prof" or user.is_staff %} +
+

Documents ENSEIGNANT

+
    + {% for doc in object_list %} + {% if doc.get_authorization_display == 'prof' %} +
  1. {{ doc.doc.name }}
  2. + {% endif %} + {% empty %} +

    Aucun document disponible.

    + {% endfor %} +
+
+ {% endif %} + {% if user.is_staff %} -
+

Gestion des documents

{% endif %}