fmartingr
/
shelfzilla
Archived
1
0
Fork 0

Better admin listing

This commit is contained in:
Felipe Martin 2014-03-26 15:48:22 +01:00
parent c9868beef8
commit 5748c7dc3a
2 changed files with 31 additions and 4 deletions

View File

@ -1,16 +1,26 @@
from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
import reversion
from .models import Publisher, Series, Volume
class PublisherAdmin(reversion.VersionAdmin):
pass
list_display = ['name', 'series_count']
def series_count(self, obj):
return obj.series.count()
series_count.short_description = _('Series')
admin.site.register(Publisher, PublisherAdmin)
class SeriesAdmin(reversion.VersionAdmin):
pass
list_display = ['name', 'volumes_count']
def volumes_count(self, obj):
return obj.volumes.distinct('number').count()
volumes_count.short_description = _('Volumes')
admin.site.register(Series, SeriesAdmin)

View File

@ -7,6 +7,13 @@ from shelfzilla.models import ReviewModel
class Publisher(ReviewModel):
name = models.CharField(_('Name'), max_length=40)
def __unicode__(self):
return u'{}'.format(self.name)
@property
def series(self):
return self.volumes.distinct('series')
class Meta:
verbose_name = _('Publisher')
verbose_name_plural = _('Publishers')
@ -15,6 +22,13 @@ class Publisher(ReviewModel):
class Series(ReviewModel):
name = models.CharField(_('Name'), max_length=40)
def __unicode__(self):
return u'{}'.format(self.name)
@property
def publishers(self):
return self.volumes.distinct('publisher')
class Meta:
verbose_name = _('Series')
verbose_name_plural = _('Series')
@ -22,13 +36,16 @@ class Series(ReviewModel):
class Volume(ReviewModel):
number = models.IntegerField(_('Number'))
series = models.ForeignKey(Series)
publisher = models.ForeignKey(Publisher)
series = models.ForeignKey(Series, related_name="volumes")
publisher = models.ForeignKey(Publisher, related_name="volumes")
isbn_10 = models.CharField(
_('ISBN-10'), max_length=10, blank=True, null=True)
isbn_13 = models.CharField(
_('ISBN-13'), max_length=13, blank=True, null=True)
def __unicode__(self):
return u'{} #{}'.format(self.series.name, self.number)
class Meta:
verbose_name = _('Volume')
verbose_name_plural = _('Volumes')