Skip to content

Commit 5a91f66

Browse files
committed
Merge branch 'dev'
2 parents f468723 + deb8903 commit 5a91f66

5 files changed

Lines changed: 29 additions & 6 deletions

File tree

core/fields.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from rest_framework import serializers
2+
3+
4+
class CustomListField(serializers.ListField):
5+
def to_representation(self, data):
6+
return [value.strip() for value in data.split(",") if value.strip()]
7+
8+
def to_internal_value(self, data):
9+
return ",".join(data)

projects/serializers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from rest_framework import serializers
22

3+
from core.fields import CustomListField
34
from industries.models import Industry
45
from projects.models import Project, Achievement, Collaborator
56
from projects.validators import validate_project
@@ -34,7 +35,7 @@ class CollaboratorSerializer(serializers.ModelSerializer):
3435
first_name = serializers.CharField(source="user.first_name")
3536
last_name = serializers.CharField(source="user.last_name")
3637
avatar = serializers.CharField(source="user.avatar")
37-
key_skills = serializers.CharField(source="user.key_skills")
38+
key_skills = CustomListField(child=serializers.CharField(), source="user.key_skills")
3839

3940
class Meta:
4041
model = Collaborator
@@ -103,7 +104,6 @@ class Meta:
103104

104105

105106
class ProjectListSerializer(serializers.ModelSerializer):
106-
107107
collaborators = serializers.SerializerMethodField(method_name="get_collaborators")
108108
collaborator_count = serializers.SerializerMethodField(
109109
method_name="get_collaborator_count"

users/admin.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class CustomUserAdmin(admin.ModelAdmin):
4141
"region",
4242
"organization",
4343
"speciality",
44+
"key_skills",
4445
)
4546
},
4647
),
@@ -67,12 +68,13 @@ class CustomUserAdmin(admin.ModelAdmin):
6768
)
6869

6970
list_display = (
71+
"id",
7072
"email",
7173
"last_name",
7274
"first_name",
73-
"id",
7475
)
7576
list_display_links = (
77+
"id",
7678
"email",
7779
"first_name",
7880
"last_name",

vacancy/serializers.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from django.contrib.auth import get_user_model
22
from rest_framework import serializers
33

4+
from core.fields import CustomListField
45
from projects.models import Project
56
from users.serializers import UserDetailSerializer
67
from vacancy.models import Vacancy, VacancyResponse
@@ -20,7 +21,8 @@ class Meta:
2021

2122

2223
class VacancyDetailSerializer(serializers.ModelSerializer):
23-
project = ProjectForVacancySerializer(many=False)
24+
project = ProjectForVacancySerializer(many=False, read_only=True)
25+
required_skills = serializers.ListSerializer(child=serializers.CharField())
2426

2527
class Meta:
2628
model = Vacancy
@@ -34,9 +36,14 @@ class Meta:
3436
"datetime_created",
3537
"datetime_updated",
3638
]
39+
read_only_fields = [
40+
"project",
41+
]
3742

3843

3944
class VacancyListSerializer(serializers.ModelSerializer):
45+
required_skills = CustomListField(child=serializers.CharField())
46+
4047
class Meta:
4148
model = Vacancy
4249
fields = [
@@ -46,9 +53,14 @@ class Meta:
4653
"description",
4754
"is_active",
4855
]
56+
read_only_fields = [
57+
"project",
58+
]
4959

5060

5161
class ProjectVacancyListSerializer(serializers.ModelSerializer):
62+
required_skills = CustomListField(child=serializers.CharField())
63+
5264
class Meta:
5365
model = Vacancy
5466
fields = [

vacancy/tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def setUp(self):
2222
self.user_project_owner = self.user_create()
2323
self.vacancy_create_data = {
2424
"role": "Test",
25-
"required_skills": "Test",
25+
"required_skills": ["Test"],
2626
"description": "Test",
2727
"is_active": True,
2828
"project": Project.objects.create(
@@ -41,7 +41,7 @@ def test_vacancy_creation(self):
4141

4242
self.assertEqual(response.status_code, 201)
4343
self.assertEqual(response.data["role"], "Test")
44-
self.assertEqual(response.data["required_skills"], "Test")
44+
self.assertEqual(response.data["required_skills"], ["Test"])
4545
self.assertEqual(response.data["description"], "Test")
4646
self.assertEqual(response.data["is_active"], True)
4747
self.assertEqual(response.data["project"], self.vacancy_create_data["project"])

0 commit comments

Comments
 (0)