This commit is contained in:
zandercymatics 2024-11-14 13:22:05 -07:00
parent 10c01870d7
commit b7f3f083fc
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
2 changed files with 12 additions and 44 deletions

View file

@ -496,7 +496,7 @@ class DomainDataType(DomainExport):
return ["domain__permissions"] return ["domain__permissions"]
@classmethod @classmethod
def get_annotated_fields(cls, delimiter=", "): def get_annotated_fields(cls, delimiter=", ", **kwargs):
""" """
Get a dict of computed fields. Get a dict of computed fields.
""" """
@ -713,7 +713,7 @@ class DomainDataFull(DomainExport):
) )
@classmethod @classmethod
def get_annotated_fields(cls, delimiter=", "): def get_annotated_fields(cls, delimiter=", ", **kwargs):
""" """
Get a dict of computed fields. Get a dict of computed fields.
""" """
@ -808,7 +808,7 @@ class DomainDataFederal(DomainExport):
) )
@classmethod @classmethod
def get_annotated_fields(cls, delimiter=", "): def get_annotated_fields(cls, delimiter=", ", **kwargs):
""" """
Get a dict of computed fields. Get a dict of computed fields.
""" """
@ -1427,7 +1427,7 @@ class DomainRequestDataFull(DomainRequestExport):
] ]
@classmethod @classmethod
def get_annotated_fields(cls, delimiter=", "): def get_annotated_fields(cls, delimiter=", ", **kwargs):
""" """
Get a dict of computed fields. Get a dict of computed fields.
""" """

View file

@ -91,14 +91,14 @@ class BaseModelAnnotation(ABC):
return Q() return Q()
@classmethod @classmethod
def get_filter_conditions(cls, **export_kwargs): def get_filter_conditions(cls, **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.
""" """
return Q() return Q()
@classmethod @classmethod
def get_annotated_fields(cls): def get_annotated_fields(cls, **kwargs):
""" """
Get a dict of computed fields. These are fields that do not exist on the model normally Get a dict of computed fields. These are fields that do not exist on the model normally
and will be passed to .annotate() when building a queryset. and will be passed to .annotate() when building a queryset.
@ -169,7 +169,7 @@ class BaseModelAnnotation(ABC):
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(**kwargs) filter_conditions = cls.get_filter_conditions(**kwargs)
annotated_fields = cls.get_annotated_fields() annotated_fields = cls.get_annotated_fields(**kwargs)
related_table_fields = cls.get_related_table_fields() related_table_fields = cls.get_related_table_fields()
model_queryset = ( model_queryset = (
@ -218,7 +218,7 @@ class UserPortfolioPermissionModelAnnotation(BaseModelAnnotation):
return ["user"] return ["user"]
@classmethod @classmethod
def get_filter_conditions(cls, portfolio): def get_filter_conditions(cls, portfolio, **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.
""" """
@ -319,27 +319,11 @@ class UserPortfolioPermissionModelAnnotation(BaseModelAnnotation):
output_field=CharField() output_field=CharField()
), ),
} }
@classmethod @classmethod
def get_annotated_queryset(cls, portfolio, csv_report=False): def get_annotated_queryset(cls, portfolio, csv_report=False):
"""Override of the base annotated queryset to pass in portfolio""" """Override of the base annotated queryset to pass in portfolio"""
model_queryset = ( return super().get_annotated_queryset(portfolio=portfolio, csv_report=csv_report)
cls.model()
.objects
.select_related(*cls.get_select_related())
.prefetch_related(*cls.get_prefetch_related())
.filter(cls.get_filter_conditions(portfolio))
.exclude(cls.get_exclusions())
.annotate(**cls.get_annotations_for_sort())
.order_by(*cls.get_sort_fields())
.distinct()
)
annotated_fields = cls.get_annotated_fields(portfolio, csv_report)
related_table_fields = cls.get_related_table_fields()
return cls.annotate_and_retrieve_fields(
model_queryset, annotated_fields, related_table_fields
)
class PortfolioInvitationModelAnnotation(BaseModelAnnotation): class PortfolioInvitationModelAnnotation(BaseModelAnnotation):
@ -362,7 +346,7 @@ class PortfolioInvitationModelAnnotation(BaseModelAnnotation):
return Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED) return Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED)
@classmethod @classmethod
def get_filter_conditions(cls, portfolio): def get_filter_conditions(cls, portfolio, **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.
""" """
@ -439,20 +423,4 @@ class PortfolioInvitationModelAnnotation(BaseModelAnnotation):
@classmethod @classmethod
def get_annotated_queryset(cls, portfolio, csv_report=False): def get_annotated_queryset(cls, portfolio, csv_report=False):
"""Override of the base annotated queryset to pass in portfolio""" """Override of the base annotated queryset to pass in portfolio"""
model_queryset = ( return super().get_annotated_queryset(portfolio=portfolio, csv_report=csv_report)
cls.model()
.objects
.select_related(*cls.get_select_related())
.prefetch_related(*cls.get_prefetch_related())
.filter(cls.get_filter_conditions(portfolio))
.exclude(cls.get_exclusions())
.annotate(**cls.get_annotations_for_sort())
.order_by(*cls.get_sort_fields())
.distinct()
)
annotated_fields = cls.get_annotated_fields(portfolio, csv_report)
related_table_fields = cls.get_related_table_fields()
return cls.annotate_and_retrieve_fields(
model_queryset, annotated_fields, related_table_fields
)