From 830aba984e145ba30e78365e141f9c7e0b721f1c Mon Sep 17 00:00:00 2001 From: Dorian Lesbre Date: Thu, 21 Jan 2021 20:32:36 +0100 Subject: [PATCH 1/4] Added bds/members to export members list as CSV --- bds/urls.py | 1 + bds/views.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/bds/urls.py b/bds/urls.py index f0877e3f..93c60b0d 100644 --- a/bds/urls.py +++ b/bds/urls.py @@ -14,4 +14,5 @@ urlpatterns = [ name="user.create.fromclipper", ), path("user/delete/", views.UserDeleteView.as_view(), name="user.delete"), + path("members", views.export_members, name="export.members"), ] diff --git a/bds/views.py b/bds/views.py index 0318d1e6..540865b1 100644 --- a/bds/views.py +++ b/bds/views.py @@ -1,5 +1,9 @@ +import csv + from django.contrib import messages from django.contrib.auth import get_user_model +from django.contrib.auth.decorators import permission_required +from django.http import HttpResponse from django.shortcuts import get_object_or_404 from django.urls import reverse, reverse_lazy from django.utils.translation import gettext_lazy as _ @@ -128,3 +132,21 @@ class UserDeleteView(StaffRequiredMixin, DeleteView): messages.success(request, self.success_message) return super().delete(request, *args, **kwargs) + + +@permission_required("bds.is_team") +def export_members(request): + response = HttpResponse(content_type="text/csv") + response["Content-Disposition"] = "attachment; filename=membres_bds.csv" + + writer = csv.writer(response) + for profile in BDSProfile.objects.filter(is_member=True).all(): + user = profile.user + bits = [ + user.username, + user.get_full_name(), + user.email, + ] + writer.writerow([str(bit) for bit in bits]) + + return response From a2eed137176af9451d7be10a14b06c6cf5d79c9a Mon Sep 17 00:00:00 2001 From: Dorian Lesbre Date: Thu, 21 Jan 2021 20:38:15 +0100 Subject: [PATCH 2/4] Added download button to home template --- bds/templates/bds/home.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bds/templates/bds/home.html b/bds/templates/bds/home.html index 4a3e95f6..c7a5ef44 100644 --- a/bds/templates/bds/home.html +++ b/bds/templates/bds/home.html @@ -7,7 +7,7 @@
-

{{ member_count }}

+

{{ member_count }}

adhérent·e·s
@@ -34,6 +34,11 @@

+ Télécharger la liste des membres (CSV) + +
+
+ Le site est encore en développement.
Suivez notre avancement sur @@ -52,4 +57,4 @@ {% endblock layout %} - + From 9a78fca507777a21aa2b1ee8b3cc6cf5f566ee8b Mon Sep 17 00:00:00 2001 From: Dorian Lesbre Date: Fri, 29 Jan 2021 09:34:56 +0100 Subject: [PATCH 3/4] Switched to named url --- bds/templates/bds/home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bds/templates/bds/home.html b/bds/templates/bds/home.html index c7a5ef44..9ccaa364 100644 --- a/bds/templates/bds/home.html +++ b/bds/templates/bds/home.html @@ -34,7 +34,7 @@

- Télécharger la liste des membres (CSV) + Télécharger la liste des membres (CSV)

From 880dc31353c342a1c122026fe9ca8a132d5e281d Mon Sep 17 00:00:00 2001 From: Dorian Lesbre Date: Fri, 29 Jan 2021 09:37:37 +0100 Subject: [PATCH 4/4] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b75b07a..170f92a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,10 @@ adhérents ni des cotisations. ses places pour pouvoir revendre. - On s'assure que les emails dans les demandes de petits cours sont valides. +### BDS + +- Le buro peut exporter la liste de membres avec email au format CSV depuis la page d'acceuil. + ### K-Fêt - On affiche les articles actuellement en vente en premier lors des inventaires