from django.shortcuts import get_object_or_404, render

from home.pagination import paginate

from .models import PodcastEpisode


def podcast_list(request):
    episodes = PodcastEpisode.objects.filter(is_published=True)
    featured = episodes.filter(is_featured=True).first() or episodes.first()
    list_episodes = episodes.exclude(pk=featured.pk if featured else None)
    page_obj, query_string, page_range = paginate(request, list_episodes, per_page=12)
    return render(request, 'podcast/list.html', {
        'episodes': page_obj,
        'featured_episode': featured,
        'page_obj': page_obj,
        'query_string': query_string,
        'page_range': page_range,
        'total_count': page_obj.paginator.count,
    })


def podcast_detail(request, slug):
    episode = get_object_or_404(PodcastEpisode, slug=slug, is_published=True)
    related = PodcastEpisode.objects.filter(is_published=True).exclude(pk=episode.pk)[:4]
    return render(request, 'podcast/detail.html', {'episode': episode, 'related_episodes': related})
