fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
detail page getting shape
[wolnelektury.git]
/
apps
/
catalogue
/
models.py
diff --git
a/apps/catalogue/models.py
b/apps/catalogue/models.py
index
4da82ef
..
e4cd8c4
100644
(file)
--- a/
apps/catalogue/models.py
+++ b/
apps/catalogue/models.py
@@
-24,7
+24,7
@@
from newtagging.models import TagBase, tags_updated
from newtagging import managers
from catalogue.fields import JSONField, OverwritingFileField
from catalogue.utils import create_zip, split_tags
from newtagging import managers
from catalogue.fields import JSONField, OverwritingFileField
from catalogue.utils import create_zip, split_tags
-from catalogue.tasks import touch_tag
+from catalogue.tasks import touch_tag
, index_book
from shutil import copy
from glob import glob
import re
from shutil import copy
from glob import glob
import re
@@
-510,16
+510,12
@@
class Book(models.Model):
tags = self.tags.filter(category__in=('author', 'kind', 'genre', 'epoch'))
tags = split_tags(tags)
tags = self.tags.filter(category__in=('author', 'kind', 'genre', 'epoch'))
tags = split_tags(tags)
- formats =
[]
+ formats =
{}
# files generated during publication
for ebook_format in self.ebook_formats:
if self.has_media(ebook_format):
# files generated during publication
for ebook_format in self.ebook_formats:
if self.has_media(ebook_format):
- formats.append(u'<a href="%s">%s</a>' % (
- "", #self.get_media(ebook_format).url,
- ebook_format.upper()
- ))
+ formats[ebook_format] = self.get_media(ebook_format)
- formats = [mark_safe(format) for format in formats]
short_html = unicode(render_to_string('catalogue/book_short.html',
{'book': self, 'tags': tags, 'formats': formats}))
short_html = unicode(render_to_string('catalogue/book_short.html',
{'book': self, 'tags': tags, 'formats': formats}))
@@
-732,17
+728,15
@@
class Book(models.Model):
return result.wait()
def search_index(self, book_info=None):
return result.wait()
def search_index(self, book_info=None):
- if settings.SEARCH_INDEX_PARALLEL:
- if instance(settings.SEARCH_INDEX_PARALLEL, int):
- idx = search.ReusableIndex(threads=4)
- else:
- idx = search.ReusableIndex()
+ if settings.CELERY_ALWAYS_EAGER:
+ idx = search.ReusableIndex()
else:
idx = search.Index()
idx.open()
try:
idx.index_book(self, book_info)
else:
idx = search.Index()
idx.open()
try:
idx.index_book(self, book_info)
+ idx.index_tags()
finally:
idx.close()
finally:
idx.close()
@@
-834,7
+828,7
@@
class Book(models.Model):
book.build_mobi()
if not settings.NO_SEARCH_INDEX and search_index:
book.build_mobi()
if not settings.NO_SEARCH_INDEX and search_index:
-
book.search_index(
book_info)
+
index_book.delay(book.id,
book_info)
book_descendants = list(book.children.all())
descendants_tags = set()
book_descendants = list(book.children.all())
descendants_tags = set()
@@
-1037,7
+1031,7
@@
class Fragment(models.Model):
verbose_name_plural = _('fragments')
def get_absolute_url(self):
verbose_name_plural = _('fragments')
def get_absolute_url(self):
- return '%s#m%s' % (
self.book.get_html_url(
), self.anchor)
+ return '%s#m%s' % (
reverse('book_text', args=[self.book.slug]
), self.anchor)
def reset_short_html(self):
if self.id is None:
def reset_short_html(self):
if self.id is None: