Fixes in new layout.
[wolnelektury.git] / src / catalogue / models / book.py
index 01f0281..d3eddfd 100644 (file)
@@ -226,6 +226,11 @@ class Book(models.Model):
     def isbn_mobi(self):
         return self.get_extra_info_json().get('isbn_mobi')
 
+    def is_accessible_to(self, user):
+        if not self.preview:
+            return True
+        Membership = apps.get_model('club', 'Membership')
+        return Membership.is_active_for(user)
 
     def save(self, force_insert=False, force_update=False, **kwargs):
         from sortify import sortify
@@ -738,6 +743,8 @@ class Book(models.Model):
     def update_references(self):
         from references.models import Entity, Reference
         master = self.get_master()
+        if master is None:
+            master = []
         found = set()
         for i, sec in enumerate(master):
             for ref in sec.findall('.//ref'):
@@ -829,7 +836,7 @@ class Book(models.Model):
     def related_themes(self):
         return Tag.objects.usage_for_queryset(
             Fragment.objects.filter(models.Q(book=self) | models.Q(book__ancestor=self)),
-            counts=True).filter(category='theme')
+            counts=True).filter(category='theme').order_by('-count')
 
     def parent_cover_changed(self):
         """Called when parent book's cover image is changed."""