From eb62c21a48a1727e0b4ab7f5ea7ece070a45662b Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Wed, 23 Aug 2023 12:12:47 +0530 Subject: [PATCH] fix: date validation in cycle and module --- apiserver/plane/api/serializers/cycle.py | 10 ++++++++++ apiserver/plane/api/serializers/module.py | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/apiserver/plane/api/serializers/cycle.py b/apiserver/plane/api/serializers/cycle.py index 1abd63b7f..664368033 100644 --- a/apiserver/plane/api/serializers/cycle.py +++ b/apiserver/plane/api/serializers/cycle.py @@ -14,6 +14,11 @@ from plane.db.models import Cycle, CycleIssue, CycleFavorite class CycleWriteSerializer(BaseSerializer): + 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__" @@ -35,6 +40,11 @@ class CycleSerializer(BaseSerializer): started_estimates = serializers.IntegerField(read_only=True) workspace_detail = WorkspaceLiteSerializer(read_only=True, source="workspace") project_detail = ProjectLiteSerializer(read_only=True, source="project") + + 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 def get_assignees(self, obj): members = [ diff --git a/apiserver/plane/api/serializers/module.py b/apiserver/plane/api/serializers/module.py index a82a0f39f..aaabd4ae0 100644 --- a/apiserver/plane/api/serializers/module.py +++ b/apiserver/plane/api/serializers/module.py @@ -40,6 +40,11 @@ class ModuleWriteSerializer(BaseSerializer): "updated_at", ] + def validate(self, data): + if data.get("start_date", None) is not None and data.get("target_date", None) is not None and data.get("start_date", None) > data.get("target_date", None): + raise serializers.ValidationError("Start date cannot exceed target date") + return data + def create(self, validated_data): members = validated_data.pop("members_list", None)