fmartingr
/
shelfzilla
Archived
1
0
Fork 0
This repository has been archived on 2021-06-29. You can view files and clone it, but cannot push or open issues or pull requests.
shelfzilla/shelfzilla/apps/manga/models.py

56 lines
1.5 KiB
Python

from django.db import models
from django.utils.translation import ugettext_lazy as _
from shelfzilla.models import ReviewModel
class Publisher(ReviewModel):
name = models.CharField(_('Name'), max_length=40)
url = models.URLField(_('URL'), blank=True, null=True)
def __unicode__(self):
return u'{}'.format(self.name)
@property
def series(self):
return self.volumes.distinct('series')
class Meta:
ordering = ['name']
verbose_name = _('Publisher')
verbose_name_plural = _('Publishers')
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:
ordering = ['name']
verbose_name = _('Series')
verbose_name_plural = _('Series')
class Volume(ReviewModel):
number = models.IntegerField(_('Number'))
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:
ordering = ['series__name', 'number']
verbose_name = _('Volume')
verbose_name_plural = _('Volumes')