Files
ProFi/outreach/serializers.py

68 lines
2.0 KiB
Python
Raw Permalink Normal View History

2025-05-19 17:10:30 +03:00
from rest_framework import serializers
from .models import (
InstitutionType,
Representative,
School,
Partner,
PartnerRepresentative,
SchoolResponsibility,
)
class InstitutionTypeSerializer(serializers.ModelSerializer):
class Meta:
model = InstitutionType
fields = "__all__"
class RepresentativeSerializer(serializers.ModelSerializer):
full_name = serializers.SerializerMethodField()
class Meta:
model = Representative
fields = ["id", "first_name", "last_name", "middle_name", "phone", "email", "position", "full_name"]
def get_full_name(self, obj):
return f"{obj.first_name} {obj.last_name}" + (f" {obj.middle_name}" if obj.middle_name else "")
class SchoolSerializer(serializers.ModelSerializer):
director_name = serializers.SerializerMethodField()
class Meta:
model = School
fields = ["id", "director", "institution_type", "name", "address", "director_name"]
def get_director_name(self, obj):
if obj.director:
return f"{obj.director.first_name} {obj.director.last_name}"
return None
class PartnerSerializer(serializers.ModelSerializer):
class Meta:
model = Partner
fields = "__all__"
class PartnerRepresentativeSerializer(serializers.ModelSerializer):
representative_name = serializers.SerializerMethodField()
class Meta:
model = PartnerRepresentative
fields = ["id", "representative", "partner", "representative_name"]
def get_representative_name(self, obj):
return f"{obj.representative.first_name} {obj.representative.last_name}"
class SchoolResponsibilitySerializer(serializers.ModelSerializer):
responsible_name = serializers.SerializerMethodField()
class Meta:
model = SchoolResponsibility
fields = ["id", "academic_year", "responsible", "school", "responsible_name"]
def get_responsible_name(self, obj):
return f"{obj.responsible.account.first_name} {obj.responsible.account.last_name}"