This commit is contained in:
@ -206,6 +206,19 @@ class ScrobbleableDetailView(ChartContextMixin, DetailView):
|
||||
context_data["scrobbles"] = page_obj.object_list
|
||||
context_data["is_paginated"] = paginator.num_pages > 1
|
||||
|
||||
media = self.object
|
||||
if hasattr(media, "is_long_play_media") and media.is_long_play_media():
|
||||
qs = media.scrobble_set.filter(user=self.request.user)
|
||||
completed = qs.filter(long_play_complete=True).order_by("-timestamp").first()
|
||||
if completed and completed.long_play_seconds:
|
||||
context_data["long_play_total_seconds"] = completed.long_play_seconds
|
||||
context_data["long_play_finished_date"] = completed.timestamp
|
||||
else:
|
||||
latest_finished = qs.filter(played_to_completion=True).order_by("-timestamp").first()
|
||||
if latest_finished and latest_finished.long_play_seconds:
|
||||
context_data["long_play_total_seconds"] = latest_finished.long_play_seconds
|
||||
context_data["long_play_finished_date"] = None
|
||||
|
||||
return context_data
|
||||
|
||||
|
||||
@ -1297,6 +1310,24 @@ class ScrobbleDetailView(DetailView):
|
||||
else:
|
||||
context["has_mopidy_uri"] = False
|
||||
|
||||
if self.object.is_long_play and fk_field:
|
||||
all_scrobbles = Scrobble.objects.filter(
|
||||
user=user, **{fk_field: media_obj}
|
||||
)
|
||||
completed = all_scrobbles.filter(
|
||||
long_play_complete=True
|
||||
).order_by("-timestamp").first()
|
||||
if completed and completed.long_play_seconds:
|
||||
context["long_play_total_seconds"] = completed.long_play_seconds
|
||||
context["long_play_finished_date"] = completed.timestamp
|
||||
else:
|
||||
latest_finished = all_scrobbles.filter(
|
||||
played_to_completion=True
|
||||
).order_by("-timestamp").first()
|
||||
if latest_finished and latest_finished.long_play_seconds:
|
||||
context["long_play_total_seconds"] = latest_finished.long_play_seconds
|
||||
context["long_play_finished_date"] = None
|
||||
|
||||
return context
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user