[charts] Fix chart building
This commit is contained in:
@ -47,19 +47,28 @@ class ArtistDetailView(generic.DetailView):
|
||||
def get_context_data(self, **kwargs):
|
||||
context_data = super().get_context_data(**kwargs)
|
||||
artist = context_data["object"]
|
||||
rank = 1
|
||||
tracks_ranked = []
|
||||
scrobbles = artist.tracks.first().scrobble_count
|
||||
for track in artist.tracks:
|
||||
if scrobbles > track.scrobble_count:
|
||||
rank += 1
|
||||
tracks_ranked.append((rank, track))
|
||||
scrobbles = track.scrobble_count
|
||||
|
||||
ranked_tracks = sorted(
|
||||
artist.tracks.all(), key=lambda t: t.scrobble_count, reverse=True
|
||||
)[:10]
|
||||
|
||||
tracks_ranked = [
|
||||
(rank, track) for rank, track in enumerate(ranked_tracks, start=1)
|
||||
]
|
||||
|
||||
context_data["tracks_ranked"] = tracks_ranked
|
||||
context_data["charts"] = ChartRecord.objects.filter(
|
||||
artist=self.object, rank__in=[1, 2, 3]
|
||||
)
|
||||
|
||||
from scrobbles.models import Scrobble
|
||||
|
||||
context_data["recent_scrobbles"] = (
|
||||
Scrobble.objects.filter(track__artist=artist)
|
||||
.select_related("track", "track__album")
|
||||
.order_by("-timestamp")[:100]
|
||||
)
|
||||
|
||||
return context_data
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user