From 1363d22e89467f42c40a2229b75c6824b876c981 Mon Sep 17 00:00:00 2001 From: Christophe Siraut Date: Fri, 15 Nov 2024 15:04:34 +0100 Subject: [PATCH] aircox/forms/episode: limit available sounds --- aircox/forms/episode.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/aircox/forms/episode.py b/aircox/forms/episode.py index b288656..0166d3f 100644 --- a/aircox/forms/episode.py +++ b/aircox/forms/episode.py @@ -14,8 +14,18 @@ class EpisodeForm(ChildPageForm): fields = ChildPageForm.Meta.fields +class EpisodeSoundForm(forms.ModelForm): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + if "instance" in kwargs: + """Limit available sounds.""" + episode_sounds = kwargs["instance"].episode.episodesound_set.all() + self.fields["sound"].queryset = models.Sound.objects.filter(id__in=[x.sound.id for x in episode_sounds]) + + EpisodeSoundFormSet = modelformset_factory( models.EpisodeSound, + form=EpisodeSoundForm, fields=( "position", "episode",