Coverage for catalog/admin.py: 100.00%

25 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-13 15:39 -0700

1from django.contrib import admin 

2 

3from .models import Author, Book, BookInstance, Genre, Language 

4 

5"""Minimal registration of Models. 

6admin.site.register(Book) 

7admin.site.register(Author) 

8admin.site.register(BookInstance) 

9admin.site.register(Genre) 

10admin.site.register(Language) 

11""" 

12 

13admin.site.register(Genre) 

14admin.site.register(Language) 

15 

16 

17class BooksInline(admin.TabularInline): 

18 """Defines format of inline book insertions""" 

19 

20 model = Book 

21 extra = 0 

22 

23 

24@admin.register(Author) 

25class AuthorAdmin(admin.ModelAdmin): 

26 """Administration object for Author models. 

27 Defines: 

28 - fields to be displayed in list view (list_display) 

29 - orders fields in detail view (fields), 

30 grouping the date fields horizontally 

31 - adds inline addition of books in author view (inlines) 

32 """ 

33 

34 list_display = ( 

35 "last_name", 

36 "first_name", 

37 "middle_name", 

38 "date_of_birth", 

39 "date_of_death", 

40 ) 

41 fields = [ 

42 "first_name", 

43 "middle_name", 

44 "last_name", 

45 ("date_of_birth", "date_of_death"), 

46 ] 

47 inlines = [BooksInline] 

48 

49 

50class BooksInstanceInline(admin.TabularInline): 

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

52 

53 model = BookInstance 

54 extra = 0 

55 

56 

57@admin.register(Book) 

58class BookAdmin(admin.ModelAdmin): 

59 """Administration object for Book models. 

60 Defines: 

61 - fields to be displayed in list view (list_display) 

62 - adds inline addition of book instances in book view (inlines) 

63 """ 

64 

65 list_display = ("title", "author", "display_genre") 

66 inlines = [BooksInstanceInline] 

67 

68 

69@admin.register(BookInstance) 

70class BookInstanceAdmin(admin.ModelAdmin): 

71 """Administration object for BookInstance models. 

72 Defines: 

73 - fields to be displayed in list view (list_display) 

74 - filters that will be displayed in sidebar (list_filter) 

75 - grouping of fields into sections (fieldsets) 

76 """ 

77 

78 list_display = ("book", "status", "borrower", "due_back", "id") 

79 list_filter = ("status", "due_back") 

80 

81 fieldsets = ( 

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

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

84 )