* dev: workspace states and estimates * refactor issue dropdown logic to help work properly with issues on global level * fix: project labels response change * fix label type * change store computed actions to computed functions from mobx-utils * fix: state response change * chore: project and workspace state change * fix state and label types * chore: state and label serializer change * modify state and label types * fix dropdown reset on project id change * fix label sort order --------- Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> Co-authored-by: Rahul R <rahulr@Rahuls-MacBook-Pro.local> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: Rahul R <rahul.ramesha@plane.so>
78 lines
1.9 KiB
Python
78 lines
1.9 KiB
Python
# Module imports
|
|
from .base import BaseSerializer
|
|
|
|
from plane.db.models import Estimate, EstimatePoint
|
|
from plane.app.serializers import (
|
|
WorkspaceLiteSerializer,
|
|
ProjectLiteSerializer,
|
|
)
|
|
|
|
from rest_framework import serializers
|
|
|
|
|
|
class EstimateSerializer(BaseSerializer):
|
|
workspace_detail = WorkspaceLiteSerializer(
|
|
read_only=True, source="workspace"
|
|
)
|
|
project_detail = ProjectLiteSerializer(read_only=True, source="project")
|
|
|
|
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)
|
|
workspace_detail = WorkspaceLiteSerializer(
|
|
read_only=True, source="workspace"
|
|
)
|
|
project_detail = ProjectLiteSerializer(read_only=True, source="project")
|
|
|
|
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",
|
|
]
|
|
|
|
|