Add work rates.
[redakcja.git] / src / catalogue / admin.py
index 00617cb..3534521 100644 (file)
@@ -2,6 +2,8 @@
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from django.contrib import admin
+from django.utils.translation import gettext_lazy as _
+from fnpdjango.actions import export_as_csv_action
 from . import models
 from .wikidata import WikidataAdminMixin
 
@@ -12,11 +14,13 @@ class AuthorAdmin(WikidataAdminMixin, admin.ModelAdmin):
         "last_name",
         "status",
         "year_of_death",
+        "gender",
+        "nationality",
         "priority",
         "wikidata_link",
         "slug",
     ]
-    list_filter = ["year_of_death", "priority", "collections", "status"]
+    list_filter = ["year_of_death", "priority", "collections", "status", "gender", "nationality"]
     search_fields = ["first_name", "last_name", "wikidata"]
     prepopulated_fields = {"slug": ("first_name", "last_name")}
     autocomplete_fields = ["collections"]
@@ -36,14 +40,15 @@ class BookAdmin(WikidataAdminMixin, admin.ModelAdmin):
         "wikidata_link",
     ]
     search_fields = ["title", "wikidata"]
-    autocomplete_fields = ["authors", "translators", "based_on", "collections"]
+    autocomplete_fields = ["authors", "translators", "based_on", "collections", "epochs", "genres", "kinds"]
     prepopulated_fields = {"slug": ("title",)}
     list_filter = ["language", "pd_year", "collections"]
-    readonly_fields = ["wikidata_link"]
+    readonly_fields = ["wikidata_link", "estimated_costs"]
+    actions = [export_as_csv_action()]
     fieldsets = [
         (None, {"fields": [("wikidata", "wikidata_link")]}),
         (
-            "Identification",
+            _("Identification"),
             {
                 "fields": [
                     "title",
@@ -57,7 +62,17 @@ class BookAdmin(WikidataAdminMixin, admin.ModelAdmin):
             },
         ),
         (
-            "Plan",
+            _("Features"),
+            {
+                "fields": [
+                    "epochs",
+                    "genres",
+                    "kinds",
+                ]
+            },
+        ),
+        (
+            _("Plan"),
             {
                 "fields": [
                     "scans_source",
@@ -65,6 +80,8 @@ class BookAdmin(WikidataAdminMixin, admin.ModelAdmin):
                     "priority",
                     "collections",
                     "notes",
+                    ("estimated_chars", "estimated_verses", "estimate_source"),
+                    "estimated_costs",
                 ]
             },
         ),
@@ -99,3 +116,24 @@ class CollectionAdmin(admin.ModelAdmin):
 
 
 admin.site.register(models.Collection, CollectionAdmin)
+
+
+class CategoryAdmin(admin.ModelAdmin):
+    search_fields = ["name"]
+
+admin.site.register(models.Epoch, CategoryAdmin)
+admin.site.register(models.Genre, CategoryAdmin)
+admin.site.register(models.Kind, CategoryAdmin)
+
+
+
+class WorkRateInline(admin.TabularInline):
+    model = models.WorkRate
+    autocomplete_fields = ['kinds', 'genres', 'epochs', 'collections']
+
+
+class WorkTypeAdmin(admin.ModelAdmin):
+    inlines = [WorkRateInline]
+
+admin.site.register(models.WorkType, WorkTypeAdmin)
+