125 lines
3.4 KiB
Python
125 lines
3.4 KiB
Python
from rest_framework import serializers
|
|
from ....models import *
|
|
from ....funcs import fullname_for_user
|
|
|
|
|
|
class Personal_change_mailing_status_Serializer(serializers.Serializer):
|
|
mailing_ID = serializers.IntegerField()
|
|
mailing_status = serializers.BooleanField()
|
|
|
|
|
|
class User_sync_Serializer(serializers.ModelSerializer):
|
|
id_1s = serializers.SerializerMethodField()
|
|
|
|
def get_id_1s(self, obj):
|
|
return obj.user_profile.id_1s
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = (
|
|
'id_1s',
|
|
)
|
|
|
|
|
|
class Profile_list_Serializer(serializers.ModelSerializer):
|
|
from GeneralApp.api.v1.communications.communications_api_serializers import Communications_create_Serializer
|
|
|
|
office_name = serializers.SerializerMethodField(required=False)
|
|
company_name = serializers.SerializerMethodField(required=False)
|
|
manager_name = serializers.SerializerMethodField(required=False)
|
|
company_client_type = serializers.SerializerMethodField(required=False)
|
|
|
|
communications = Communications_create_Serializer(many=True)
|
|
|
|
def get_company_client_type(self, obj):
|
|
try:
|
|
if obj and obj.company_obj:
|
|
return obj.company_obj.client_type
|
|
else:
|
|
return None
|
|
except:
|
|
return None
|
|
|
|
def get_office_name(self, obj):
|
|
try:
|
|
if obj and obj.office:
|
|
return obj.office.name
|
|
except:
|
|
return None
|
|
|
|
return None
|
|
|
|
def get_company_name(self, obj):
|
|
try:
|
|
if obj and obj.company_obj:
|
|
return obj.company_obj.name
|
|
except:
|
|
return None
|
|
|
|
return None
|
|
|
|
def get_manager_name(self, obj):
|
|
try:
|
|
if obj and obj.company_obj and obj.company_obj.manager_obj:
|
|
return '{0} {1}'.format(obj.company_obj.manager_obj.last_name, obj.company_obj.manager_obj.first_name)
|
|
except:
|
|
return None
|
|
|
|
return None
|
|
|
|
class Meta:
|
|
model = UserProfile
|
|
fields = (
|
|
'id',
|
|
'enable',
|
|
'company_obj', 'company_name',
|
|
'company_position', 'company_client_type',
|
|
'phone',
|
|
'delivery_address',
|
|
'office', 'office_name',
|
|
'departament',
|
|
'document_sign_person',
|
|
'work_start_D',
|
|
'work_finish_D',
|
|
'birthdate',
|
|
'comment',
|
|
'communications',
|
|
'priority_connect_type',
|
|
'modifiedDT',
|
|
'mailing_sets',
|
|
'manager_name'
|
|
)
|
|
|
|
|
|
class User_list_Serializer(serializers.ModelSerializer):
|
|
full_name = serializers.SerializerMethodField('get_full_name_user', required=False)
|
|
|
|
# user_profile = Profile_list_Serializer()
|
|
|
|
def get_full_name_user(self, obj):
|
|
name = fullname_for_user(obj)
|
|
if not name:
|
|
name = obj.email
|
|
return name
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = (
|
|
'id', 'full_name'
|
|
)
|
|
|
|
|
|
class Personal_list_Serializer(User_list_Serializer):
|
|
user_profile = Profile_list_Serializer()
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = (
|
|
'id', 'full_name', 'first_name', 'last_name', 'is_active', 'is_staff', 'user_profile', 'email'
|
|
)
|
|
extra_kwargs = {
|
|
'email': {'required': 'False'},
|
|
'first_name': {'required': 'False'},
|
|
'last_name': {'required': 'False'},
|
|
}
|