X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/59d3072df7a5d3b17e0f0cb49d5f5338ea269177..30ceb98e6272767f8f271ecb0de30858e1c1a88e:/src/catalogue/admin.py?ds=sidebyside diff --git a/src/catalogue/admin.py b/src/catalogue/admin.py index 93a265a98..9d62c8145 100644 --- a/src/catalogue/admin.py +++ b/src/catalogue/admin.py @@ -1,12 +1,13 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # from django.contrib import admin -from django import forms - -from newtagging.admin import TaggableModelAdmin, TaggableModelForm from catalogue.models import Tag, Book, Fragment, BookMedia, Collection, Source +from pz.admin import EmptyFieldListFilter + + +class BlankFieldListFilter(EmptyFieldListFilter): + with_empty_str = True class TagAdmin(admin.ModelAdmin): @@ -18,7 +19,7 @@ class TagAdmin(admin.ModelAdmin): def occurrences(self, tag): return tag.items.count() - occurrences.short_description = u'Wystąpienia' + occurrences.short_description = 'Wystąpienia' prepopulated_fields = {'slug': ('name',), 'sort_key': ('name',)} radio_fields = {'category': admin.HORIZONTAL} @@ -30,35 +31,29 @@ class MediaInline(admin.TabularInline): extra = 0 -class BookAdmin(TaggableModelAdmin): - tag_model = Tag - - list_display = ('title', 'slug', 'created_at', 'has_epub_file', 'has_html_file', 'has_description',) +class BookAdmin(admin.ModelAdmin): + list_display = ( + 'title', 'slug', 'created_at', 'has_epub_file', 'has_html_file', 'has_description', + ) + list_filter = [ + 'print_on_demand', + ('wiki_link', BlankFieldListFilter), + ('parent', EmptyFieldListFilter), + ] + date_hierarchy = 'created_at' search_fields = ('title',) ordering = ('title',) inlines = [MediaInline] - def change_view(self, request, object_id, extra_context=None): - if 'advanced' not in request.GET: - self.form = forms.ModelForm - self.fields = ('title', 'description', 'wiki_link', 'recommended') - self.readonly_fields = ('title',) - else: - self.form = TaggableModelForm - self.fields = None - self.readonly_fields = () - return super(BookAdmin, self).change_view(request, object_id, extra_context=extra_context) - - -class FragmentAdmin(TaggableModelAdmin): - tag_model = Tag +class FragmentAdmin(admin.ModelAdmin): list_display = ('book', 'anchor',) ordering = ('book', 'anchor',) class CollectionAdmin(admin.ModelAdmin): + list_display = ('title', 'listed') prepopulated_fields = {'slug': ('title',)}