Skip to content
Snippets Groups Projects
Commit b8bd58c7 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Add ShowLinkSerializer und update ShowSerializer

parent 8ddfc345
No related branches found
No related tags found
No related merge requests found
Pipeline #1885 passed
......@@ -38,6 +38,7 @@ from program.models import (
NoteLink,
Schedule,
Show,
ShowLink,
TimeSlot,
Topic,
Type,
......@@ -269,7 +270,14 @@ class FundingCategorySerializer(serializers.ModelSerializer):
fields = ("id", "fundingcategory", "abbrev", "slug", "is_active")
class ShowLinkSerializer(serializers.ModelSerializer):
class Meta:
model = ShowLink
fields = ("description", "url")
class ShowSerializer(serializers.HyperlinkedModelSerializer):
links = HostLinkSerializer(many=True, required=False)
owners = serializers.PrimaryKeyRelatedField(queryset=User.objects.all(), many=True)
category = serializers.PrimaryKeyRelatedField(
queryset=Category.objects.all(), many=True
......@@ -333,6 +341,7 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
"thumbnails",
"is_active",
"is_public",
"links"
)
def create(self, validated_data):
......@@ -346,6 +355,7 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
language = validated_data.pop("language")
topic = validated_data.pop("topic")
music_focus = validated_data.pop("music_focus")
links_data = validated_data.pop("links", [])
show = Show.objects.create(**validated_data)
......@@ -357,6 +367,9 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
show.topic.set(topic)
show.music_focus.set(music_focus)
for link_data in links_data:
ShowLink.objects.create(show=show, **link_data)
show.save()
return show
......@@ -399,7 +412,16 @@ class ShowSerializer(serializers.HyperlinkedModelSerializer):
validated_data.get("music_focus", instance.music_focus)
)
if instance.links.count() > 0:
for link in instance.links.all():
link.delete(keep_parents=True)
if links_data := validated_data.get("links"):
for link_data in links_data:
ShowLink.objects.create(show=instance, **link_data)
instance.save()
return instance
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment