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