diff --git a/accounts/api/serializers.py b/accounts/api/serializers.py index 4bf250f..cf60003 100644 --- a/accounts/api/serializers.py +++ b/accounts/api/serializers.py @@ -8,7 +8,7 @@ from accounts.models import ( IAmPrincipalType, # IAmPrincipalKYCDetails, ) -from manage_events.models import PrincipalPreference +from manage_events.models import EventPrincipalInteraction, PrincipalPreference from manage_referrals.models import ( ReferralCode, ReferralRecord, @@ -144,6 +144,8 @@ class ProfileSerializer(serializers.ModelSerializer): has_preferences = serializers.SerializerMethodField(read_only=True) register_complete = serializers.BooleanField(read_only=True) is_active = serializers.BooleanField(read_only=True) + going_events_count = serializers.SerializerMethodField(read_only=True) + interested_events_count = serializers.SerializerMethodField(read_only=True) class Meta: model = IAmPrincipal @@ -165,6 +167,8 @@ class ProfileSerializer(serializers.ModelSerializer): "instagram_profile", "website", "is_active", + "going_events_count", + "interested_events_count", ] def update(self, instance, validated_data): @@ -175,6 +179,16 @@ class ProfileSerializer(serializers.ModelSerializer): instance.last_name = validated_data.get("last_name", instance.last_name) return super().update(instance, validated_data) + def get_going_events_count(self, obj): + return EventPrincipalInteraction.objects.filter( + principal=obj, status="going" + ).count() + + def get_interested_events_count(self, obj): + return EventPrincipalInteraction.objects.filter( + principal=obj, status="interested" + ).count() + def get_invite_count(self, obj): if obj: return ReferralRecord.get_invite_count(obj) diff --git a/templates/manage_wallets/account_list.html b/templates/manage_wallets/account_list.html index c3a89b7..937bf63 100644 --- a/templates/manage_wallets/account_list.html +++ b/templates/manage_wallets/account_list.html @@ -42,6 +42,9 @@