[scrobbles] Fix display of task notes
All checks were successful
build & deploy / test (push) Successful in 1m40s
build & deploy / deploy (push) Successful in 21s

This commit is contained in:
2026-03-24 15:10:33 -04:00
parent cce2db0ea1
commit 4121915aa3
4 changed files with 149 additions and 33 deletions

View File

@ -792,6 +792,7 @@ class ScrobbleDetailView(DetailView):
model = Scrobble
slug_field = "uuid"
slug_url_kwarg = "uuid"
paginate_by = 100
def get_form_class(self):
return self.object.media_obj.logdata_cls().form()
@ -830,10 +831,55 @@ class ScrobbleDetailView(DetailView):
context = self.get_context_data(log_form=form)
return self.render_to_response(context)
MEDIA_FK_MAP = {
"Video": "video",
"Track": "track",
"PodcastEpisode": "podcast_episode",
"Book": "book",
"Paper": "paper",
"VideoGame": "video_game",
"BoardGame": "board_game",
"Beer": "beer",
"Food": "food",
"Puzzle": "puzzle",
"Trail": "trail",
"GeoLocation": "geo_location",
"Task": "task",
"WebPage": "web_page",
"LifeEvent": "life_event",
"Mood": "mood",
"BrickSet": "brick_set",
}
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
if "log_form" not in context:
context["log_form"] = self.get_form()
media_obj = self.object.media_obj
user = self.object.user
media_type = self.object.media_type
fk_field = self.MEDIA_FK_MAP.get(media_type)
if fk_field:
related_scrobbles = (
Scrobble.objects.filter(user=user)
.filter(**{fk_field: media_obj})
.exclude(id=self.object.id)
.order_by("-timestamp")
)
else:
related_scrobbles = Scrobble.objects.none()
page = self.request.GET.get("page")
paginator = Paginator(related_scrobbles, self.paginate_by)
try:
context["related_scrobbles"] = paginator.page(page)
except PageNotAnInteger:
context["related_scrobbles"] = paginator.page(1)
except EmptyPage:
context["related_scrobbles"] = paginator.page(paginator.num_pages)
return context