Update csv_export.py

This commit is contained in:
zandercymatics 2024-11-25 15:33:47 -07:00
parent e2bd982c27
commit 4013815a04
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7

View file

@ -88,6 +88,13 @@ class BaseExport(ABC):
"""
pass
@classmethod
def get_columns(cls):
"""
Returns the columns for CSV export. Override in subclasses as needed.
"""
return []
@classmethod
def get_sort_fields(cls):
"""
@ -152,6 +159,21 @@ class BaseExport(ABC):
Get a list of fields from related tables.
"""
return []
@classmethod
def update_queryset(cls, queryset, **kwargs):
"""
Returns an updated queryset. Override in subclass to update queryset.
"""
return queryset
@classmethod
def write_csv_before(cls, csv_writer, **kwargs):
"""
Write to csv file before the write_csv method.
Override in subclasses where needed.
"""
pass
@classmethod
def annotate_and_retrieve_fields(
@ -218,32 +240,10 @@ class BaseExport(ABC):
)
return cls.annotate_and_retrieve_fields(model_queryset, annotated_fields, related_table_fields, **kwargs)
@classmethod
def update_queryset(cls, queryset, **kwargs):
"""
Returns an updated queryset. Override in subclass to update queryset.
"""
return queryset
@classmethod
def get_model_annotation_dict(cls, **kwargs):
return convert_queryset_to_dict(cls.get_annotated_queryset(**kwargs), is_model=False)
@classmethod
def get_columns(cls):
"""
Returns the columns for CSV export. Override in subclasses as needed.
"""
return []
@classmethod
def write_csv_before(cls, csv_writer, **kwargs):
"""
Write to csv file before the write_csv method.
Override in subclasses where needed.
"""
pass
@classmethod
def export_data_to_csv(cls, csv_file, **kwargs):
"""