Skip to content

Commit 49db88a

Browse files
committed
Displaying projects that the user is a member of
1 parent f527555 commit 49db88a

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

users/serializers.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from django.core.cache import cache
44

55
from core.utils import get_user_online_cache_key
6+
from projects.models import Project
67
from .models import CustomUser, Expert, Investor, Member, Mentor, UserAchievement
78

89

@@ -85,6 +86,13 @@ class UserDetailSerializer(serializers.ModelSerializer):
8586
key_skills = KeySkillsField(required=False)
8687
links = serializers.SerializerMethodField()
8788
is_online = serializers.SerializerMethodField()
89+
projects = serializers.SerializerMethodField()
90+
91+
@classmethod
92+
def get_projects(cls, user: CustomUser):
93+
return UserProjectsSerializer(
94+
[collab.project for collab in user.collaborations.all()], many=True
95+
).data
8896

8997
@classmethod
9098
def get_links(cls, user: CustomUser):
@@ -122,6 +130,7 @@ class Meta:
122130
"achievements",
123131
"verification_date",
124132
"onboarding_stage",
133+
"projects",
125134
]
126135

127136
def update(self, instance, validated_data):
@@ -195,6 +204,28 @@ def update(self, instance, validated_data):
195204
return instance
196205

197206

207+
class UserProjectsSerializer(serializers.ModelSerializer):
208+
short_description = serializers.SerializerMethodField()
209+
210+
@classmethod
211+
def get_short_description(cls, project):
212+
return project.get_short_description()
213+
214+
class Meta:
215+
model = Project
216+
fields = [
217+
"id",
218+
"name",
219+
"leader",
220+
"short_description",
221+
"image_address",
222+
"industry",
223+
]
224+
read_only_fields = [
225+
"leader",
226+
]
227+
228+
198229
class UserListSerializer(serializers.ModelSerializer):
199230
member = MemberSerializer(required=False)
200231
key_skills = KeySkillsField(required=False)

0 commit comments

Comments
 (0)