1111 CriteriaSerializer ,
1212 ProjectScoreSerializer ,
1313 ProjectScoreGetSerializer ,
14+ serialize_data_func ,
1415)
1516from users .permissions import IsExpert
1617
@@ -22,19 +23,22 @@ class RateProject(generics.CreateAPIView):
2223 permission_classes = [IsExpert ]
2324
2425 def create (self , request , * args , ** kwargs ):
25- try :
26- data = self .request .data
27- data ["user" ] = self .request .user .id
28-
29- serializer = self .get_serializer (data = data )
30- if serializer .is_valid ():
31- serializer .save ()
32- self .perform_create (serializer )
33- return Response ({"success" : True }, status = status .HTTP_201_CREATED )
34- else :
35- return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
36- except Exception as e :
37- return Response ({"error" : str (e )}, status = status .HTTP_400_BAD_REQUEST )
26+ # try:
27+ data = self .request .data
28+
29+ user = self .request .user .id
30+ project_id = self .kwargs .get ("project_id" )
31+
32+ criteria_to_get = []
33+ for criterion in data :
34+ criterion ["user_id" ] = user
35+ criterion ["project_id" ] = project_id
36+ criteria_to_get .append (criterion ["criterion_id" ])
37+
38+ serialize_data_func (criteria_to_get , data )
39+ ProjectScore .objects .bulk_create ([ProjectScore (** score ) for score in data ])
40+
41+ return Response ({"success" : True }, status = status .HTTP_201_CREATED )
3842
3943
4044class RateProjects (generics .ListAPIView ):
0 commit comments