return self.object.get_absolute_url()
-class EpisodeDetailView(DetailView):
+class EmissionEpisodeMixin(object):
+ def get_queryset(self):
+ return self.model.objects.filter(emission__slug=self.kwargs['emission_slug'])
+
+
+class EpisodeDetailView(EmissionEpisodeMixin, DetailView):
model = Episode
def get_context_data(self, **kwargs):
return context
-class EpisodeUpdateView(UpdateView):
+class EpisodeUpdateView(EmissionEpisodeMixin, UpdateView):
form_class = EpisodeForm
model = Episode
return super(EpisodeUpdateView, self).get_success_url()
-class EpisodeDeleteView(DeleteView):
+class EpisodeDeleteView(EmissionEpisodeMixin, DeleteView):
model = Episode
def get_form(self, *args, **kwargs):
return redirect(self.object.get_absolute_url())
-class EpisodeRegieView(DetailView):
+class EpisodeRegieView(EmissionEpisodeMixin, DetailView):
model = Episode
template_name = 'emissions/episode_regie.html'
return context
+
class EpisodeRegieUpdateOrderView(View):
def get(self, request, *args, **kwargs):
new_order = request.GET.getlist('new-order[]')
return JSONResponse(obj)
-class EpisodeStartView(RedirectView):
+class EpisodeStartView(EmissionEpisodeMixin, RedirectView):
def get_redirect_url(self, emission_slug, slug):
episode = Episode.objects.get(slug=slug, emission__slug=emission_slug)
episode.effective_start = datetime.datetime.now()
kwargs={'emission_slug': emission_slug,
'slug': slug})
-class EpisodeStopView(RedirectView):
+
+class EpisodeStopView(EmissionEpisodeMixin, RedirectView):
def get_redirect_url(self, emission_slug, slug):
episode = Episode.objects.get(slug=slug, emission__slug=emission_slug)
episode.effective_end = datetime.datetime.now()