diff --git a/register/admin.py b/register/admin.py
index 95a4138df47b10c89c2dac2604b074f5fe30404a..482cba4ff89eaf2663cc4fcad5925d681873ffca 100644
--- a/register/admin.py
+++ b/register/admin.py
@@ -5,6 +5,25 @@ from .models import Registration
 from profiles.models import Student
 
 
+class SchoolFilter(admin.SimpleListFilter):
+    title = 'établissement'
+    parameter_name = 'profiles__school'
+
+    def lookups(self, request, model_admin):
+        list_of_school = []
+        query = Student.objects.values_list(
+            "school", flat=True).distinct()
+        for school in query:
+            list_of_school.append((school, school))
+        return list_of_school
+
+    def queryset(self, request, queryset):
+        if self.value():
+            emails = Student.objects.filter(
+                school=self.value()).values_list("user__email", flat=True)
+            return queryset.filter(email__in=emails)
+
+
 class SchoolFilter(admin.SimpleListFilter):
     title = 'établissement'
     parameter_name = 'profiles__school'
diff --git a/visits/admin.py b/visits/admin.py
index a7b6392529941962e2bb2ee3c755c27efc5dff8a..7d49e11c710c84f56700e27fbdc1cb07e30b476b 100644
--- a/visits/admin.py
+++ b/visits/admin.py
@@ -9,6 +9,8 @@ from django.http import HttpResponse
 import csv
 from .models import Participation, Place, Visit
 from profiles.models import Student
+from users.models import User
+import codecs
 
 # Register your models here.
 
@@ -154,8 +156,6 @@ class ParticipationAdmin(admin.ModelAdmin):
 
     list_display = ('submitted', 'visit', 'user_link', 'accepted', 'present')
     list_filter = (SchoolFilter, 'submitted', 'accepted', 'present')
-
-
     actions = [accept_selected_participations, reject_selected_participations]
 
     def user_link(self, participation: Participation):
@@ -179,17 +179,30 @@ class ParticipationAdmin(admin.ModelAdmin):
     def export_as_csv(self, request, queryset):
         meta = self.model._meta
         field_names = [field.name for field in meta.fields]
-
         response = HttpResponse(content_type='text/csv')
         response['Content-Disposition'] = 'attachment; filename={}.csv'.format(
             meta)
-        writer = csv.writer(response)
-        writer.writerow(field_names)
+        response.write(codecs.BOM_UTF8)  # force response to be UTF-8
+        writer = csv.writer(response, delimiter=';')
+
+        writer.writerow(['first_name', 'last_name', 'school',
+                         'phone_number', 'scholarship'] + field_names)
+
+        list_email = queryset.values_list("user__email", flat=True)
+        nb_user = 0
         for obj in queryset:
-            row = writer.writerow([getattr(obj, field)
-                                   for field in field_names])
+
+            name = User.objects.filter(
+                email=str(list_email[nb_user])).values('first_name', 'last_name', 'phone_number')
+            school = Student.objects.filter(
+                user__email=str(list_email[nb_user])).values('school', 'scholarship')
+
+            row = writer.writerow([name[0]['first_name'], name[0]['last_name'], school[0]['school'], name[0]['phone_number'], school[0]['scholarship']] + [getattr(obj, field)
+                                                                                                                                                           for field in field_names])
+            nb_user += 1
         return response
-    export_as_csv.short_description = "Exporter au format CSV"
+
+    export_as_csv.short_description = "Exporter sélection (en .csv)"
 
 
 
@@ -226,6 +239,7 @@ class VisitAdmin(admin.ModelAdmin):
         return obj.participants.count()
     num_participants.short_description = 'Participants'
 
+    
 @admin.register(Place)
 class PlaceAdmin(admin.ModelAdmin):
     """Admin panel for places."""