This commit is contained in:
relikd
2024-06-27 21:13:47 +02:00
commit d44d74eb2c
72 changed files with 2444 additions and 0 deletions

71
backend/app/admin.py Normal file
View File

@@ -0,0 +1,71 @@
from django.conf import settings
from django.contrib import admin
from django.contrib.auth.models import Group # , User
from django.utils.html import format_html
from app.models import Audiofile, Category, Content, Place
# admin.site.register(Place, )
#############################
# Django defaults
#############################
admin.site.site_header = 'Klangkarte-Verwaltung' # top-most title
admin.site.index_title = 'Klangkarte' # title at root
admin.site.site_title = 'Klangkarte-Verwaltung' # suffix to <title>
admin.site.unregister(Group)
# admin.site.unregister(User)
#############################
# App adjustments
#############################
@admin.register(Audiofile)
class AudiofileAdmin(admin.ModelAdmin):
list_display = ['desc', 'media_url', 'created']
search_fields = ['desc']
@admin.display(description='URL')
def media_url(self, obj: 'Audiofile'):
return settings.MEDIA_URL + obj.url
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ['name', 'color_dot', 'sort', 'places_count']
search_fields = ['name']
class Media:
css = {'all': ['admin/admin.css']}
@admin.display(description='Orte')
def places_count(self, obj: 'Category'):
return obj.places.count()
@admin.display(description='Farbe')
def color_dot(self, obj: 'Category'):
return format_html(
'<span class="color-dot" style="background:{};color:{}">{}</span>',
obj.color,
'#fff' if obj.fg_color_white else '#000',
obj.color.upper())
@admin.register(Content)
class ContentAdmin(admin.ModelAdmin):
list_display = ['title', 'body']
search_fields = ['title', 'body']
def get_readonly_fields(self, request, obj=None):
return ['key'] if obj else []
@admin.register(Place)
class PlaceAdmin(admin.ModelAdmin):
list_display = ['title', 'category', 'sort', 'created']
search_fields = ['title']
list_filter = ['category']