pass
class Meta:
- ordering = ('sort_key',)
+ ordering = ('sort_key_author', 'sort_key')
verbose_name = _('book')
verbose_name_plural = _('books')
app_label = 'catalogue'
def language_name(self):
return dict(settings.LANGUAGES).get(self.language_code(), "")
+ def is_foreign(self):
+ return self.language_code() != settings.LANGUAGE_CODE
+
def has_media(self, type_):
if type_ in Book.formats:
return bool(getattr(self, "%s_file" % type_))
else:
return None
+ def update_popularity(self):
+ count = self.tags.filter(category='set').values('user').order_by('user').distinct().count()
+ try:
+ pop = self.popularity
+ pop.count = count
+ pop.save()
+ except BookPopularity.DoesNotExist:
+ BookPopularity.objects.create(book=self, count=count)
+
def add_file_fields():
for format_ in Book.formats:
).contribute_to_class(Book, field_name)
add_file_fields()
+
+
+class BookPopularity(models.Model):
+ book = models.OneToOneField(Book, related_name='popularity')
+ count = models.IntegerField(default=0)