common api
This commit is contained in:
67
outreach/serializers.py
Normal file
67
outreach/serializers.py
Normal file
@@ -0,0 +1,67 @@
|
||||
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}"
|
||||
|
||||
Reference in New Issue
Block a user