You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.9 KiB
111 lines
2.9 KiB
from rest_framework.serializers import ModelSerializer, ImageField, FileField, SerializerMethodField, ReadOnlyField
|
|
|
|
from .models import User, Team, ContractorResumeFiles, ContractorResume
|
|
from projects.models import Project
|
|
# from projects.serializers import AnswerSerializer
|
|
from specializations.serializers import SpecializationSerializer
|
|
|
|
|
|
class ContractorResumeSerializer(ModelSerializer):
|
|
class Meta:
|
|
model = ContractorResume
|
|
|
|
fields = (
|
|
'id',
|
|
'resume_file',
|
|
'text',
|
|
)
|
|
|
|
|
|
class ContractorResumeFilesSerializer(ModelSerializer):
|
|
class Meta:
|
|
model = ContractorResumeFiles
|
|
|
|
fields = (
|
|
'id',
|
|
'description',
|
|
'img',
|
|
'resume',
|
|
'title',
|
|
'type',
|
|
'resume',
|
|
)
|
|
|
|
|
|
class UserSerializer(ModelSerializer):
|
|
_type = SerializerMethodField() # Distinguish when used with generic serializers
|
|
id = ReadOnlyField()
|
|
|
|
class Meta:
|
|
model = User
|
|
|
|
fields = (
|
|
'_type',
|
|
'avatar',
|
|
'contractor_specializations',
|
|
'contractor_status',
|
|
'created',
|
|
'cro',
|
|
'date_of_birth',
|
|
'email',
|
|
'financial_info',
|
|
'first_name',
|
|
'gender',
|
|
'has_team',
|
|
'id',
|
|
'is_active',
|
|
'is_contractor',
|
|
'is_customer',
|
|
'last_name',
|
|
'last_time_visit',
|
|
'location',
|
|
'patronym',
|
|
'skype',
|
|
'username',
|
|
'website',
|
|
)
|
|
|
|
def get__type(self, obj):
|
|
return 'User'
|
|
|
|
# def create(self, validated_data):
|
|
# return User.objects.create(**validated_data)
|
|
|
|
# def update(self, inst, validated_data):
|
|
# inst.email = validated_data.get('email', inst.email)
|
|
# inst.first_name = validated_data.get('first_name', inst.first_name)
|
|
# inst.is_active = validated_data.get('is_active', inst.is_active)
|
|
# inst.last_name = validated_data.get('last_name', inst.last_name)
|
|
# # inst.projects = validated_data.get('projects', inst.projects)
|
|
#
|
|
# inst.save()
|
|
#
|
|
# return inst
|
|
|
|
|
|
class TeamSerializer(ModelSerializer):
|
|
_type = SerializerMethodField() # Distinguish when used with generic serializers
|
|
# answers = AnswerSerializer(many=True)
|
|
contractors = UserSerializer(many=True)
|
|
owner = UserSerializer()
|
|
specializations = SpecializationSerializer(many=True)
|
|
|
|
class Meta:
|
|
model = Team
|
|
|
|
fields = (
|
|
'_type',
|
|
# 'answers',
|
|
'contractors',
|
|
'created',
|
|
'id',
|
|
'name',
|
|
'owner',
|
|
'specializations',
|
|
)
|
|
|
|
def get__type(self, obj):
|
|
return 'Team'
|
|
|
|
|
|
# import code; code.interact(local=dict(globals(), **locals()))
|
|
|