Skip to content

Commit bf31b4c

Browse files
committed
expose sponsor contact for pycon
1 parent de5afa0 commit bf31b4c

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

apps/sponsors/api.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,17 @@ def get(self, request, *args, **kwargs):
4545
sponsorships = sponsorships.filter(year=logo_filters.by_year)
4646
for sponsorship in sponsorships.select_related("sponsor").iterator():
4747
sponsor = sponsorship.sponsor
48+
contacts = [
49+
{
50+
"name": c.name,
51+
"email": c.email,
52+
"primary": c.primary,
53+
"administrative": c.administrative,
54+
"accounting": c.accounting,
55+
"manager": c.manager,
56+
}
57+
for c in sponsor.contacts.all()
58+
]
4859
base_data = {
4960
"sponsor_id": sponsor.id,
5061
"sponsor": sponsor.name,
@@ -55,6 +66,7 @@ def get(self, request, *args, **kwargs):
5566
"logo": sponsor.web_logo.url,
5667
"white_logo": sponsor.white_logo.url if sponsor.white_logo else None,
5768
"sponsor_url": sponsor.landing_page_url,
69+
"contacts": contacts,
5870
"start_date": sponsorship.start_date,
5971
"end_date": sponsorship.end_date,
6072
}

apps/sponsors/serializers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@
66
from apps.sponsors.models.enums import LogoPlacementChoices, PublisherChoices
77

88

9+
class SponsorContactSerializer(serializers.Serializer):
10+
"""Serializer for sponsor contact information."""
11+
12+
name = serializers.CharField()
13+
email = serializers.EmailField()
14+
primary = serializers.BooleanField()
15+
administrative = serializers.BooleanField()
16+
accounting = serializers.BooleanField()
17+
manager = serializers.BooleanField()
18+
19+
920
class LogoPlacementSerializer(serializers.Serializer):
1021
"""Serializer for sponsor logo placement data."""
1122

@@ -22,6 +33,7 @@ class LogoPlacementSerializer(serializers.Serializer):
2233
sponsor_url = serializers.URLField()
2334
level_name = serializers.CharField()
2435
level_order = serializers.IntegerField()
36+
contacts = SponsorContactSerializer(many=True, required=False)
2537

2638

2739
class AssetSerializer(serializers.ModelSerializer):

0 commit comments

Comments
 (0)