95da499492f0183cb385a537478cf53e17cf1864
[redakcja.git] / src / catalogue / admin.py
1 from django.contrib import admin
2 from . import models
3 from .wikidata import WikidataAdminMixin
4
5
6 class AuthorAdmin(WikidataAdminMixin, admin.ModelAdmin):
7     list_display = ["first_name", "last_name", 'status', "year_of_death", "priority", "wikidata_link"]
8     list_filter = ['year_of_death', 'priority', 'collections', 'status']
9     search_fields = ["first_name", "last_name", "wikidata"]
10     prepopulated_fields = {"slug": ("first_name", "last_name")}
11     autocomplete_fields = ['collections']
12
13
14 admin.site.register(models.Author, AuthorAdmin)
15
16
17 class BookAdmin(WikidataAdminMixin, admin.ModelAdmin):
18     list_display = ["title", 'authors_str', 'translators_str', 'language', 'pd_year', 'priority', 'wikidata_link']
19     search_fields = ["title", 'wikidata']
20     autocomplete_fields = ["authors", "translators", "based_on", 'collections']
21     prepopulated_fields = {"slug": ("title",)}
22     list_filter = ['language', 'pd_year', 'collections']
23     readonly_fields = ['wikidata_link']
24     fieldsets = [
25         (None, {'fields': [
26             ('wikidata', 'wikidata_link'),
27         ]}),
28         ('Identification', {'fields': [
29             'title', 'slug', 'authors', 'translators', 'language', 
30             'based_on',
31             'pd_year',
32         ]}),
33         ('Plan', {'fields': [
34             'scans_source',
35             'text_source',
36             'priority',
37             'collections',
38             'notes',
39         ]}),
40     ]
41
42
43 admin.site.register(models.Book, BookAdmin)
44
45
46 class AuthorInline(admin.TabularInline):
47     model = models.Author.collections.through
48     autocomplete_fields = ['author']
49
50
51 class BookInline(admin.TabularInline):
52     model = models.Book.collections.through
53     autocomplete_fields = ['book']
54
55
56 class CollectionAdmin(admin.ModelAdmin):
57     list_display = ['name']
58     autocomplete_fields = []
59     prepopulated_fields = {'slug': ('name',)}
60     search_fields = ['name']
61     inlines = [AuthorInline, BookInline]
62
63 admin.site.register(models.Collection, CollectionAdmin)