Skip to content

Commit e030828

Browse files
committed
add user.projcts.[role] to /auth/user/{id} route
1 parent 227ded3 commit e030828

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

users/serializers.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from core.services import get_views_count
66
from core.utils import get_user_online_cache_key
77
from projects.models import Project
8+
from projects.serializers import CollaboratorSerializer
89
from .models import CustomUser, Expert, Investor, Member, Mentor, UserAchievement
910

1011

@@ -94,9 +95,12 @@ def get_projects(cls, user: CustomUser):
9495
return UserProjectsSerializer(
9596
[
9697
collab.project
97-
for collab in user.collaborations.select_related("project").all()
98-
if not collab.project.draft
98+
for collab in user.collaborations.select_related("project").filter(
99+
project__is_draft=False
100+
)
101+
# TODO: put this in user collaborations manager or something
99102
],
103+
context={"request": cls.context.get("request")},
100104
many=True,
101105
).data
102106

@@ -213,7 +217,16 @@ def update(self, instance, validated_data):
213217

214218
class UserProjectsSerializer(serializers.ModelSerializer):
215219
short_description = serializers.SerializerMethodField()
216-
views_count = serializers.SerializerMethodField(method_name="get_views_count")
220+
views_count = serializers.SerializerMethodField()
221+
collaborator = serializers.SerializerMethodField()
222+
223+
@classmethod
224+
def get_collaborator(cls, project):
225+
user = cls.context.get("request").user
226+
227+
return CollaboratorSerializer(
228+
project.collaborator_set.filter(user=user), many=False
229+
).data
217230

218231
@classmethod
219232
def get_views_count(cls, project):
@@ -233,8 +246,9 @@ class Meta:
233246
"image_address",
234247
"industry",
235248
"views_count",
249+
"collaborator",
236250
]
237-
read_only_fields = ["leader"]
251+
read_only_fields = ["leader", "collaborator"]
238252

239253

240254
class UserListSerializer(serializers.ModelSerializer):

0 commit comments

Comments
 (0)