[charts] Clean up how they're displayed
All checks were successful
build & deploy / test (push) Successful in 1m51s
build & deploy / build-and-deploy (push) Successful in 30s

This commit is contained in:
2026-05-15 16:03:53 -04:00
parent 2b04a17d77
commit bf7e5677e6
8 changed files with 217 additions and 22 deletions

View File

@ -135,9 +135,9 @@ class ChartContextMixin:
return context
media_type_map = {
"music.Artist": "artist",
"music.Album": "album",
"music.Track": "track",
"music.artist": "artist",
"music.album": "album",
"music.track": "track",
"videos.video": "video",
"videos.series": "tv_series",
"podcasts.podcast": "podcast",
@ -151,10 +151,17 @@ class ChartContextMixin:
media_type = media_type_map.get(model_label)
if media_type:
context["charts"] = ChartRecord.objects.filter(
charts_qs = ChartRecord.objects.filter(
**{media_type: obj}, rank__in=[1, 2, 3]
).exclude(day__isnull=False)
from collections import OrderedDict
grouped = OrderedDict()
for chart in charts_qs:
grouped.setdefault(chart.period_type, []).append(chart)
context["charts"] = grouped
return context