44
55# Module imports
66from .base import BaseSerializer
7- from plane .db .models import Cycle , CycleIssue , User
7+ from plane .db .models import Cycle , CycleIssue , User , Project
88from plane .utils .timezone_converter import convert_to_utc
99
1010
@@ -55,6 +55,18 @@ class Meta:
5555 ]
5656
5757 def validate (self , data ):
58+ project_id = self .initial_data .get ("project_id" ) or (
59+ self .instance .project_id if self .instance and hasattr (self .instance , "project_id" ) else None
60+ )
61+
62+ if not project_id :
63+ raise serializers .ValidationError ("Project ID is required" )
64+
65+ project = Project .objects .filter (id = project_id ).first ()
66+ if not project :
67+ raise serializers .ValidationError ("Project not found" )
68+ if not project .cycle_view :
69+ raise serializers .ValidationError ("Cycles are not enabled for this project" )
5870 if (
5971 data .get ("start_date" , None ) is not None
6072 and data .get ("end_date" , None ) is not None
@@ -63,13 +75,6 @@ def validate(self, data):
6375 raise serializers .ValidationError ("Start date cannot exceed end date" )
6476
6577 if data .get ("start_date" , None ) is not None and data .get ("end_date" , None ) is not None :
66- project_id = self .initial_data .get ("project_id" ) or (
67- self .instance .project_id if self .instance and hasattr (self .instance , "project_id" ) else None
68- )
69-
70- if not project_id :
71- raise serializers .ValidationError ("Project ID is required" )
72-
7378 data ["start_date" ] = convert_to_utc (
7479 date = str (data .get ("start_date" ).date ()),
7580 project_id = project_id ,
0 commit comments