admin can now fix ebook/ebookfile problems
parent
44c2289c62
commit
2f649ef9a2
|
@ -21,7 +21,8 @@ from regluit.core.lookups import (
|
|||
PublisherNameLookup,
|
||||
WorkLookup,
|
||||
OwnerLookup,
|
||||
EditionLookup
|
||||
EditionLookup,
|
||||
EbookLookup,
|
||||
)
|
||||
|
||||
|
||||
|
@ -165,21 +166,51 @@ class PublisherNameAdmin(ModelAdmin):
|
|||
class RelationAdmin(ModelAdmin):
|
||||
list_display = ('code', 'name')
|
||||
search_fields = ['name']
|
||||
|
||||
|
||||
class EbookAdminForm(forms.ModelForm):
|
||||
edition = AutoCompleteSelectField(
|
||||
lookup_class=EditionLookup,
|
||||
label='Edition',
|
||||
widget=AutoCompleteSelectWidget(lookup_class=EditionLookup, attrs={'size':60}),
|
||||
required=True,
|
||||
)
|
||||
class Meta(object):
|
||||
model = models.Ebook
|
||||
exclude = ('user', 'filesize', 'download_count')
|
||||
|
||||
class EbookAdmin(ModelAdmin):
|
||||
form = EbookAdminForm
|
||||
search_fields = ('edition__title','^url') # search by provider using leading url
|
||||
list_display = ('__unicode__','created', 'user','edition')
|
||||
list_display = ('__unicode__','created', 'user', 'edition')
|
||||
date_hierarchy = 'created'
|
||||
ordering = ('edition__title',)
|
||||
exclude = ('edition','user', 'filesize')
|
||||
readonly_fields = ('user', 'filesize', 'download_count')
|
||||
|
||||
class EbookFileAdminForm(forms.ModelForm):
|
||||
edition = AutoCompleteSelectField(
|
||||
lookup_class=EditionLookup,
|
||||
label='Edition',
|
||||
widget=AutoCompleteSelectWidget(lookup_class=EditionLookup, attrs={'size':60}),
|
||||
required=True,
|
||||
)
|
||||
ebook = AutoCompleteSelectField(
|
||||
lookup_class=EbookLookup,
|
||||
label='Ebook',
|
||||
widget=AutoCompleteSelectWidget(lookup_class=EbookLookup, attrs={'size':60}),
|
||||
required=False,
|
||||
)
|
||||
class Meta(object):
|
||||
model = models.EbookFile
|
||||
fields = ('file', 'format', 'edition', 'ebook', 'source')
|
||||
|
||||
class EbookFileAdmin(ModelAdmin):
|
||||
form = EbookFileAdminForm
|
||||
search_fields = ('ebook__edition__title', 'source') # search by provider using leading url
|
||||
list_display = ('created', 'format', 'ebook_link', 'asking')
|
||||
date_hierarchy = 'created'
|
||||
ordering = ('edition__work',)
|
||||
fields = ('file', 'format', 'edition_link', 'ebook_link', 'source')
|
||||
readonly_fields = ('file', 'edition_link', 'ebook_link', 'ebook')
|
||||
fields = ('file', 'format', 'edition', 'edition_link', 'ebook', 'ebook_link', 'source')
|
||||
readonly_fields = ('file', 'edition_link', 'ebook_link', )
|
||||
def edition_link(self, obj):
|
||||
if obj.edition:
|
||||
link = reverse("admin:core_edition_change", args=[obj.edition_id])
|
||||
|
@ -251,7 +282,7 @@ class IdentifierAdminForm(forms.ModelForm):
|
|||
lookup_class=EditionLookup,
|
||||
label='Edition',
|
||||
widget=AutoCompleteSelectWidget(lookup_class=EditionLookup, attrs={'size':60}),
|
||||
required=True,
|
||||
required=False,
|
||||
)
|
||||
class Meta(object):
|
||||
model = models.Identifier
|
||||
|
|
|
@ -3,7 +3,7 @@ from selectable.registry import registry
|
|||
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models import Count
|
||||
from regluit.core.models import Work, PublisherName, Edition, Subject, EditionNote
|
||||
from regluit.core.models import Work, PublisherName, Edition, Subject, EditionNote, Ebook
|
||||
from regluit.utils.text import sanitize_line
|
||||
|
||||
class OwnerLookup(ModelLookup):
|
||||
|
@ -32,6 +32,20 @@ class PublisherNameLookup(ModelLookup):
|
|||
publisher_name.save()
|
||||
return publisher_name
|
||||
|
||||
class EbookLookup(ModelLookup):
|
||||
model = Ebook
|
||||
search_fields = ('edition__title__icontains',)
|
||||
filters = {'edition__isnull': False, }
|
||||
|
||||
def get_item(self, value):
|
||||
item = None
|
||||
if value:
|
||||
try:
|
||||
item = Ebook.objects.get(pk=value)
|
||||
except (ValueError, Ebook.DoesNotExist):
|
||||
item = None
|
||||
return item
|
||||
|
||||
class EditionLookup(ModelLookup):
|
||||
model = Edition
|
||||
search_fields = ('title__icontains',)
|
||||
|
@ -69,4 +83,5 @@ registry.register(WorkLookup)
|
|||
registry.register(PublisherNameLookup)
|
||||
registry.register(EditionLookup)
|
||||
registry.register(SubjectLookup)
|
||||
registry.register(EditionNoteLookup)
|
||||
registry.register(EditionNoteLookup)
|
||||
registry.register(EbookLookup)
|
Loading…
Reference in New Issue