reversion
[redakcja.git] / src / catalogue / admin.py
index af08369..36d464c 100644 (file)
@@ -13,8 +13,10 @@ from admin_numeric_filter.admin import RangeNumericFilter, NumericFilterModelAdm
 from admin_ordering.admin import OrderableAdmin
 from fnpdjango.actions import export_as_csv_action
 from modeltranslation.admin import TabbedTranslationAdmin
+from reversion.admin import VersionAdmin
 from . import models
 import documents.models
+import sources.models
 from .wikidata import WikidataAdminMixin
 
 
@@ -98,7 +100,7 @@ class AuthorForm(forms.ModelForm):
             'woblink': WoblinkAuthorWidget,
         }
 
-class AuthorAdmin(WikidataAdminMixin, TabbedTranslationAdmin):
+class AuthorAdmin(WikidataAdminMixin, TabbedTranslationAdmin, VersionAdmin):
     form = AuthorForm
     list_display = [
         "first_name",
@@ -301,7 +303,13 @@ class FirstPublicationYearFilter(admin.ListFilter):
         ]
 
 
-class BookAdmin(WikidataAdminMixin, NumericFilterModelAdmin):
+class SourcesInline(admin.TabularInline):
+    model = sources.models.BookSource
+    extra = 1
+
+
+class BookAdmin(WikidataAdminMixin, NumericFilterModelAdmin, VersionAdmin):
+    inlines = [SourcesInline]
     list_display = [
         "smart_title",
         "authors_str",
@@ -413,6 +421,7 @@ class BookAdmin(WikidataAdminMixin, NumericFilterModelAdmin):
                     "based_on",
                     "original_year",
                     "pd_year",
+                    "plwiki",
                 ]
             },
         ),
@@ -493,7 +502,7 @@ class BookAdmin(WikidataAdminMixin, NumericFilterModelAdmin):
 admin.site.register(models.Book, BookAdmin)
 
 
-admin.site.register(models.CollectionCategory)
+admin.site.register(models.CollectionCategory, VersionAdmin)
 
 
 class AuthorInline(admin.TabularInline):
@@ -506,7 +515,7 @@ class BookInline(admin.TabularInline):
     autocomplete_fields = ["book"]
 
 
-class CollectionAdmin(admin.ModelAdmin):
+class CollectionAdmin(VersionAdmin):
     list_display = ["name"]
     autocomplete_fields = []
     prepopulated_fields = {"slug": ("name",)}
@@ -529,7 +538,7 @@ admin.site.register(models.Collection, CollectionAdmin)
 
 
 
-class CategoryAdmin(admin.ModelAdmin):
+class CategoryAdmin(VersionAdmin):
     search_fields = ["name"]
 
     def has_description(self, obj):
@@ -573,7 +582,7 @@ class WorkRateInline(admin.TabularInline):
     autocomplete_fields = ['kinds', 'genres', 'epochs', 'collections']
 
 
-class WorkTypeAdmin(admin.ModelAdmin):
+class WorkTypeAdmin(VersionAdmin):
     inlines = [WorkRateInline]
 
 admin.site.register(models.WorkType, WorkTypeAdmin)
@@ -581,12 +590,12 @@ admin.site.register(models.WorkType, WorkTypeAdmin)
 
 
 @admin.register(models.Place)
-class PlaceAdmin(WikidataAdminMixin, TabbedTranslationAdmin):
+class PlaceAdmin(WikidataAdminMixin, TabbedTranslationAdmin, VersionAdmin):
     search_fields = ['name']
 
 
 @admin.register(models.Thema)
-class ThemaAdmin(admin.ModelAdmin):
+class ThemaAdmin(VersionAdmin):
     list_display = ['code', 'name', 'usable', 'hidden', 'woblink_category']
     list_filter = ['usable', 'usable_as_main', 'hidden']
     search_fields = ['code', 'name', 'description', 'public_description']
@@ -606,7 +615,7 @@ class AudienceForm(forms.ModelForm):
         }
 
 @admin.register(models.Audience)
-class AudienceAdmin(admin.ModelAdmin):
+class AudienceAdmin(VersionAdmin):
     form = AudienceForm
     list_display = ['code', 'name', 'thema', 'woblink']
     search_fields = ['code', 'name', 'description', 'thema', 'woblink']