* dev: new proxy api setup * dev: updated endpoints with serializers and structure * dev: external apis for cycles, modules and inbox issue * dev: order by for all the apis * dev: enable webhooks for external apis * dev: fields and expand for the apis * dev: move authentication to proxy middleware * dev: fix imports * dev: api serializer updates and paginator * dev: renamed api to app * dev: renamed proxy to api * dev: validation for project, issues, modules and cycles * dev: remove favourites from project apis * dev: states api * dev: rewrite the url endpoints * dev: exception handling for the apis * dev: merge updated structure * dev: remove attachment apis * dev: issue activities endpoints
49 lines
No EOL
1.5 KiB
Python
49 lines
No EOL
1.5 KiB
Python
# Third party imports
|
|
from rest_framework import serializers
|
|
|
|
# Module imports
|
|
from .base import BaseSerializer
|
|
from plane.db.models import Cycle, CycleIssue
|
|
|
|
|
|
class CycleSerializer(BaseSerializer):
|
|
total_issues = serializers.IntegerField(read_only=True)
|
|
cancelled_issues = serializers.IntegerField(read_only=True)
|
|
completed_issues = serializers.IntegerField(read_only=True)
|
|
started_issues = serializers.IntegerField(read_only=True)
|
|
unstarted_issues = serializers.IntegerField(read_only=True)
|
|
backlog_issues = serializers.IntegerField(read_only=True)
|
|
total_estimates = serializers.IntegerField(read_only=True)
|
|
completed_estimates = serializers.IntegerField(read_only=True)
|
|
started_estimates = serializers.IntegerField(read_only=True)
|
|
|
|
def validate(self, data):
|
|
if (
|
|
data.get("start_date", None) is not None
|
|
and data.get("end_date", None) is not None
|
|
and data.get("start_date", None) > data.get("end_date", None)
|
|
):
|
|
raise serializers.ValidationError("Start date cannot exceed end date")
|
|
return data
|
|
|
|
class Meta:
|
|
model = Cycle
|
|
fields = "__all__"
|
|
read_only_fields = [
|
|
"workspace",
|
|
"project",
|
|
"owned_by",
|
|
]
|
|
|
|
|
|
class CycleIssueSerializer(BaseSerializer):
|
|
sub_issues_count = serializers.IntegerField(read_only=True)
|
|
|
|
class Meta:
|
|
model = CycleIssue
|
|
fields = "__all__"
|
|
read_only_fields = [
|
|
"workspace",
|
|
"project",
|
|
"cycle",
|
|
] |