diff --git a/core/admin.py b/core/admin.py
index 8adebf78b1c1f1705c5af8d76b0e4a2f94173754..65d11365a77c2a098fcee2cd2b16ce30fc7741ca 100644
--- a/core/admin.py
+++ b/core/admin.py
@@ -2,8 +2,6 @@
 
 from django.contrib import admin
 from .models import Document, Address
-from django.http import HttpResponse
-import csv
 # Register your models here.
 
 
@@ -17,23 +15,6 @@ class DocumentAdmin(admin.ModelAdmin):
     # reorganize fields
     fields = ('title', 'slug', 'content',)
 
-    actions = ["export_as_csv"]
-
-    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)
-        for obj in queryset:
-            row = writer.writerow([getattr(obj, field)
-                                   for field in field_names])
-        return response
-    export_as_csv.short_description = "Exporter au format CSV"
-
 
 @admin.register(Address)
 class AddressAdmin(admin.ModelAdmin):
diff --git a/projects/admin.py b/projects/admin.py
index a20211ae407c9e259336c27b9a69c4645ad28e9b..5a65a46fdfe9f65c4e90bd4f5293542db2ec39bb 100644
--- a/projects/admin.py
+++ b/projects/admin.py
@@ -5,8 +5,6 @@ from django.contrib import admin
 from dynamicforms.views import download_multiple_forms_entries
 from dynamicforms.models import Form
 from .models import Edition, Participation, Project, EditionForm
-from django.http import HttpResponse
-import csv
 
 
 @admin.register(Project)
@@ -31,23 +29,6 @@ class ProjectAdmin(admin.ModelAdmin):
         return obj.total_participations(state=Participation.STATE_ACCEPTED)
     total_accepted_participations.short_description = 'Participations totales'
 
-    actions = ["export_as_csv"]
-
-    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)
-        for obj in queryset:
-            row = writer.writerow([getattr(obj, field)
-                                   for field in field_names])
-        return response
-    export_as_csv.short_description = "Exporter au format CSV"
-
 
 class OrganizersInline(admin.TabularInline):
     """Inline for edition organizers."""
@@ -91,23 +72,6 @@ class EditionAdmin(admin.ModelAdmin):
         return obj.participations.cancelled().count()
     num_cancelled.short_description = 'Annulés'
 
-    actions = ["export_as_csv"]
-
-    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)
-        for obj in queryset:
-            row = writer.writerow([getattr(obj, field)
-                                   for field in field_names])
-        return response
-    export_as_csv.short_description = "Exporter au format CSV"
-
 
 @admin.register(EditionForm)
 class EditionFormAdmin(admin.ModelAdmin):
@@ -116,23 +80,6 @@ class EditionFormAdmin(admin.ModelAdmin):
     list_display = ('form', 'deadline', 'recipient',)
     list_filter = ('edition', 'deadline',)
 
-    actions = ["export_as_csv"]
-
-    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)
-        for obj in queryset:
-            row = writer.writerow([getattr(obj, field)
-                                   for field in field_names])
-        return response
-    export_as_csv.short_description = "Exporter au format CSV"
-
 
 @admin.register(Participation)
 class ParticipationAdmin(admin.ModelAdmin):
@@ -142,20 +89,3 @@ class ParticipationAdmin(admin.ModelAdmin):
     list_filter = ('edition', 'submitted', 'state',)
     readonly_fields = ('submitted',)
     search_fields = ('user__first_name', 'user__last_name', 'user__email',)
-
-    actions = ["export_as_csv"]
-
-    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)
-        for obj in queryset:
-            row = writer.writerow([getattr(obj, field)
-                                   for field in field_names])
-        return response
-    export_as_csv.short_description = "Exporter au format CSV"
diff --git a/users/admin.py b/users/admin.py
index 78baa2596b7e26f68840b205ed8eb01e70e9cc79..9c080aafef192526ff2ba988c335886331055667 100644
--- a/users/admin.py
+++ b/users/admin.py
@@ -7,13 +7,9 @@ from django.utils.translation import ugettext_lazy as _
 from visits.admin import ParticipationInline
 
 from .models import User
+from django.http import HttpResponse
+import csv
 
-actions = ["export_as_csv"]
-
-def export_as_csv(self, request, queryset):
-    pass
-
-export_as_csv.short_description = "Export Selected"
 
 class UserParticipationInline(ParticipationInline):
     """Inline for Participation on the User admin panel.
@@ -63,3 +59,20 @@ class CustomUserAdmin(UserAdmin):
     )
 
     inlines = (UserParticipationInline, )
+
+    actions = ["export_as_csv"]
+
+    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)
+        for obj in queryset:
+            row = writer.writerow([getattr(obj, field)
+                                   for field in field_names])
+        return response
+    export_as_csv.short_description = "Exporter au format CSV"
diff --git a/visits/admin.py b/visits/admin.py
index 2b0fcb53bb779b69d1484f2de4c6979adc735a79..ee2f13677629d8edd9f0007ba38b4a8450b6e851 100644
--- a/visits/admin.py
+++ b/visits/admin.py
@@ -5,7 +5,8 @@ from django.contrib import admin, messages
 from django.template.defaultfilters import pluralize
 from django.urls import reverse
 from django.utils.safestring import mark_safe
-
+from django.http import HttpResponse
+import csv
 from .models import Participation, Place, Visit
 
 # Register your models here.
@@ -117,12 +118,30 @@ class ParticipationAdmin(admin.ModelAdmin):
                     'accepted', 'present')
     list_filter = ('submitted', 'accepted', 'present')
     actions = [accept_selected_participations, reject_selected_participations]
-    def user_link (self,book):
-        url=reverse("admin:users_user_change", args=[book.user.id]) 
+
+    def user_link(self, book):
+        url = reverse("admin:users_user_change", args=[book.user.id])
         link = '<a href="%s">%s</a>' % (url, book.user.email)
         return mark_safe(link)
     user_link.short_description = 'Utilisateur'
 
+    actions = ["export_as_csv"]
+
+    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)
+        for obj in queryset:
+            row = writer.writerow([getattr(obj, field)
+                                   for field in field_names])
+        return response
+    export_as_csv.short_description = "Exporter au format CSV"
+
 
 @admin.register(Visit.organizers.through)
 class VisitOrganizersAdmin(admin.ModelAdmin):