X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/3d8d1e8e463efe111ed2e2a99861ada52759a1d9..8ecd1d2fd23efe7ca31667890f0963fdcd92fa2e:/src/catalogue/models/book.py diff --git a/src/catalogue/models/book.py b/src/catalogue/models/book.py index 0400656e2..35ca3c1f9 100644 --- a/src/catalogue/models/book.py +++ b/src/catalogue/models/book.py @@ -94,7 +94,7 @@ class Book(models.Model): objects = models.Manager() tagged = managers.ModelTaggedItemManager(Tag) tags = managers.TagDescriptor(Tag) - tag_relations = GenericRelation(Tag.intermediary_table_model) + tag_relations = GenericRelation(Tag.intermediary_table_model, related_query_name='tagged_book') translators = models.ManyToManyField(Tag, blank=True) narrators = models.ManyToManyField(Tag, blank=True, related_name='narrated') has_audio = models.BooleanField(default=False) @@ -473,6 +473,8 @@ class Book(models.Model): def get_sync(self): + if not self.has_sync_file(): + return '[]' with self.get_media('sync').first().file.open('r') as f: sync = f.read().split('\n') offset = float(sync[0]) @@ -1094,7 +1096,7 @@ class Book(models.Model): return None def update_popularity(self): - count = self.tags.filter(category='set').values('user').order_by('user').distinct().count() + count = self.userlistitem_set.values('list__user').order_by('list__user').distinct().count() try: pop = self.popularity pop.count = count @@ -1105,17 +1107,6 @@ class Book(models.Model): def ridero_link(self): return 'https://ridero.eu/%s/books/wl_%s/' % (get_language(), self.slug.replace('-', '_')) - def like(self, user): - from social.utils import likes, get_set, set_sets - if not likes(user, self): - tag = get_set(user, '') - set_sets(user, self, [tag]) - - def unlike(self, user): - from social.utils import likes, set_sets - if likes(user, self): - set_sets(user, self, []) - def full_sort_key(self): return self.SORT_KEY_SEP.join((self.sort_key_author, self.sort_key, str(self.id)))