Skip to content

Commit a2ca826

Browse files
committed
Теперь возвращаются оценки каждого пользователя индивидуально, а не все разом
1 parent 6265ed8 commit a2ca826

1 file changed

Lines changed: 15 additions & 8 deletions

File tree

project_rates/serializers.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,19 +97,26 @@ def _get_program_scores(self, obj):
9797
project=obj, criteria__partner_program_id=program_id
9898
).select_related("criteria", "user")
9999

100+
def _get_user_scores(self, obj):
101+
scores = self._get_program_scores(obj)
102+
request = self.context.get("request")
103+
if request and getattr(request.user, "is_authenticated", False):
104+
return [score for score in scores if score.user_id == request.user.id]
105+
return []
106+
100107
def get_criterias(self, obj) -> CriteriasResponse | ProjectScoresResponse:
108+
user_scores = self._get_user_scores(obj)
109+
if user_scores:
110+
serializer = ProjectScoreSerializer(user_scores, many=True)
111+
return serializer.data
101112
program_id = self.context["view"].kwargs.get("program_id")
102-
program_scores = self._get_program_scores(obj)
103-
if program_scores:
104-
serializer = ProjectScoreSerializer(program_scores, many=True)
105-
else:
106-
cirterias = Criteria.objects.filter(partner_program__id=program_id)
107-
serializer = CriteriaSerializer(cirterias, many=True)
113+
criterias = Criteria.objects.filter(partner_program__id=program_id)
114+
serializer = CriteriaSerializer(criterias, many=True)
108115
return serializer.data
109116

110117
def get_scored(self, obj) -> bool:
111-
program_scores = self._get_program_scores(obj)
112-
return bool(program_scores)
118+
user_scores = self._get_user_scores(obj)
119+
return bool(user_scores)
113120

114121
def get_rated_experts(self, obj) -> list[int]:
115122
program_scores = self._get_program_scores(obj)

0 commit comments

Comments
 (0)