kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
128 wiersze
3.5 KiB
Python
128 wiersze
3.5 KiB
Python
from funkwhale_api.common import admin
|
|
|
|
from . import models
|
|
|
|
|
|
@admin.register(models.Artist)
|
|
class ArtistAdmin(admin.ModelAdmin):
|
|
list_display = ["name", "mbid", "creation_date", "modification_date"]
|
|
search_fields = ["name", "mbid"]
|
|
|
|
|
|
@admin.register(models.Album)
|
|
class AlbumAdmin(admin.ModelAdmin):
|
|
list_display = ["title", "artist", "mbid", "release_date", "creation_date"]
|
|
search_fields = ["title", "artist__name", "mbid"]
|
|
list_select_related = True
|
|
|
|
|
|
@admin.register(models.Track)
|
|
class TrackAdmin(admin.ModelAdmin):
|
|
list_display = ["title", "artist", "album", "mbid"]
|
|
search_fields = ["title", "artist__name", "album__title", "mbid"]
|
|
list_select_related = ["album__artist", "artist"]
|
|
|
|
|
|
@admin.register(models.TrackActor)
|
|
class TrackActorAdmin(admin.ModelAdmin):
|
|
list_display = ["actor", "track", "upload", "internal"]
|
|
search_fields = ["actor__preferred_username", "track__name"]
|
|
list_select_related = ["actor", "track"]
|
|
|
|
|
|
@admin.register(models.ImportBatch)
|
|
class ImportBatchAdmin(admin.ModelAdmin):
|
|
list_display = ["submitted_by", "creation_date", "import_request", "status"]
|
|
list_select_related = ["submitted_by", "import_request"]
|
|
list_filter = ["status"]
|
|
search_fields = ["import_request__name", "source", "batch__pk", "mbid"]
|
|
|
|
|
|
@admin.register(models.ImportJob)
|
|
class ImportJobAdmin(admin.ModelAdmin):
|
|
list_display = ["source", "batch", "upload", "status", "mbid"]
|
|
list_select_related = ["upload", "batch"]
|
|
search_fields = ["source", "batch__pk", "mbid"]
|
|
list_filter = ["status"]
|
|
|
|
|
|
@admin.register(models.Upload)
|
|
class UploadAdmin(admin.ModelAdmin):
|
|
list_display = [
|
|
"track",
|
|
"audio_file",
|
|
"source",
|
|
"duration",
|
|
"mimetype",
|
|
"size",
|
|
"bitrate",
|
|
"import_status",
|
|
]
|
|
list_select_related = ["track"]
|
|
search_fields = [
|
|
"source",
|
|
"acoustid_track_id",
|
|
"track__title",
|
|
"track__album__title",
|
|
"track__artist__name",
|
|
]
|
|
list_filter = ["mimetype", "import_status", "library__privacy_level"]
|
|
|
|
|
|
@admin.register(models.UploadVersion)
|
|
class UploadVersionAdmin(admin.ModelAdmin):
|
|
list_display = [
|
|
"upload",
|
|
"audio_file",
|
|
"mimetype",
|
|
"size",
|
|
"bitrate",
|
|
"creation_date",
|
|
"accessed_date",
|
|
]
|
|
list_select_related = ["upload"]
|
|
search_fields = [
|
|
"upload__source",
|
|
"upload__acoustid_track_id",
|
|
"upload__track__title",
|
|
"upload__track__album__title",
|
|
"upload__track__artist__name",
|
|
]
|
|
list_filter = ["mimetype"]
|
|
|
|
|
|
def launch_scan(modeladmin, request, queryset):
|
|
for library in queryset:
|
|
library.schedule_scan(actor=request.user.actor, force=True)
|
|
|
|
|
|
launch_scan.short_description = "Launch scan"
|
|
|
|
|
|
@admin.register(models.Library)
|
|
class LibraryAdmin(admin.ModelAdmin):
|
|
list_display = ["id", "name", "actor", "uuid", "privacy_level", "creation_date"]
|
|
list_select_related = True
|
|
search_fields = ["actor__username", "name", "description"]
|
|
list_filter = ["privacy_level"]
|
|
actions = [launch_scan]
|
|
|
|
|
|
@admin.register(models.LibraryScan)
|
|
class LibraryScanAdmin(admin.ModelAdmin):
|
|
list_display = [
|
|
"id",
|
|
"library",
|
|
"actor",
|
|
"status",
|
|
"creation_date",
|
|
"modification_date",
|
|
"status",
|
|
"total_files",
|
|
"processed_files",
|
|
"errored_files",
|
|
]
|
|
list_select_related = True
|
|
search_fields = ["actor__username", "library__name"]
|
|
list_filter = ["status"]
|