First bookshelf implementation

This commit is contained in:
2023-10-02 00:02:24 +02:00
parent b8572c1701
commit 968ebeb0b6
11 changed files with 398 additions and 1 deletions

43
ram/bookshelf/admin.py Normal file
View File

@@ -0,0 +1,43 @@
from django.contrib import admin
from bookshelf.models import BookProperty, Book, Author, Publisher
class BookPropertyInline(admin.TabularInline):
model = BookProperty
min_num = 0
extra = 0
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
inlines = (BookPropertyInline,)
list_display = (
"title",
"get_authors",
"get_publisher",
"publication_year",
"numbers_of_pages"
)
search_fields = ("title",)
list_filter = ("publisher__name",)
@admin.display(description="Publisher")
def get_publisher(self, obj):
return obj.publisher.name
@admin.display(description="Authors")
def get_authors(self, obj):
return ", ".join(a.short_name() for a in obj.authors.all())
@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
search_fields = ("first_name", "last_name",)
list_filter = ("last_name",)
@admin.register(Publisher)
class PublisherAdmin(admin.ModelAdmin):
list_display = ("name", "country")
search_fields = ("name",)