diff --git a/apps/api/plane/api/serializers/cycle.py b/apps/api/plane/api/serializers/cycle.py index 6b7bfa442f..f2724231a2 100644 --- a/apps/api/plane/api/serializers/cycle.py +++ b/apps/api/plane/api/serializers/cycle.py @@ -4,7 +4,7 @@ from rest_framework import serializers # Module imports from .base import BaseSerializer -from plane.db.models import Cycle, CycleIssue, User +from plane.db.models import Cycle, CycleIssue, User, Project from plane.utils.timezone_converter import convert_to_utc @@ -55,6 +55,18 @@ class CycleCreateSerializer(BaseSerializer): ] def validate(self, data): + project_id = self.initial_data.get("project_id") or ( + self.instance.project_id if self.instance and hasattr(self.instance, "project_id") else None + ) + + if not project_id: + raise serializers.ValidationError("Project ID is required") + + project = Project.objects.filter(id=project_id).first() + if not project: + raise serializers.ValidationError("Project not found") + if not project.cycle_view: + raise serializers.ValidationError("Cycles are not enabled for this project") if ( data.get("start_date", None) is not None and data.get("end_date", None) is not None @@ -63,13 +75,6 @@ class CycleCreateSerializer(BaseSerializer): raise serializers.ValidationError("Start date cannot exceed end date") if data.get("start_date", None) is not None and data.get("end_date", None) is not None: - project_id = self.initial_data.get("project_id") or ( - self.instance.project_id if self.instance and hasattr(self.instance, "project_id") else None - ) - - if not project_id: - raise serializers.ValidationError("Project ID is required") - data["start_date"] = convert_to_utc( date=str(data.get("start_date").date()), project_id=project_id, diff --git a/apps/api/plane/api/serializers/module.py b/apps/api/plane/api/serializers/module.py index 77be453c88..d1e3b0d81a 100644 --- a/apps/api/plane/api/serializers/module.py +++ b/apps/api/plane/api/serializers/module.py @@ -10,6 +10,7 @@ from plane.db.models import ( ModuleMember, ModuleIssue, ProjectMember, + Project, ) @@ -53,6 +54,14 @@ class ModuleCreateSerializer(BaseSerializer): ] def validate(self, data): + project_id = self.context.get("project_id") + if not project_id: + raise serializers.ValidationError("Project ID is required") + project = Project.objects.get(id=project_id) + if not project: + raise serializers.ValidationError("Project not found") + if not project.module_view: + raise serializers.ValidationError("Modules are not enabled for this project") if ( data.get("start_date", None) is not None and data.get("target_date", None) is not None