X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/8159cf8992d55a28ee79f687ab87f332664ff155..4ddb93217b0476206908c0f2b4a66989631bdef3:/src/catalogue/models/book.py diff --git a/src/catalogue/models/book.py b/src/catalogue/models/book.py index db50f3e3c..69d71aef2 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,18 @@ 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') + if not translators: + return None + if len(translators) > 3: + translators = translators[:2] + others = ' i inni' + else: + others = '' + return ', '.join(u'\xa0'.join(reversed(translator.split(', ', 1))) for translator in translators) + others def save(self, force_insert=False, force_update=False, **kwargs): from sortify import sortify @@ -133,6 +148,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 @@ -561,6 +579,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"),