diff --git a/apis_core/generic/views.py b/apis_core/generic/views.py index 155b8d99c..bb14f1678 100644 --- a/apis_core/generic/views.py +++ b/apis_core/generic/views.py @@ -1,5 +1,6 @@ from collections import namedtuple from copy import copy +from datetime import datetime from dal import autocomplete from django import forms, http @@ -21,6 +22,7 @@ from django_filters.views import FilterView from django_tables2 import SingleTableMixin from django_tables2.columns import library +from django_tables2.export.views import ExportMixin from django_tables2.tables import table_factory from apis_core.apis_metainfo.models import Uri @@ -100,6 +102,7 @@ def get_permission_required(self): class List( GenericModelMixin, PermissionRequiredMixin, + ExportMixin, SingleTableMixin, FilterView, ): @@ -123,6 +126,11 @@ def get_table_class(self): table_class = first_member_match(table_modules, GenericTable) return table_factory(self.model, table_class) + def get_export_filename(self, extension): + now = datetime.now() + filename = f"{self.get_table_class().__name__}_{now.strftime('%Y-%m-%d_%H-%M-%S')}.{extension}" + return filename + def get_table_kwargs(self): kwargs = super().get_table_kwargs()