Replace 'default format' export with 'all data'

This commit is contained in:
jeremystretch 2021-06-09 15:22:58 -04:00
parent 3ec6194a47
commit 578885225f
2 changed files with 7 additions and 11 deletions

View File

@ -16,7 +16,7 @@ from django.utils.safestring import mark_safe
from django.views.generic import View from django.views.generic import View
from django_tables2.export import TableExport from django_tables2.export import TableExport
from extras.models import CustomField, ExportTemplate from extras.models import ExportTemplate
from utilities.error_handlers import handle_protectederror from utilities.error_handlers import handle_protectederror
from utilities.exceptions import AbortTransaction from utilities.exceptions import AbortTransaction
from utilities.forms import ( from utilities.forms import (
@ -24,7 +24,7 @@ from utilities.forms import (
) )
from utilities.permissions import get_permission_for_model from utilities.permissions import get_permission_for_model
from utilities.tables import paginate_table from utilities.tables import paginate_table
from utilities.utils import csv_format, normalize_querydict, prepare_cloned_fields from utilities.utils import normalize_querydict, prepare_cloned_fields
from utilities.views import GetReturnURLMixin, ObjectPermissionRequiredMixin from utilities.views import GetReturnURLMixin, ObjectPermissionRequiredMixin
@ -105,8 +105,7 @@ class ObjectListView(ObjectPermissionRequiredMixin, View):
Export all table data in CSV format. Export all table data in CSV format.
:param table: The Table instance to export :param table: The Table instance to export
:param columns: A list of specific columns to include. If not specified, the default view :param columns: A list of specific columns to include. If not specified, all columns will be exported.
will be exported.
""" """
exclude_columns = {'pk'} exclude_columns = {'pk'}
if columns: if columns:
@ -114,10 +113,6 @@ class ObjectListView(ObjectPermissionRequiredMixin, View):
exclude_columns.update({ exclude_columns.update({
col for col in all_columns if col not in columns col for col in all_columns if col not in columns
}) })
else:
exclude_columns.update({
name for name, _ in table.available_columns
})
exporter = TableExport( exporter = TableExport(
export_format=TableExport.CSV, export_format=TableExport.CSV,
table=table, table=table,
@ -171,9 +166,10 @@ class ObjectListView(ObjectPermissionRequiredMixin, View):
# Handle table-based exports (current view or static CSV-based) # Handle table-based exports (current view or static CSV-based)
if request.GET.get('export') == 'table': if request.GET.get('export') == 'table':
return self.export_table(table) columns = [name for name, _ in table.selected_columns]
return self.export_table(table, columns)
elif 'export' in request.GET: elif 'export' in request.GET:
return self.export_table(table, model.csv_headers) return self.export_table(table)
# Paginate the objects table # Paginate the objects table
paginate_table(table, request) paginate_table(table, request)

View File

@ -4,7 +4,7 @@
</button> </button>
<ul class="dropdown-menu dropdown-menu-end"> <ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="?{% if url_params %}{{ url_params.urlencode }}&{% endif %}export=table">Current View</a></li> <li><a class="dropdown-item" href="?{% if url_params %}{{ url_params.urlencode }}&{% endif %}export=table">Current View</a></li>
<li><a class="dropdown-item" href="?{% if url_params %}{{ url_params.urlencode }}&{% endif %}export">Default Format</a></li> <li><a class="dropdown-item" href="?{% if url_params %}{{ url_params.urlencode }}&{% endif %}export">All Data</a></li>
{% if export_templates %} {% if export_templates %}
<li> <li>
<hr class="dropdown-divider"> <hr class="dropdown-divider">