File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -71,6 +71,28 @@ class ProjectDetail(generics.RetrieveUpdateDestroyAPIView):
7171 serializer_class = ProjectDetailSerializer
7272 permission_classes = [IsProjectLeaderOrReadOnly ]
7373
74+ def put (self , request , pk ):
75+ # bootleg version of updating achievements via project
76+ if request .data .get ("achievements" ) is not None :
77+ achievements = request .data .get ("achievements" )
78+ for i in achievements :
79+ achievement_id = i .get ("id" )
80+ if achievement_id is None :
81+ Achievement .objects .create (
82+ title = i ["title" ],
83+ status = i ["status" ],
84+ project_id = pk ,
85+ )
86+ else :
87+ instance = Achievement .objects .get (id = achievement_id )
88+ i ["project" ] = pk
89+ serializer = AchievementDetailSerializer (
90+ instance , data = i , partial = False
91+ )
92+ serializer .is_valid (raise_exception = True )
93+ serializer .save ()
94+ return Response (status = status .HTTP_200_OK )
95+
7496
7597class ProjectCountView (generics .GenericAPIView ):
7698 queryset = Project .objects .get_projects_for_count_view ()
You can’t perform that action at this time.
0 commit comments