@@ -195,9 +195,7 @@ def get(self, request, slug, project_id):
195195
196196 # Current Cycle
197197 if cycle_view == "current" :
198- queryset = queryset .filter (
199- start_date__lte = timezone .now (), end_date__gte = timezone .now ()
200- )
198+ queryset = queryset .filter (start_date__lte = timezone .now (), end_date__gte = timezone .now ())
201199 data = CycleSerializer (
202200 queryset ,
203201 many = True ,
@@ -254,9 +252,7 @@ def get(self, request, slug, project_id):
254252
255253 # Incomplete Cycles
256254 if cycle_view == "incomplete" :
257- queryset = queryset .filter (
258- Q (end_date__gte = timezone .now ()) | Q (end_date__isnull = True )
259- )
255+ queryset = queryset .filter (Q (end_date__gte = timezone .now ()) | Q (end_date__isnull = True ))
260256 return self .paginate (
261257 request = request ,
262258 queryset = (queryset ),
@@ -302,17 +298,10 @@ def post(self, request, slug, project_id):
302298 Create a new development cycle with specified name, description, and date range.
303299 Supports external ID tracking for integration purposes.
304300 """
305- if (
306- request .data .get ("start_date" , None ) is None
307- and request .data .get ("end_date" , None ) is None
308- ) or (
309- request .data .get ("start_date" , None ) is not None
310- and request .data .get ("end_date" , None ) is not None
301+ if (request .data .get ("start_date" , None ) is None and request .data .get ("end_date" , None ) is None ) or (
302+ request .data .get ("start_date" , None ) is not None and request .data .get ("end_date" , None ) is not None
311303 ):
312-
313- serializer = CycleCreateSerializer (
314- data = request .data , context = {"request" : request }
315- )
304+ serializer = CycleCreateSerializer (data = request .data , context = {"request" : request })
316305 if serializer .is_valid ():
317306 if (
318307 request .data .get ("external_id" )
@@ -355,9 +344,7 @@ def post(self, request, slug, project_id):
355344 return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
356345 else :
357346 return Response (
358- {
359- "error" : "Both start date and end date are either required or are to be null"
360- },
347+ {"error" : "Both start date and end date are either required or are to be null" },
361348 status = status .HTTP_400_BAD_REQUEST ,
362349 )
363350
@@ -505,9 +492,7 @@ def patch(self, request, slug, project_id, pk):
505492 """
506493 cycle = Cycle .objects .get (workspace__slug = slug , project_id = project_id , pk = pk )
507494
508- current_instance = json .dumps (
509- CycleSerializer (cycle ).data , cls = DjangoJSONEncoder
510- )
495+ current_instance = json .dumps (CycleSerializer (cycle ).data , cls = DjangoJSONEncoder )
511496
512497 if cycle .archived_at :
513498 return Response (
@@ -520,30 +505,22 @@ def patch(self, request, slug, project_id, pk):
520505 if cycle .end_date is not None and cycle .end_date < timezone .now ():
521506 if "sort_order" in request_data :
522507 # Can only change sort order
523- request_data = {
524- "sort_order" : request_data .get ("sort_order" , cycle .sort_order )
525- }
508+ request_data = {"sort_order" : request_data .get ("sort_order" , cycle .sort_order )}
526509 else :
527510 return Response (
528- {
529- "error" : "The Cycle has already been completed so it cannot be edited"
530- },
511+ {"error" : "The Cycle has already been completed so it cannot be edited" },
531512 status = status .HTTP_400_BAD_REQUEST ,
532513 )
533514
534- serializer = CycleUpdateSerializer (
535- cycle , data = request .data , partial = True , context = {"request" : request }
536- )
515+ serializer = CycleUpdateSerializer (cycle , data = request .data , partial = True , context = {"request" : request })
537516 if serializer .is_valid ():
538517 if (
539518 request .data .get ("external_id" )
540519 and (cycle .external_id != request .data .get ("external_id" ))
541520 and Cycle .objects .filter (
542521 project_id = project_id ,
543522 workspace__slug = slug ,
544- external_source = request .data .get (
545- "external_source" , cycle .external_source
546- ),
523+ external_source = request .data .get ("external_source" , cycle .external_source ),
547524 external_id = request .data .get ("external_id" ),
548525 ).exists ()
549526 ):
@@ -600,11 +577,7 @@ def delete(self, request, slug, project_id, pk):
600577 status = status .HTTP_403_FORBIDDEN ,
601578 )
602579
603- cycle_issues = list (
604- CycleIssue .objects .filter (cycle_id = self .kwargs .get ("pk" )).values_list (
605- "issue" , flat = True
606- )
607- )
580+ cycle_issues = list (CycleIssue .objects .filter (cycle_id = self .kwargs .get ("pk" )).values_list ("issue" , flat = True ))
608581
609582 issue_activity .delay (
610583 type = "cycle.activity.deleted" ,
@@ -624,9 +597,7 @@ def delete(self, request, slug, project_id, pk):
624597 # Delete the cycle
625598 cycle .delete ()
626599 # Delete the user favorite cycle
627- UserFavorite .objects .filter (
628- entity_type = "cycle" , entity_identifier = pk , project_id = project_id
629- ).delete ()
600+ UserFavorite .objects .filter (entity_type = "cycle" , entity_identifier = pk , project_id = project_id ).delete ()
630601 return Response (status = status .HTTP_204_NO_CONTENT )
631602
632603
@@ -764,9 +735,7 @@ def get(self, request, slug, project_id):
764735 return self .paginate (
765736 request = request ,
766737 queryset = (self .get_queryset ()),
767- on_results = lambda cycles : CycleSerializer (
768- cycles , many = True , fields = self .fields , expand = self .expand
769- ).data ,
738+ on_results = lambda cycles : CycleSerializer (cycles , many = True , fields = self .fields , expand = self .expand ).data ,
770739 )
771740
772741 @cycle_docs (
@@ -785,9 +754,7 @@ def post(self, request, slug, project_id, cycle_id):
785754 Move a completed cycle to archived status for historical tracking.
786755 Only cycles that have ended can be archived.
787756 """
788- cycle = Cycle .objects .get (
789- pk = cycle_id , project_id = project_id , workspace__slug = slug
790- )
757+ cycle = Cycle .objects .get (pk = cycle_id , project_id = project_id , workspace__slug = slug )
791758 if cycle .end_date >= timezone .now ():
792759 return Response (
793760 {"error" : "Only completed cycles can be archived" },
@@ -818,9 +785,7 @@ def delete(self, request, slug, project_id, cycle_id):
818785 Restore an archived cycle to active status, making it available for regular use.
819786 The cycle will reappear in active cycle lists.
820787 """
821- cycle = Cycle .objects .get (
822- pk = cycle_id , project_id = project_id , workspace__slug = slug
823- )
788+ cycle = Cycle .objects .get (pk = cycle_id , project_id = project_id , workspace__slug = slug )
824789 cycle .archived_at = None
825790 cycle .save ()
826791 return Response (status = status .HTTP_204_NO_CONTENT )
@@ -883,9 +848,7 @@ def get(self, request, slug, project_id, cycle_id):
883848 # List
884849 order_by = request .GET .get ("order_by" , "created_at" )
885850 issues = (
886- Issue .issue_objects .filter (
887- issue_cycle__cycle_id = cycle_id , issue_cycle__deleted_at__isnull = True
888- )
851+ Issue .issue_objects .filter (issue_cycle__cycle_id = cycle_id , issue_cycle__deleted_at__isnull = True )
889852 .annotate (
890853 sub_issues_count = Issue .issue_objects .filter (parent = OuterRef ("id" ))
891854 .order_by ()
@@ -922,9 +885,7 @@ def get(self, request, slug, project_id, cycle_id):
922885 return self .paginate (
923886 request = request ,
924887 queryset = (issues ),
925- on_results = lambda issues : IssueSerializer (
926- issues , many = True , fields = self .fields , expand = self .expand
927- ).data ,
888+ on_results = lambda issues : IssueSerializer (issues , many = True , fields = self .fields , expand = self .expand ).data ,
928889 )
929890
930891 @cycle_docs (
@@ -958,9 +919,7 @@ def post(self, request, slug, project_id, cycle_id):
958919 status = status .HTTP_400_BAD_REQUEST ,
959920 )
960921
961- cycle = Cycle .objects .get (
962- workspace__slug = slug , project_id = project_id , pk = cycle_id
963- )
922+ cycle = Cycle .objects .get (workspace__slug = slug , project_id = project_id , pk = cycle_id )
964923
965924 if cycle .end_date is not None and cycle .end_date < timezone .now ():
966925 return Response (
@@ -972,13 +931,9 @@ def post(self, request, slug, project_id, cycle_id):
972931 )
973932
974933 # Get all CycleWorkItems already created
975- cycle_issues = list (
976- CycleIssue .objects .filter (~ Q (cycle_id = cycle_id ), issue_id__in = issues )
977- )
934+ cycle_issues = list (CycleIssue .objects .filter (~ Q (cycle_id = cycle_id ), issue_id__in = issues ))
978935 existing_issues = [
979- str (cycle_issue .issue_id )
980- for cycle_issue in cycle_issues
981- if str (cycle_issue .issue_id ) in issues
936+ str (cycle_issue .issue_id ) for cycle_issue in cycle_issues if str (cycle_issue .issue_id ) in issues
982937 ]
983938 new_issues = list (set (issues ) - set (existing_issues ))
984939
@@ -1029,9 +984,7 @@ def post(self, request, slug, project_id, cycle_id):
1029984 current_instance = json .dumps (
1030985 {
1031986 "updated_cycle_issues" : update_cycle_issue_activity ,
1032- "created_cycle_issues" : serializers .serialize (
1033- "json" , created_records
1034- ),
987+ "created_cycle_issues" : serializers .serialize ("json" , created_records ),
1035988 }
1036989 ),
1037990 epoch = int (timezone .now ().timestamp ()),
@@ -1107,9 +1060,7 @@ def get(self, request, slug, project_id, cycle_id, issue_id):
11071060 cycle_id = cycle_id ,
11081061 issue_id = issue_id ,
11091062 )
1110- serializer = CycleIssueSerializer (
1111- cycle_issue , fields = self .fields , expand = self .expand
1112- )
1063+ serializer = CycleIssueSerializer (cycle_issue , fields = self .fields , expand = self .expand )
11131064 return Response (serializer .data , status = status .HTTP_200_OK )
11141065
11151066 @cycle_docs (
@@ -1214,7 +1165,7 @@ def post(self, request, slug, project_id, cycle_id):
12141165 {"error" : "New Cycle Id is required" },
12151166 status = status .HTTP_400_BAD_REQUEST ,
12161167 )
1217-
1168+
12181169 old_cycle = Cycle .objects .get (
12191170 workspace__slug = slug ,
12201171 project_id = project_id ,
0 commit comments