@@ -90,7 +90,8 @@ def _add_to_result(levels, data, result):
9090 current_level .append (data )
9191
9292
93- def _speeches_to_json (df_sitting ):
93+ def _speeches_to_json (speech_data ):
94+ df_sitting = pd .DataFrame (json .loads (speech_data ))
9495 result = []
9596 for index , row in df_sitting .iterrows ():
9697 speech_dict = {
@@ -149,9 +150,20 @@ def post(self, request):
149150 if serializer .is_valid ():
150151 try :
151152 # convert speech_data to JSON string
152- speeches_list = request .data .get ("speech_data" )
153- speech_data = _speeches_to_json (speeches_list )
154- serializer .validated_data ["speech_data" ] = json .dumps (speech_data )
153+ speech_data = request .data .get ("speech_data" )
154+ speeches_list = json .loads (speech_data )
155+ # speech_data = _speeches_to_json(speeches_list)
156+ serializer .validated_data ["speech_data" ] = speech_data
157+
158+ # Get parliamentary cycle ID given house_types, and date that falls between start_date and end_date
159+ cycle = ParliamentaryCycle .objects .get (
160+ house = ParliamentaryCycle .get_integer_value (
161+ request .data .get ("house" )
162+ ),
163+ start_date__lte = request .data .get ("date" ),
164+ end_date__gte = request .data .get ("date" ),
165+ )
166+ serializer .validated_data ["cycle_id" ] = cycle .cycle_id
155167
156168 # First create the sitting record
157169 sitting = serializer .save ()
@@ -170,9 +182,9 @@ def post(self, request):
170182 "speech" : speech .get ("speech" , "" ),
171183 "speech_tokens" : speech .get ("speech_tokens" , []),
172184 "length" : speech .get ("length" , 0 ),
173- "level_1" : speech .get ("level_1" , "" ),
174- "level_2" : speech .get ("level_2" , "" ),
175- "level_3" : speech .get ("level_3" , "" ),
185+ "level_1" : speech .get ("level_1" , None ),
186+ "level_2" : speech .get ("level_2" , None ),
187+ "level_3" : speech .get ("level_3" , None ),
176188 "is_annotation" : speech .get ("is_annotation" , False ),
177189 }
178190 )
0 commit comments