|
3 | 3 | from django.core.cache import cache |
4 | 4 |
|
5 | 5 | from core.utils import get_user_online_cache_key |
| 6 | +from projects.models import Project |
6 | 7 | from .models import CustomUser, Expert, Investor, Member, Mentor, UserAchievement |
7 | 8 |
|
8 | 9 |
|
@@ -85,6 +86,13 @@ class UserDetailSerializer(serializers.ModelSerializer): |
85 | 86 | key_skills = KeySkillsField(required=False) |
86 | 87 | links = serializers.SerializerMethodField() |
87 | 88 | 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 |
88 | 96 |
|
89 | 97 | @classmethod |
90 | 98 | def get_links(cls, user: CustomUser): |
@@ -122,6 +130,7 @@ class Meta: |
122 | 130 | "achievements", |
123 | 131 | "verification_date", |
124 | 132 | "onboarding_stage", |
| 133 | + "projects", |
125 | 134 | ] |
126 | 135 |
|
127 | 136 | def update(self, instance, validated_data): |
@@ -195,6 +204,28 @@ def update(self, instance, validated_data): |
195 | 204 | return instance |
196 | 205 |
|
197 | 206 |
|
| 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 | + |
198 | 229 | class UserListSerializer(serializers.ModelSerializer): |
199 | 230 | member = MemberSerializer(required=False) |
200 | 231 | key_skills = KeySkillsField(required=False) |
|
0 commit comments