From 531732681fbb3de5df5d4e4c24364a7c84945550 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Thu, 8 Jun 2023 14:22:54 -0400
Subject: [PATCH] fix: get the timeslot_pk from the request path if timeslot_id
 is missing

---
 program/serializers.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/program/serializers.py b/program/serializers.py
index bf44de1c..c1c84962 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -787,7 +787,12 @@ class NoteSerializer(serializers.ModelSerializer):
         contributors = validated_data.pop("contributors", [])
 
         # required
-        validated_data["timeslot"] = validated_data.pop("timeslot_id")
+        if "timeslot_id" in validated_data:
+            validated_data["timeslot"] = validated_data.pop("timeslot_id")
+        else:
+            # TODO: Once we remove nested routes, this hack should be removed
+            timeslot_pk = TimeSlot.objects.get(pk=self.context["request"].path.split("/")[-3])
+            validated_data["timeslot"] = validated_data.pop("timeslot_id", timeslot_pk)
 
         # optional
         validated_data["image"] = validated_data.pop("image_id", None)
@@ -826,10 +831,10 @@ class NoteSerializer(serializers.ModelSerializer):
 
         instance.cba_id = validated_data.get("cba_id", instance.cba_id)
         instance.content = validated_data.get("content", instance.content)
-        instance.image = validated_data.get("image", instance.image_id)
+        instance.image = validated_data.get("image_id", instance.image)
         instance.slug = validated_data.get("slug", instance.slug)
         instance.summary = validated_data.get("summary", instance.summary)
-        instance.timeslot = validated_data.get("timeslot", instance.timeslot_id)
+        instance.timeslot = validated_data.get("timeslot_id", instance.timeslot)
         instance.title = validated_data.get("title", instance.title)
 
         instance.contributors.set(validated_data.get("contributors", instance.contributors))
-- 
GitLab