File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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 )
Original file line number Diff line number Diff line change 11from rest_framework import serializers
22
3+ from core .fields import CustomListField
34from industries .models import Industry
45from projects .models import Project , Achievement , Collaborator
56from 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
105106class ProjectListSerializer (serializers .ModelSerializer ):
106-
107107 collaborators = serializers .SerializerMethodField (method_name = "get_collaborators" )
108108 collaborator_count = serializers .SerializerMethodField (
109109 method_name = "get_collaborator_count"
Original file line number Diff line number Diff 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" ,
Original file line number Diff line number Diff line change 11from django .contrib .auth import get_user_model
22from rest_framework import serializers
33
4+ from core .fields import CustomListField
45from projects .models import Project
56from users .serializers import UserDetailSerializer
67from vacancy .models import Vacancy , VacancyResponse
@@ -20,7 +21,8 @@ class Meta:
2021
2122
2223class 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
3944class 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
5161class ProjectVacancyListSerializer (serializers .ModelSerializer ):
62+ required_skills = CustomListField (child = serializers .CharField ())
63+
5264 class Meta :
5365 model = Vacancy
5466 fields = [
Original file line number Diff line number Diff 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" ])
You can’t perform that action at this time.
0 commit comments