diff --git a/aircox/views/episode.py b/aircox/views/episode.py index bde5dcd..0aaff13 100644 --- a/aircox/views/episode.py +++ b/aircox/views/episode.py @@ -5,7 +5,7 @@ from django.urls import reverse from django.utils.translation import gettext_lazy as _ from django.views.generic.base import View -from aircox.models import Episode, Program, StaticPage, Track +from aircox.models import Episode, Program, StaticPage, Sound, Track from aircox import forms, filters, permissions from .mixins import VueFormDataMixin @@ -144,6 +144,14 @@ class EpisodeUpdateView(UserPassesTestMixin, VueFormDataMixin, PageUpdateView): for key in ("soundlist_formset", "tracklist_formset"): formset = kwargs[key] kwargs[f"{key}_data"] = self.get_formset_data(formset, {"episode": self.object.id}) + + for i, episode_sound in enumerate(kwargs["soundlist_formset_data"]["initials"]): + # annotate sound properties for vuejs + sound = Sound.objects.get(id=episode_sound["sound"]) + kwargs["soundlist_formset_data"]["initials"][i]["name"] = sound.name + kwargs["soundlist_formset_data"]["initials"][i]["url"] = sound.file.url + kwargs["soundlist_formset_data"]["initials"][i]["delete_attr_name"] = f"sounds-{i}-DELETE" + return super().get_context_data(**kwargs) def post(self, request, *args, **kwargs):