From b11c2cc207cd3c456bccef3fcb6dc131342dc751 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Tue, 5 Sep 2023 21:14:35 -0400
Subject: [PATCH] feat: add ownerIds

---
 program/serializers.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/program/serializers.py b/program/serializers.py
index 1c3d2d83..c4006ef5 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -296,6 +296,9 @@ class HostSerializer(serializers.ModelSerializer):
         allow_null=True, queryset=Image.objects.all(), required=False, source="image"
     )
     links = HostLinkSerializer(many=True, required=False)
+    owner_ids = serializers.PrimaryKeyRelatedField(
+        allow_null=True, many=True, queryset=User.objects.all(), source="owners"
+    )
 
     class Meta:
         model = Host
@@ -313,6 +316,7 @@ class HostSerializer(serializers.ModelSerializer):
             "is_active",
             "links",
             "name",
+            "owner_ids",
         ) + read_only_fields
 
     def create(self, validated_data):
@@ -321,7 +325,7 @@ class HostSerializer(serializers.ModelSerializer):
         """
 
         links_data = validated_data.pop("links", [])
-
+        owners = validated_data.pop("owners", [])
         validated_data["image"] = validated_data.pop("image_id", None)
 
         host = Host.objects.create(
@@ -331,6 +335,8 @@ class HostSerializer(serializers.ModelSerializer):
         for link_data in links_data:
             HostLink.objects.create(host=host, **link_data)
 
+        host.owners.set(owners)
+
         host.save()
 
         return host
@@ -352,6 +358,8 @@ class HostSerializer(serializers.ModelSerializer):
             for link_data in links_data:
                 HostLink.objects.create(host=instance, **link_data)
 
+        instance.owners.set(validated_data.get("owners", instance.owners))
+
         instance.updated_by = self.context.get("request").user.username
 
         instance.save()
-- 
GitLab