Skip to content
Snippets Groups Projects
Commit 8ed4099a authored by Sylvain Le Bon's avatar Sylvain Le Bon
Browse files

feature: csv export in admin

parent f3deec52
No related branches found
No related tags found
1 merge request!283feature: csv export in admin
Pipeline #17998 passed
from csv import DictWriter
from django.contrib import admin
from guardian.admin import GuardedModelAdmin
from django.contrib.auth.admin import UserAdmin
from django.http import HttpResponse
from guardian.admin import GuardedModelAdmin
from djangoldp.models import Activity, ScheduledActivity, Follower
from djangoldp.activities.services import ActivityQueueService
......@@ -10,10 +12,21 @@ class DjangoLDPAdmin(GuardedModelAdmin):
An admin model representing a federated object. Inherits from GuardedModelAdmin to provide Django-Guardian
object-level permissions
'''
pass
actions = ['export_csv']
@admin.action(description="Export CSV")
def export_csv(self, request, queryset):
response = HttpResponse(content_type="text/csv")
response['Content-Disposition'] = f'attachment; filename="{self.model.__name__}.csv"'
headers = {field.name:field.verbose_name for field in self.model._meta.fields if field.name in self.list_display}
writer = DictWriter(response, fieldnames=headers.keys())
writer.writerow(headers)
writer.writerows(queryset.values(*headers.keys()))
return response
class DjangoLDPUserAdmin(UserAdmin, GuardedModelAdmin):
class DjangoLDPUserAdmin(UserAdmin, DjangoLDPAdmin):
'''An extension of UserAdmin providing the functionality of DjangoLDPAdmin'''
list_display = ('urlid', 'email', 'first_name', 'last_name', 'date_joined', 'last_login', 'is_staff')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment