Coverage for catalog/admin.py: 100.00%
26 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-29 10:34 -0700
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-29 10:34 -0700
1from typing import ClassVar 1a
3from django.contrib import admin 1a
5from .models import Author, Book, BookInstance, Genre, Language 1a
7"""Minimal registration of Models. 1a
8admin.site.register(Book)
9admin.site.register(Author)
10admin.site.register(BookInstance)
11admin.site.register(Genre)
12admin.site.register(Language)
13"""
15admin.site.register(Genre) 1a
16admin.site.register(Language) 1a
19class BooksInline(admin.TabularInline): 1a
20 """Defines format of inline book insertions"""
22 model = Book 1a
23 extra = 0 1a
26@admin.register(Author) 1a
27class AuthorAdmin(admin.ModelAdmin): 1a
28 """Administration object for Author models.
29 Defines:
30 - fields to be displayed in list view (list_display)
31 - orders fields in detail view (fields),
32 grouping the date fields horizontally
33 - adds inline addition of books in author view (inlines)
34 """
36 list_display = ( 1a
37 "last_name",
38 "first_name",
39 "middle_name",
40 "date_of_birth",
41 "date_of_death",
42 )
43 fields: ClassVar[list[str]] = [ 1a
44 "first_name",
45 "middle_name",
46 "last_name",
47 ("date_of_birth", "date_of_death"),
48 ]
49 inlines: ClassVar[list] = [BooksInline] 1a
52class BooksInstanceInline(admin.TabularInline): 1a
53 """Defines format of inline book instance insertion"""
55 model = BookInstance 1a
56 extra = 0 1a
59@admin.register(Book) 1a
60class BookAdmin(admin.ModelAdmin): 1a
61 """Administration object for Book models.
62 Defines:
63 - fields to be displayed in list view (list_display)
64 - adds inline addition of book instances in book view (inlines)
65 """
67 list_display = ("title", "author", "display_genre") 1a
68 inlines: ClassVar[list[str]] = [BooksInstanceInline] 1a
71@admin.register(BookInstance) 1a
72class BookInstanceAdmin(admin.ModelAdmin): 1a
73 """Administration object for BookInstance models.
74 Defines:
75 - fields to be displayed in list view (list_display)
76 - filters that will be displayed in sidebar (list_filter)
77 - grouping of fields into sections (fieldsets)
78 """
80 list_display = ("book", "status", "borrower", "due_back", "id") 1a
81 list_filter = ("status", "due_back") 1a
83 fieldsets = ( 1a
84 (None, {"fields": ("book", "imprint", "id")}),
85 ("Availability", {"fields": ("status", "due_back", "borrower")}),
86 )