mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-13 01:22:21 +01:00
Add logging to API endpoints
This commit is contained in:
@ -1,9 +1,18 @@
|
||||
from django.contrib import admin
|
||||
from .models import Queue, Playlist, PlaylistSong, QueueCommand
|
||||
from typing import Optional
|
||||
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from .models import Queue, Playlist, PlaylistSong, QueueCommand, QueueLogEntry, UserQueue
|
||||
from marietje.admin import UserAdmin as BaseUserAdmin
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .services import get_queue_for_user
|
||||
|
||||
admin.site.register(Playlist)
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
@admin.register(Queue)
|
||||
class OrderAdmin(admin.ModelAdmin):
|
||||
@ -21,3 +30,61 @@ class PlaylistSongAdmin(admin.ModelAdmin):
|
||||
|
||||
|
||||
admin.site.register(QueueCommand)
|
||||
|
||||
|
||||
@admin.register(QueueLogEntry)
|
||||
class QueueLogEntryAdmin(admin.ModelAdmin):
|
||||
"""Admin for log entries."""
|
||||
|
||||
list_display = [
|
||||
"timestamp",
|
||||
"queue",
|
||||
"action",
|
||||
"user",
|
||||
"description",
|
||||
]
|
||||
|
||||
list_filter = [
|
||||
"queue",
|
||||
"action",
|
||||
("timestamp", admin.DateFieldListFilter),
|
||||
]
|
||||
|
||||
def has_delete_permission(self, request, obj=None):
|
||||
"""Disable delete permission."""
|
||||
return False
|
||||
|
||||
def has_add_permission(self, request):
|
||||
"""Disable add permission."""
|
||||
return False
|
||||
|
||||
def has_change_permission(self, request, obj=None):
|
||||
"""Disable change permission."""
|
||||
return False
|
||||
|
||||
|
||||
class UserQueueInline(admin.StackedInline):
|
||||
model = UserQueue
|
||||
fields = ("queue",)
|
||||
|
||||
|
||||
class UserAdmin(BaseUserAdmin):
|
||||
fieldsets = (
|
||||
(None, {"fields": ("username", "password")}),
|
||||
(_("Personal info"), {"fields": ("name", "email")}),
|
||||
(_("Permissions"), {"fields": ("is_active", "is_staff", "is_superuser", "groups", "user_permissions")}),
|
||||
(_("Important dates"), {"fields": ("last_login", "date_joined")}),
|
||||
(_("Activation"), {"fields": ("activation_token", "reset_token")}),
|
||||
)
|
||||
list_display = ("username", "email", "name", "date_joined", "last_login", "queue__queue", "is_staff")
|
||||
inlines = (UserQueueInline,)
|
||||
|
||||
def queue__queue(self, obj: User) -> Optional[Queue]:
|
||||
"""Retrieve the Queue for a User."""
|
||||
return get_queue_for_user(obj)
|
||||
|
||||
queue__queue.short_description = "queue"
|
||||
|
||||
|
||||
admin.site.unregister(User)
|
||||
admin.site.register(User, UserAdmin)
|
||||
|
||||
Reference in New Issue
Block a user