from django.contrib import admin
+from . import models
+from .wikidata import WikidataAdminMixin
-from catalogue import models
-class BookAdmin(admin.ModelAdmin):
- list_display = ['title', 'public', '_published', '_new_publishable', 'project']
- list_filter = ['public', '_published', '_new_publishable', 'project']
- prepopulated_fields = {'slug': ['title']}
- search_fields = ['title']
+class AuthorAdmin(WikidataAdminMixin, admin.ModelAdmin):
+ list_display = ["first_name", "last_name", 'status', "year_of_death", "priority", "wikidata_link"]
+ list_filter = ['year_of_death', 'priority', 'collections', 'status']
+ search_fields = ["first_name", "last_name", "wikidata"]
+ prepopulated_fields = {"slug": ("first_name", "last_name")}
+ autocomplete_fields = ['collections']
+
+
+admin.site.register(models.Author, AuthorAdmin)
+
+
+class BookAdmin(WikidataAdminMixin, admin.ModelAdmin):
+ list_display = ["title", 'authors_str', 'translators_str', 'language', 'pd_year', 'priority', 'wikidata_link']
+ search_fields = ["title", 'wikidata']
+ autocomplete_fields = ["authors", "translators", "based_on", 'collections']
+ prepopulated_fields = {"slug": ("title",)}
+ list_filter = ['language', 'pd_year', 'collections']
+ readonly_fields = ['wikidata_link']
+ fieldsets = [
+ (None, {'fields': [
+ ('wikidata', 'wikidata_link'),
+ ]}),
+ ('Identification', {'fields': [
+ 'title', 'slug', 'authors', 'translators', 'language',
+ 'based_on',
+ 'pd_year',
+ ]}),
+ ('Plan', {'fields': [
+ 'scans_source',
+ 'text_source',
+ 'priority',
+ 'collections',
+ 'notes',
+ ]}),
+ ]
-admin.site.register(models.Project)
admin.site.register(models.Book, BookAdmin)
-admin.site.register(models.Chunk)
-admin.site.register(models.Chunk.tag_model)
-admin.site.register(models.Image)
-admin.site.register(models.Image.tag_model)
+
+class AuthorInline(admin.TabularInline):
+ model = models.Author.collections.through
+ autocomplete_fields = ['author']
+
+
+class BookInline(admin.TabularInline):
+ model = models.Book.collections.through
+ autocomplete_fields = ['book']
+
+
+class CollectionAdmin(admin.ModelAdmin):
+ list_display = ['name']
+ autocomplete_fields = []
+ prepopulated_fields = {'slug': ('name',)}
+ search_fields = ['name']
+ inlines = [AuthorInline, BookInline]
+
+admin.site.register(models.Collection, CollectionAdmin)