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

feat: add update method to PlaylistSerializer

parent b6c69f79
No related branches found
No related tags found
1 merge request!59Add playlists
Pipeline #8700 passed
......@@ -1527,3 +1527,33 @@ class PlaylistSerializer(serializers.ModelSerializer):
PlaylistEntry.objects.create(playlist=playlist, **entry_data)
return playlist
def update(self, instance, validated_data):
"""Update an existing Playlist instance, given the validated data."""
user = self.context["request"].user
user_is_owner = user in instance.show.owners.all()
# having the update_playlist permission overrules the ownership
if not (user.has_perm("program.update_playlist") or user_is_owner):
raise exceptions.PermissionDenied(
detail="You are not allowed to update this playlist."
)
if "description" in validated_data:
instance.description = validated_data.pop("description")
if "playout_mode" in validated_data:
instance.playout_mode = validated_data.pop("playout_mode")
if "entries" in validated_data:
if instance.entries.count() > 0:
for entry in instance.entries.all():
entry.delete(keep_parents=True)
for entry_data in validated_data.get("entries"):
PlaylistEntry.objects.create(playlist=instance, **entry_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