Minor refactor

This commit is contained in:
zandercymatics 2024-07-16 11:15:14 -06:00
parent f347ff9c7f
commit 728a248d91
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
2 changed files with 24 additions and 13 deletions

View file

@ -108,7 +108,7 @@ class BaseExport(ABC):
return Q() return Q()
@classmethod @classmethod
def get_filter_conditions(cls, request=None, start_date=None, end_date=None): def get_filter_conditions(cls, **export_kwargs):
""" """
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """
@ -144,7 +144,7 @@ class BaseExport(ABC):
return queryset return queryset
@classmethod @classmethod
def write_csv_before(cls, csv_writer, start_date=None, end_date=None): def write_csv_before(cls, csv_writer, **export_kwargs):
""" """
Write to csv file before the write_csv method. Write to csv file before the write_csv method.
Override in subclasses where needed. Override in subclasses where needed.
@ -191,7 +191,7 @@ class BaseExport(ABC):
return cls.update_queryset(queryset, **kwargs) return cls.update_queryset(queryset, **kwargs)
@classmethod @classmethod
def export_data_to_csv(cls, csv_file, request=None, start_date=None, end_date=None): def export_data_to_csv(cls, csv_file, **export_kwargs):
""" """
All domain metadata: All domain metadata:
Exports domains of all statuses plus domain managers. Exports domains of all statuses plus domain managers.
@ -204,7 +204,7 @@ class BaseExport(ABC):
prefetch_related = cls.get_prefetch_related() prefetch_related = cls.get_prefetch_related()
exclusions = cls.get_exclusions() exclusions = cls.get_exclusions()
annotations_for_sort = cls.get_annotations_for_sort() annotations_for_sort = cls.get_annotations_for_sort()
filter_conditions = cls.get_filter_conditions(request, start_date, end_date) filter_conditions = cls.get_filter_conditions(**export_kwargs)
computed_fields = cls.get_computed_fields() computed_fields = cls.get_computed_fields()
related_table_fields = cls.get_related_table_fields() related_table_fields = cls.get_related_table_fields()
@ -226,7 +226,7 @@ class BaseExport(ABC):
models_dict = convert_queryset_to_dict(annotated_queryset, is_model=False) models_dict = convert_queryset_to_dict(annotated_queryset, is_model=False)
# Write to csv file before the write_csv # Write to csv file before the write_csv
cls.write_csv_before(writer, start_date, end_date) cls.write_csv_before(writer, **export_kwargs)
# Write the csv file # Write the csv file
cls.write_csv(writer, columns, models_dict) cls.write_csv(writer, columns, models_dict)
@ -273,6 +273,11 @@ class DomainExport(BaseExport):
Second class in an inheritance tree of 3. Second class in an inheritance tree of 3.
""" """
@classmethod
def export_data_to_csv(cls, csv_file, start_date=None, end_date=None):
"""Pass in the start_date and end_date variables to the report"""
super().export_data_to_csv(csv_file, start_date=start_date, end_date=end_date)
@classmethod @classmethod
def model(cls): def model(cls):
# Return the model class that this export handles # Return the model class that this export handles
@ -549,7 +554,12 @@ class DomainDataTypeUser(DomainDataType):
""" """
@classmethod @classmethod
def get_filter_conditions(cls, request=None, start_date=None, end_date=None): def export_data_to_csv(cls, csv_file, request=None):
"""Pass in the start_date and end_date variables to the report"""
super().export_data_to_csv(csv_file, request=request)
@classmethod
def get_filter_conditions(cls, request=None):
""" """
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """
@ -616,7 +626,7 @@ class DomainDataFull(DomainExport):
return ["domain"] return ["domain"]
@classmethod @classmethod
def get_filter_conditions(cls, request=None, start_date=None, end_date=None): def get_filter_conditions(cls):
""" """
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """
@ -711,7 +721,7 @@ class DomainDataFederal(DomainExport):
return ["domain"] return ["domain"]
@classmethod @classmethod
def get_filter_conditions(cls, request=None, start_date=None, end_date=None): def get_filter_conditions(cls):
""" """
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """
@ -809,7 +819,7 @@ class DomainGrowth(DomainExport):
return ["domain"] return ["domain"]
@classmethod @classmethod
def get_filter_conditions(cls, request=None, start_date=None, end_date=None): def get_filter_conditions(cls, start_date=None, end_date=None):
""" """
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """
@ -881,7 +891,7 @@ class DomainManaged(DomainExport):
return ["permissions"] return ["permissions"]
@classmethod @classmethod
def get_filter_conditions(cls, request=None, start_date=None, end_date=None): def get_filter_conditions(cls, start_date=None, end_date=None):
""" """
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """
@ -1016,7 +1026,7 @@ class DomainUnmanaged(DomainExport):
return ["permissions"] return ["permissions"]
@classmethod @classmethod
def get_filter_conditions(cls, request=None, start_date=None, end_date=None): def get_filter_conditions(cls, start_date=None, end_date=None):
""" """
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """
@ -1246,7 +1256,7 @@ class DomainRequestGrowth(DomainRequestExport):
] ]
@classmethod @classmethod
def get_filter_conditions(cls, request=None, start_date=None, end_date=None): def get_filter_conditions(cls, start_date=None, end_date=None):
""" """
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """

View file

@ -163,7 +163,7 @@ class ExportDataTypeUser(View):
# match the CSV example with all the fields # match the CSV example with all the fields
response = HttpResponse(content_type="text/csv") response = HttpResponse(content_type="text/csv")
response["Content-Disposition"] = 'attachment; filename="your-domains.csv"' response["Content-Disposition"] = 'attachment; filename="your-domains.csv"'
csv_export.DomainDataTypeUser.export_data_to_csv(response, request) csv_export.DomainDataTypeUser.export_data_to_csv(response, request=request)
return response return response
class ExportDataFull(View): class ExportDataFull(View):
@ -225,6 +225,7 @@ class ExportDataManagedDomains(View):
end_date = request.GET.get("end_date", "") end_date = request.GET.get("end_date", "")
response = HttpResponse(content_type="text/csv") response = HttpResponse(content_type="text/csv")
response["Content-Disposition"] = f'attachment; filename="managed-domains-{start_date}-to-{end_date}.csv"' response["Content-Disposition"] = f'attachment; filename="managed-domains-{start_date}-to-{end_date}.csv"'
# Note: start_date doesn't appear to be used in the underlying report - is ths intentional?
csv_export.DomainManaged.export_data_to_csv(response, start_date=start_date, end_date=end_date) csv_export.DomainManaged.export_data_to_csv(response, start_date=start_date, end_date=end_date)
return response return response