diff --git a/invites/managers.py b/invites/managers.py index edb3552a..e71d0a6d 100644 --- a/invites/managers.py +++ b/invites/managers.py @@ -3,4 +3,4 @@ class InviteManager(Manager): def get_invite_for_list_view(self): - return self.get_queryset().select_related("project", "user") + return self.get_queryset().select_related("project", "project__leader", "user") diff --git a/invites/serializers.py b/invites/serializers.py index f9947a96..42a032e2 100644 --- a/invites/serializers.py +++ b/invites/serializers.py @@ -4,9 +4,22 @@ from invites.models import Invite from projects.models import Collaborator from projects.serializers import ProjectListSerializer +from users.models import CustomUser from users.serializers import UserDetailSerializer +class InviteSenderSerializer(serializers.ModelSerializer[CustomUser]): + class Meta: + model = CustomUser + fields = [ + "id", + "first_name", + "last_name", + "patronymic", + "avatar", + ] + + class InviteListSerializer(serializers.ModelSerializer[Invite]): class Meta: model = Invite @@ -67,6 +80,7 @@ def validate(self, attrs): class InviteDetailSerializer(serializers.ModelSerializer[Invite]): user = UserDetailSerializer(many=False, read_only=True) project = ProjectListSerializer(many=False, read_only=True) + sender = InviteSenderSerializer(source="project.leader", read_only=True) specialization = serializers.CharField( required=False, allow_null=True, allow_blank=True ) @@ -77,6 +91,7 @@ class Meta: "id", "project", "user", + "sender", "motivational_letter", "role", "specialization",