fmartingr
/
shelfzilla
Archived
1
0
Fork 0

Added django-import-export support for Publishers, Series, Volumes and Persons

This commit is contained in:
Felipe Martin 2014-05-19 23:13:08 +02:00
parent aad78dd8c3
commit d335be47c9
4 changed files with 39 additions and 42 deletions

View File

@ -6,6 +6,7 @@ South==0.8.4
django-suit==0.2.8
django-reversion==1.8.0
django-solo==1.0.4
django-import-export==0.2.2
# Fixes
longerusername==0.4

View File

@ -3,23 +3,51 @@ from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.contrib import messages
from import_export import resources
from import_export.admin import ImportExportModelAdmin
import reversion
from .models import Publisher, Series, Volume, Person
###
# IMPORT EXPORT RESOURCES
###
class PublisherResource(resources.ModelResource):
class Meta:
model = Publisher
class SeriesResource(resources.ModelResource):
class Meta:
model = Series
class VolumeResource(resources.ModelResource):
class Meta:
model = Volume
class PersonResource(resources.ModelResource):
class Meta:
model = Person
# Actions
def mark_for_review(self, request, queryset):
queryset.update(for_review=True)
messages.success(request, _('Items marked for review'))
def unmark_for_review(self, request, queryset):
queryset.update(for_review=False)
messages.success(request, _('Items unmarked for review'))
# Modeladmin
class PublisherAdmin(reversion.VersionAdmin):
class PublisherAdmin(ImportExportModelAdmin, reversion.VersionAdmin):
resource_class = PublisherResource
list_display = ['name', 'series_count']
prepopulated_fields = {"slug": ("name",)}
actions = (mark_for_review, unmark_for_review, )
@ -52,7 +80,8 @@ class PublisherAdmin(reversion.VersionAdmin):
admin.site.register(Publisher, PublisherAdmin)
class SeriesAdmin(reversion.VersionAdmin):
class SeriesAdmin(ImportExportModelAdmin, reversion.VersionAdmin):
resource_class = SeriesResource
list_display = ['name', 'volumes_count']
prepopulated_fields = {"slug": ("name",)}
search_fields = ('name', )
@ -93,7 +122,8 @@ class SeriesAdmin(reversion.VersionAdmin):
admin.site.register(Series, SeriesAdmin)
class VolumeAdmin(reversion.VersionAdmin):
class VolumeAdmin(ImportExportModelAdmin, reversion.VersionAdmin):
resource_class = VolumeResource
# list_display_links = ('number', )
list_display = ('series', 'publisher', 'number', 'name', 'release_date',)
search_fields = ('number', 'series__name', )
@ -137,7 +167,8 @@ class VolumeAdmin(reversion.VersionAdmin):
admin.site.register(Volume, VolumeAdmin)
class PersonAdmin(reversion.VersionAdmin):
class PersonAdmin(ImportExportModelAdmin, reversion.VersionAdmin):
resource_class = PersonResource
suit_form_tabs = (
('general', _('General')),
('review', _('Review')),

View File

@ -54,6 +54,7 @@ INSTALLED_APPS = (
# DDBB
'reversion',
'south',
'import_export',
# Apps
'shelfzilla.apps._admin',

View File

@ -21,40 +21,4 @@ INSTALLED_APPS += (
'rosetta',
)
# Filer
STORAGES = {
'public': {
'main': {
'ENGINE': 'django.core.files.storage.FileSystemStorage',
'OPTIONS': {},
'UPLOAD_TO': 'shelfzilla.utils.generate_randomized',
'UPLOAD_TO_PREFIX': 'public',
},
'thumbnails': {
'ENGINE': 'django.core.files.storage.FileSystemStorage',
'OPTIONS': {},
'THUMBNAIL_OPTIONS': {
'base_dir': 'public_thumbnails',
},
},
},
'private': {
'main': {
'ENGINE': 'filer.storage.PrivateFileSystemStorage',
'OPTIONS': {
'location': os.path.abspath(os.path.join(MEDIA_ROOT, '../smedia/private')),
'base_url': '/smedia/private/',
},
'UPLOAD_TO': 'shelfzilla.utils.generate_randomized',
'UPLOAD_TO_PREFIX': '',
},
'thumbnails': {
'ENGINE': 'filer.storage.PrivateFileSystemStorage',
'OPTIONS': {
'location': os.path.abspath(os.path.join(MEDIA_ROOT, '../smedia/private_thumbnails')),
'base_url': '/smedia/private_thumbnails/',
},
'THUMBNAIL_OPTIONS': {},
},
},
}
FILER_DUMP_PAYLOAD = True