You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.5 KiB
Python
97 lines
2.5 KiB
Python
# serializers.py in Osina app
|
|
from rest_framework import serializers
|
|
from osinacore.models import *
|
|
|
|
|
|
class BusinessTypeSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = BusinessType
|
|
fields = "__all__"
|
|
|
|
class StaffProfileSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = StaffProfile
|
|
fields = "__all__"
|
|
|
|
class DepartmentSerializer(serializers.ModelSerializer):
|
|
|
|
class Meta:
|
|
model = Department
|
|
fields = "__all__"
|
|
|
|
|
|
|
|
class JobPositionSerializer(serializers.ModelSerializer):
|
|
department = DepartmentSerializer()
|
|
|
|
class Meta:
|
|
model = JobPosition
|
|
fields = "__all__"
|
|
|
|
|
|
class UserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = "__all__"
|
|
|
|
class CustomerProfileSerializer(serializers.ModelSerializer):
|
|
user = UserSerializer()
|
|
reference_name = serializers.CharField(source='reference.name', read_only=True)
|
|
|
|
class Meta:
|
|
model = CustomerProfile
|
|
fields = "__all__"
|
|
|
|
class StaffProfileSerializer(serializers.ModelSerializer):
|
|
user = UserSerializer()
|
|
|
|
class Meta:
|
|
model = StaffProfile
|
|
fields = "__all__"
|
|
|
|
|
|
|
|
class ProjectTypeSerializer(serializers.ModelSerializer):
|
|
|
|
|
|
class Meta:
|
|
model = ProjectType
|
|
fields = "__all__"
|
|
|
|
|
|
class ProjectStatusSerializer(serializers.ModelSerializer):
|
|
|
|
|
|
class Meta:
|
|
model = ProjectStatus
|
|
fields = "__all__"
|
|
|
|
class ProjectSerializer(serializers.ModelSerializer):
|
|
#types = ProjectTypeSerializer(read_only=True, many=True, source="project_type")
|
|
#members = StaffProfileSerializer(read_only=True, many=True)
|
|
#manager = StaffProfileSerializer(read_only=True, many=False)
|
|
#statuses = ProjectStatusSerializer(read_only=True, many=True, source="projectstatus_set")
|
|
|
|
class Meta:
|
|
model = Project
|
|
fields = "__all__"
|
|
|
|
#def to_representation(self, instance):
|
|
#representation = super().to_representation(instance)
|
|
|
|
# Exclude manager from members list
|
|
#manager_id = representation.get("manager", {}).get("id")
|
|
#if manager_id:
|
|
#representation["members"] = [
|
|
#member for member in representation["members"]
|
|
#if member.get("id") != manager_id
|
|
#]
|
|
#return representation
|
|
|
|
|
|
class EpicSerializer(serializers.ModelSerializer):
|
|
project = ProjectSerializer(read_only=True)
|
|
|
|
class Meta:
|
|
model = Epic
|
|
fields = "__all__" |