steeldonutcollection/frontend/templatetags/playlists.py

20 lines
521 B
Python

from random import choices
from django import template
from backend.models import Playlist
register = template.Library()
@register.simple_tag
def other_videos(playlist, video, count=4):
videos = playlist.videos.all().order_by("-published")
older = list(videos.filter(published__lt=video.published))
newer = list(videos.filter(published__gt=video.published))
newer_out = newer[:count]
older_out = older[-count-len(newer_out):]
return sorted(older_out + newer_out, key=lambda x: x.published)