diff --git a/sponsor/admin.py b/sponsor/admin.py index 4c0bddd..cf92fd9 100644 --- a/sponsor/admin.py +++ b/sponsor/admin.py @@ -20,8 +20,9 @@ class SponsorAdmin(SummernoteModelAdmin): "submitted", "accepted", "paid_at", + "year", ) - list_filter = ("accepted", "submitted") + list_filter = ("accepted", "submitted", "paid_at") ordering = ("-created_at",) diff --git a/sponsor/models.py b/sponsor/models.py index 2cd4351..e87df7c 100644 --- a/sponsor/models.py +++ b/sponsor/models.py @@ -67,7 +67,7 @@ def accepted_count(self): return Sponsor.objects.filter(level=self, submitted=True, accepted=True).count() def __str__(self): - return self.name + return f"({self.year}) {self.name}" class BenefitByLevel(models.Model): diff --git a/sponsor/serializers.py b/sponsor/serializers.py index d87b308..5a948dd 100644 --- a/sponsor/serializers.py +++ b/sponsor/serializers.py @@ -82,10 +82,6 @@ class Meta: class SponsorLevelSerializer(serializers.ModelSerializer): - benefits = SponsorBenefitWithOfferSerializer( - many=True, read_only=True, source="benefit_by_level" - ) - class Meta: model = SponsorLevel fields = [ @@ -96,11 +92,19 @@ class Meta: "price", "limit", "order", - "benefits", ] read_only_fields = ["id"] +class SponsorLevelWithBenefitSerializer(SponsorLevelSerializer): + benefits = SponsorBenefitWithOfferSerializer( + many=True, read_only=True, source="benefit_by_level" + ) + + class Meta(SponsorLevelSerializer.Meta): + fields = SponsorLevelSerializer.Meta.fields + ["benefits"] + + class SponsorSummariesSerializer(serializers.ModelSerializer): class Meta: model = Sponsor diff --git a/sponsor/viewsets.py b/sponsor/viewsets.py index 59d5f2a..faa5f30 100644 --- a/sponsor/viewsets.py +++ b/sponsor/viewsets.py @@ -16,11 +16,11 @@ PatronListSerializer, SponsorBenefitSerializer, SponsorDetailSerializer, - SponsorLevelSerializer, SponsorListSerializer, SponsorRemainingAccountSerializer, SponsorSerializer, SponsorWithLevelSerializer, + SponsorLevelWithBenefitSerializer, ) from sponsor.slack import send_new_sponsor_notification from sponsor.validators import SponsorValidater @@ -49,7 +49,7 @@ def get_serializer_class(self): case "list_with_levels": return SponsorWithLevelSerializer case _: - return SponsorLevelSerializer + return SponsorLevelWithBenefitSerializer @action(detail=False, methods=["GET"], url_path="with-sponsor") def list_with_levels(self, request, version):