From 2482e004779b6f5ddca12e6e200c8c08e737b612 Mon Sep 17 00:00:00 2001 From: Joshua Casey <joshua.caseyd@gmail.com> Date: Tue, 23 May 2017 02:16:08 +0700 Subject: [PATCH] [#46] Modified student serializer to include number of companies accepting him --- core/serializers/accounts.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/serializers/accounts.py b/core/serializers/accounts.py index 25440942..cd98fdb0 100644 --- a/core/serializers/accounts.py +++ b/core/serializers/accounts.py @@ -2,7 +2,7 @@ from django.contrib.auth.models import User from rest_framework import serializers from core.models.accounts import Supervisor, Company, Student - +from core.models.vacancies import Application class BasicUserSerializer(serializers.HyperlinkedModelSerializer): class Meta: @@ -13,11 +13,17 @@ class BasicUserSerializer(serializers.HyperlinkedModelSerializer): class StudentSerializer(serializers.ModelSerializer): user = BasicUserSerializer() name = serializers.ReadOnlyField() + accepted_no = serializers.SerializerMethodField() class Meta: model = Student fields = ['id', 'name', 'user', 'npm', 'resume', 'phone_number', 'birth_place', 'birth_date', 'major', 'batch', \ - 'show_transcript', 'photo'] + 'show_transcript', 'photo', 'accepted_no'] + + def get_accepted_no(self, obj): + apps = Application.objects.filter(student=obj, status=4) + companies = apps.values('vacancy__company').distinct() + return companies.count() class StudentUpdateSerializer(serializers.ModelSerializer): -- GitLab