Skip to content

Commit dd5e0b2

Browse files
committed
hansard sitting post from pipeline working
1 parent 268e063 commit dd5e0b2

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

src/api/serializers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ class Meta:
1818

1919

2020
class SittingSerializer(serializers.ModelSerializer):
21-
cycle_id = serializers.PrimaryKeyRelatedField(
22-
source="cycle", queryset=ParliamentaryCycle.objects.all(), write_only=True
23-
)
21+
# cycle_id = serializers.PrimaryKeyRelatedField(
22+
# source="cycle", queryset=ParliamentaryCycle.objects.all(), write_only=True
23+
# )
2424
cycle = ParliamentaryCycleSerializer(read_only=True)
2525

2626
class Meta:

src/api/views.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)