mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-18 18:26:27 +00:00
27 lines
924 B
Python
27 lines
924 B
Python
from django.utils.translation import gettext_lazy as _
|
|
from django_tables2.export import TableExport as TableExport_
|
|
|
|
from utilities.constants import CSV_DELIMITERS
|
|
|
|
__all__ = (
|
|
'TableExport',
|
|
)
|
|
|
|
|
|
class TableExport(TableExport_):
|
|
"""
|
|
A subclass of django-tables2's TableExport class which allows us to specify a delimiting
|
|
characters for CSV exports.
|
|
"""
|
|
def __init__(self, *args, delimiter=None, **kwargs):
|
|
if delimiter and delimiter not in CSV_DELIMITERS.keys():
|
|
raise ValueError(_("Invalid delimiter name: {name}").format(name=delimiter))
|
|
self.delimiter = delimiter or 'comma'
|
|
super().__init__(*args, **kwargs)
|
|
|
|
def export(self):
|
|
if self.format == self.CSV and self.delimiter is not None:
|
|
delimiter = CSV_DELIMITERS[self.delimiter]
|
|
return self.dataset.export(self.format, delimiter=delimiter)
|
|
return super().export()
|