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):