3 from django.views.generic.base import TemplateView
5 from emissions.models import Diffusion, Emission, Episode, NewsItem
6 from combo.data.models import Page
11 class Home(panikweb.views.Home):
12 def get_context_data(self, **kwargs):
13 context = super().get_context_data(**kwargs)
14 context['emissions'] = Emission.objects.filter(archived=False).order_by('title')
15 context['newsitems'] = NewsItem.objects.exclude(date__gt=datetime.date.today()
16 ).exclude(expiration_date__lt=datetime.date.today()).order_by('-date')[:3]
17 context['extra_pages'] = Page.objects.filter(exclude_from_navigation=False)
24 class EmissionDetailView(panikweb.views.EmissionDetailView):
25 def get_emission_context(self, emission, episode_ids=None):
26 context = super().get_emission_context(emission, episode_ids)
29 current_year = emission.creation_timestamp.replace(month=5, day=1)
31 current_year = datetime.datetime.now().replace(month=5, day=1).replace(year=2019)
33 episodes_queryset = Episode.objects.select_related()
34 if episode_ids is not None:
35 episodes_queryset = episodes_queryset.filter(id__in=episode_ids)
37 episodes_queryset = episodes_queryset.filter(emission=emission)
39 context['all_episodes'] = episodes_queryset.filter(
40 creation_timestamp__gt=current_year
42 'first_diffusion': 'emissions_diffusion.datetime',
44 select_params=(False, True),
45 where=['''datetime = (SELECT MIN(datetime)
46 FROM emissions_diffusion
47 WHERE episode_id = emissions_episode.id
49 tables=['emissions_diffusion'],
50 ).order_by('first_diffusion').distinct()
55 emission = EmissionDetailView.as_view()
58 class ArchivesView(TemplateView):
59 template_name = 'archives.html'
61 def get_context_data(self, **kwargs):
62 context = super().get_context_data(**kwargs)
63 context['diffusions'] = (
64 Diffusion.objects.filter(episode__soundfile__isnull=False).distinct().order_by('-datetime')
69 archives = ArchivesView.as_view()