diff --git a/PROJECT.org b/PROJECT.org index a27fa13..39119d0 100644 --- a/PROJECT.org +++ b/PROJECT.org @@ -92,7 +92,7 @@ fetching and simple saving. :LOGBOOK: CLOCK: [2025-07-09 Wed 09:55]--[2025-07-09 Wed 10:15] => 0:20 :END: -* Backlog [6/30] +* Backlog [8/32] ** TODO [#C] Create small utility to clean up tracks scrobbled with wonky playback times :vrobbler:personal:bug:music:scrobbles: ** TODO [#C] Move to using more robust mopidy-webhooks pacakge form pypi :utility:improvement: :PROPERTIES: @@ -460,6 +460,14 @@ Turns out we're not looking up music tracks properly, again. :END: ** TODO Add sentiment parsing for Scrobbles with notes :vrobbler:project:scrobbles:sentiment: ** TODO Check opencode about a way to present stats like movies per month :vrobbler:scrobbles:stats:personal:project: +** DONE Update admin page to be easier to use :vrobbler:djadmin:project:personal: +:PROPERTIES: +:ID: 0779be1f-1ad7-ddc7-8861-d3c7c833cbe9 +:END: +** DONE Fix migrations and update repo :vrobbler:scrobbles:admin:personal:project: +:PROPERTIES: +:ID: ccbc2ef0-68bf-9ef7-dcaf-febab5ebefe2 +:END: ** DONE Add recipe parsing for food lookups :vrobbler:foods:project:feature:personal: :PROPERTIES: :ID: 86456c78-247b-fb63-7ae8-d6d17e7666b1 diff --git a/vrobbler/apps/scrobbles/admin.py b/vrobbler/apps/scrobbles/admin.py index db22c1a..6f1244b 100644 --- a/vrobbler/apps/scrobbles/admin.py +++ b/vrobbler/apps/scrobbles/admin.py @@ -54,23 +54,19 @@ class ImportBaseAdmin(admin.ModelAdmin): @admin.register(AudioScrobblerTSVImport) -class AudioScrobblerTSVImportAdmin(ImportBaseAdmin): - ... +class AudioScrobblerTSVImportAdmin(ImportBaseAdmin): ... @admin.register(LastFmImport) -class LastFmImportAdmin(ImportBaseAdmin): - ... +class LastFmImportAdmin(ImportBaseAdmin): ... @admin.register(KoReaderImport) -class KoReaderImportAdmin(ImportBaseAdmin): - ... +class KoReaderImportAdmin(ImportBaseAdmin): ... @admin.register(RetroarchImport) -class RetroarchImportAdmin(ImportBaseAdmin): - ... +class RetroarchImportAdmin(ImportBaseAdmin): ... @admin.register(Genre) diff --git a/vrobbler/apps/scrobbles/apps.py b/vrobbler/apps/scrobbles/apps.py index 3396fa8..0e43f5a 100644 --- a/vrobbler/apps/scrobbles/apps.py +++ b/vrobbler/apps/scrobbles/apps.py @@ -1,5 +1,20 @@ from django.apps import AppConfig +from django.contrib import admin class ScrobblesConfig(AppConfig): name = "scrobbles" + + def ready(self): + from scrobbles.models import Scrobble + + original_index = admin.site.index + + def custom_index(request, extra_context=None): + extra_context = extra_context or {} + extra_context["recent_scrobbles"] = Scrobble.objects.filter( + timestamp__isnull=False + ).order_by("-timestamp")[:20] + return original_index(request, extra_context) + + admin.site.index = custom_index diff --git a/vrobbler/templates/admin/index.html b/vrobbler/templates/admin/index.html new file mode 100644 index 0000000..f146606 --- /dev/null +++ b/vrobbler/templates/admin/index.html @@ -0,0 +1,78 @@ +{% extends "admin/base_site.html" %} +{% load i18n static %} + +{% block extrastyle %}{{ block.super }}{% endblock %} + +{% block coltype %}colMS{% endblock %} + +{% block bodyclass %}{{ block.super }} dashboard{% endblock %} + +{% block nav-breadcrumbs %}{% endblock %} + +{% block nav-sidebar %}{% endblock %} + +{% block content %} +
+ {% if recent_scrobbles %} +
+ + + + + + + + + + + + {% for scrobble in recent_scrobbles %} + + + + + + + {% endfor %} + +
+ Recent Scrobbles +
TimestampMediaTypeUser
{{ scrobble.timestamp|date:"Y-m-d H:i" }}{{ scrobble.media_obj|truncatechars:50 }}{{ scrobble.get_media_type_display }}{{ scrobble.user|default:"-" }}
+
+ {% endif %} + + {% include "admin/app_list.html" with app_list=app_list show_changelinks=True %} +
+{% endblock %} + +{% block sidebar %} + +{% endblock %}