--- /dev/null
+{% load thumbnail staticfiles %}
+<div class="emission-resume">
+ <a href="{% url 'episode-view' slug=episode.slug emission_slug=episode.emission.slug %}"><div class="image"
+ {% if episode.image %}
+ {% thumbnail episoden.image "350x200" crop="50% 25%" as im %}
+ style="background-image: url({{im.url}})"
+ {% endthumbnail %}
+ {% elif episode.emission.image %}
+ {% thumbnail episode.emission.image "350x200" crop="50% 25%" as im %}
+ style="background-image: url({{im.url}})"
+ {% endthumbnail %}
+ {% endif %}>
+ </div></a>
+ {% include "includes/tags.html" with object=episode.emission %}
+ <h3><a href="{% url 'episode-view' slug=episode.slug emission_slug=episode.emission.slug %}">{{ episode.emission.title }}{% if episode.emission.subtitle %}<br>{{ episode.emission.subtitle }}{% endif %}</a></h3>
+</div>
+
import panikweb.utils
import panikweb.views
from django.conf import settings
-from django.db.models.expressions import RawSQL
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from django.views.generic.base import TemplateView
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# get shows with a recent sound
- context['shows'] = (
- Emission.objects.filter(archived=False)
- .exclude(categories__slug='collection')
- .annotate(
- latest_soundfile_timestamp=RawSQL(
- '''SELECT MAX(emissions_soundfile.creation_timestamp)
- FROM emissions_soundfile,
- emissions_episode
- WHERE emissions_soundfile.episode_id = emissions_episode.id
- AND emissions_episode.emission_id = emissions_emission.id''',
- (),
- )
- )
- .exclude(latest_soundfile_timestamp__isnull=True)
- .order_by('-latest_soundfile_timestamp')
- .distinct()
- )
-
- if context['shows'].count() > settings.HOME_EMISSIONS_COUNT:
- context['shows'] = context['shows'][:12]
- context['shows_display_more'] = True
+ context['shows'] = shows = []
+ emissions_seen = set()
+ for episode in (
+ Episode.objects.filter(emission__archived=False, soundfile__isnull=False)
+ .order_by('-soundfile__creation_timestamp')
+ .select_related('emission')
+ ):
+ if episode.emission_id in emissions_seen:
+ continue
+ emissions_seen.add(episode.emission_id)
+ shows.append(episode)
+ if len(shows) > settings.HOME_EMISSIONS_COUNT:
+ context['shows'] = shows[:12]
+ context['shows_display_more'] = True
+ break
context['collections'] = Emission.objects.filter(archived=False).filter(
categories__slug='collection'