Skip to content

Commit 6fcb003

Browse files
authored
Merge pull request #275 from PROCOLLAB-github/fix_required_skills
fix required skills
2 parents 8222ffe + b585865 commit 6fcb003

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

vacancy/serializers.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
1+
12
from django.contrib.auth import get_user_model
23
from rest_framework import serializers
34

4-
from core.fields import CustomListField
55
from projects.models import Project
66
from users.serializers import UserDetailSerializer
77
from vacancy.models import Vacancy, VacancyResponse
88

99
User = get_user_model()
1010

1111

12+
class RequiredSkillsSerializerMixin(serializers.Serializer):
13+
required_skills = serializers.SerializerMethodField()
14+
15+
def get_required_skills(self, obj):
16+
skills_string = obj.required_skills
17+
skills = [skill.strip() for skill in skills_string.split(",") if skill.strip()]
18+
return skills
19+
20+
1221
class ProjectForVacancySerializer(serializers.ModelSerializer):
1322
class Meta:
1423
model = Project
@@ -20,9 +29,8 @@ class Meta:
2029
]
2130

2231

23-
class VacancyDetailSerializer(serializers.ModelSerializer):
32+
class VacancyDetailSerializer(serializers.ModelSerializer, RequiredSkillsSerializerMixin):
2433
project = ProjectForVacancySerializer(many=False, read_only=True)
25-
required_skills = serializers.ListSerializer(child=serializers.CharField())
2634

2735
class Meta:
2836
model = Vacancy
@@ -36,14 +44,10 @@ class Meta:
3644
"datetime_created",
3745
"datetime_updated",
3846
]
39-
read_only_fields = [
40-
"project",
41-
]
47+
read_only_fields = ["project"]
4248

4349

44-
class VacancyListSerializer(serializers.ModelSerializer):
45-
required_skills = CustomListField(child=serializers.CharField())
46-
50+
class VacancyListSerializer(serializers.ModelSerializer, RequiredSkillsSerializerMixin):
4751
class Meta:
4852
model = Vacancy
4953
fields = [
@@ -58,9 +62,9 @@ class Meta:
5862
]
5963

6064

61-
class ProjectVacancyListSerializer(serializers.ModelSerializer):
62-
required_skills = CustomListField(child=serializers.CharField())
63-
65+
class ProjectVacancyListSerializer(
66+
serializers.ModelSerializer, RequiredSkillsSerializerMixin
67+
):
6468
class Meta:
6569
model = Vacancy
6670
fields = [

0 commit comments

Comments
 (0)