mirror of
https://github.com/makeplane/plane.git
synced 2025-12-16 11:57:56 +01:00
47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
# Module imports
|
|
from .base import BaseSerializer
|
|
|
|
from plane.db.models import Estimate, EstimatePoint
|
|
|
|
from rest_framework import serializers
|
|
|
|
|
|
class EstimateSerializer(BaseSerializer):
|
|
class Meta:
|
|
model = Estimate
|
|
fields = "__all__"
|
|
read_only_fields = ["workspace", "project"]
|
|
|
|
|
|
class EstimatePointSerializer(BaseSerializer):
|
|
def validate(self, data):
|
|
if not data:
|
|
raise serializers.ValidationError("Estimate points are required")
|
|
value = data.get("value")
|
|
if value and len(value) > 20:
|
|
raise serializers.ValidationError("Value can't be more than 20 characters")
|
|
return data
|
|
|
|
class Meta:
|
|
model = EstimatePoint
|
|
fields = "__all__"
|
|
read_only_fields = ["estimate", "workspace", "project"]
|
|
|
|
|
|
class EstimateReadSerializer(BaseSerializer):
|
|
points = EstimatePointSerializer(read_only=True, many=True)
|
|
|
|
class Meta:
|
|
model = Estimate
|
|
fields = "__all__"
|
|
read_only_fields = ["points", "name", "description"]
|
|
|
|
|
|
class WorkspaceEstimateSerializer(BaseSerializer):
|
|
points = EstimatePointSerializer(read_only=True, many=True)
|
|
|
|
class Meta:
|
|
model = Estimate
|
|
fields = "__all__"
|
|
read_only_fields = ["points", "name", "description"]
|