X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/89b615b771a8158cdb9f3f9fecd8301686f0da02..3fe137045c9711462e0e37d0ba929070fe8359ef:/src/catalogue/models/book.py diff --git a/src/catalogue/models/book.py b/src/catalogue/models/book.py index 6527d11d6..3715e7b98 100644 --- a/src/catalogue/models/book.py +++ b/src/catalogue/models/book.py @@ -61,6 +61,7 @@ class Book(models.Model): gazeta_link = models.CharField(blank=True, max_length=240) wiki_link = models.CharField(blank=True, max_length=240) print_on_demand = models.BooleanField(_('print on demand'), default=False) + recommended = models.BooleanField(_('recommended'), default=False) # files generated during publication cover = EbookField( @@ -80,6 +81,9 @@ class Book(models.Model): parent = models.ForeignKey('self', blank=True, null=True, related_name='children') ancestor = models.ManyToManyField('self', blank=True, editable=False, related_name='descendant', symmetrical=False) + cached_author = models.CharField(blank=True, max_length=240, db_index=True) + has_audience = models.BooleanField(default=False) + objects = models.Manager() tagged = managers.ModelTaggedItemManager(Tag) tags = managers.TagDescriptor(Tag) @@ -119,7 +123,7 @@ class Book(models.Model): return ', '.join(self.tags.filter(category=category).values_list('name', flat=True)) def author_unicode(self): - return self.tag_unicode('author') + return self.cached_author def translator(self): translators = self.extra_info.get('translators') @@ -132,6 +136,9 @@ class Book(models.Model): others = '' return ', '.join(u'\xa0'.join(reversed(translator.split(', ', 1))) for translator in translators) + others + def cover_source(self): + return self.extra_info.get('cover_source', self.parent.cover_source() if self.parent else '') + def save(self, force_insert=False, force_update=False, **kwargs): from sortify import sortify @@ -144,6 +151,9 @@ class Book(models.Model): author = u'' self.sort_key_author = author + self.cached_author = self.tag_unicode('author') + self.has_audience = 'audience' in self.extra_info + ret = super(Book, self).save(force_insert, force_update, **kwargs) return ret @@ -572,6 +582,7 @@ class Book(models.Model): "SP": (1, u"szkoła podstawowa"), "SP1": (1, u"szkoła podstawowa"), "SP2": (1, u"szkoła podstawowa"), + "SP3": (1, u"szkoła podstawowa"), "P": (1, u"szkoła podstawowa"), "G": (2, u"gimnazjum"), "L": (3, u"liceum"),