]> git.0d.be Git - panikweb.git/commitdiff
add redirect to embed view, from episode to main soundfile
authorFrédéric Péters <fpeters@0d.be>
Wed, 3 Aug 2022 15:39:11 +0000 (17:39 +0200)
committerFrédéric Péters <fpeters@0d.be>
Wed, 3 Aug 2022 15:39:11 +0000 (17:39 +0200)
panikweb/urls.py
panikweb/views.py

index e0750b50f7b2af4a668a66c68cf9ba6ea7c2442c..dbed28b464e0d4769fff345048032b83dcc95f0d 100644 (file)
@@ -33,6 +33,11 @@ urlpatterns = [
         views.episode,
         name='episode-view',
     ),
+    url(
+        r'^%s(?P<emission_slug>[\w,-]+)/(?P<episode_slug>[\w,-]+)/embed/$' % settings.EMISSIONS_PREFIX,
+        views.episode_embed_redirect,
+        name='episode-embed-redirect-view',
+    ),
     url(
         r'^%s(?P<emission_slug>[\w,-]+)/(?P<episode_slug>[\w,-]+)/embed/(?P<pk>\d+)/$'
         % settings.EMISSIONS_PREFIX,
index c6b1e989bb449178b080f8079e4993a524caa303..020393628048aa52325c3d1e1c4341ad75784247 100644 (file)
@@ -16,6 +16,7 @@ from django.utils.encoding import force_text, python_2_unicode_compatible
 from django.utils.feedgenerator import Atom1Feed, Rss201rev2Feed
 from django.views.decorators.cache import cache_control
 from django.views.decorators.csrf import csrf_exempt
+from django.views.generic import RedirectView
 from django.views.generic.base import TemplateView
 from django.views.generic.dates import MonthArchiveView, _date_from_string
 from django.views.generic.detail import DetailView
@@ -277,6 +278,23 @@ class SoundFileEmbedView(DetailView):
 soundfile_embed = SoundFileEmbedView.as_view()
 
 
+class EpisodeEmbedRedirect(RedirectView):
+    def get_redirect_url(self, **kwargs):
+        try:
+            soundfile = SoundFile.objects.get(
+                episode__slug=kwargs['episode_slug'],
+                episode__emission__slug=kwargs['emission_slug'],
+                fragment=False,
+            )
+        except SoundFile.DoesNotExist:
+            raise Http404()
+        kwargs['pk'] = soundfile.id
+        return reverse('soundfile-embed-view', kwargs=kwargs)
+
+
+episode_embed_redirect = EpisodeEmbedRedirect.as_view()
+
+
 class SoundFileDialogEmbedView(DetailView):
     model = SoundFile
     template_name = 'soundfiles/dialog-embed.html'