From a2ca826289e168cf749a14f86adcab73b98e941b Mon Sep 17 00:00:00 2001 From: Toksi Date: Thu, 4 Dec 2025 22:54:03 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=B2?= =?UTF-8?q?=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B0=D1=8E=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=BE=D1=86=D0=B5=D0=BD=D0=BA=D0=B8=20=D0=BA=D0=B0?= =?UTF-8?q?=D0=B6=D0=B4=D0=BE=D0=B3=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8F=20=D0=B8=D0=BD=D0=B4?= =?UTF-8?q?=D0=B8=D0=B2=D0=B8=D0=B4=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE,?= =?UTF-8?q?=20=D0=B0=20=D0=BD=D0=B5=20=D0=B2=D1=81=D0=B5=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project_rates/serializers.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/project_rates/serializers.py b/project_rates/serializers.py index f21afb8b..b1b32294 100644 --- a/project_rates/serializers.py +++ b/project_rates/serializers.py @@ -97,19 +97,26 @@ def _get_program_scores(self, obj): project=obj, criteria__partner_program_id=program_id ).select_related("criteria", "user") + def _get_user_scores(self, obj): + scores = self._get_program_scores(obj) + request = self.context.get("request") + if request and getattr(request.user, "is_authenticated", False): + return [score for score in scores if score.user_id == request.user.id] + return [] + def get_criterias(self, obj) -> CriteriasResponse | ProjectScoresResponse: + user_scores = self._get_user_scores(obj) + if user_scores: + serializer = ProjectScoreSerializer(user_scores, many=True) + return serializer.data program_id = self.context["view"].kwargs.get("program_id") - program_scores = self._get_program_scores(obj) - if program_scores: - serializer = ProjectScoreSerializer(program_scores, many=True) - else: - cirterias = Criteria.objects.filter(partner_program__id=program_id) - serializer = CriteriaSerializer(cirterias, many=True) + criterias = Criteria.objects.filter(partner_program__id=program_id) + serializer = CriteriaSerializer(criterias, many=True) return serializer.data def get_scored(self, obj) -> bool: - program_scores = self._get_program_scores(obj) - return bool(program_scores) + user_scores = self._get_user_scores(obj) + return bool(user_scores) def get_rated_experts(self, obj) -> list[int]: program_scores = self._get_program_scores(obj)