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

1from typing import ClassVar 1a

2 

3from django.contrib import admin 1a

4 

5from .models import Author, Book, BookInstance, Genre, Language 1a

6 

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""" 

14 

15admin.site.register(Genre) 1a

16admin.site.register(Language) 1a

17 

18 

19class BooksInline(admin.TabularInline): 1a

20 """Defines format of inline book insertions""" 

21 

22 model = Book 1a

23 extra = 0 1a

24 

25 

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 """ 

35 

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

50 

51 

52class BooksInstanceInline(admin.TabularInline): 1a

53 """Defines format of inline book instance insertion""" 

54 

55 model = BookInstance 1a

56 extra = 0 1a

57 

58 

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 """ 

66 

67 list_display = ("title", "author", "display_genre") 1a

68 inlines: ClassVar[list[str]] = [BooksInstanceInline] 1a

69 

70 

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 """ 

79 

80 list_display = ("book", "status", "borrower", "due_back", "id") 1a

81 list_filter = ("status", "due_back") 1a

82 

83 fieldsets = ( 1a

84 (None, {"fields": ("book", "imprint", "id")}), 

85 ("Availability", {"fields": ("status", "due_back", "borrower")}), 

86 )