X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/4e361d55331351f56077e5f9999ecb4ee7e93819..9d7d8b6bf3dcc7b8322bc4d636d793fe46c106e8:/src/dictionary/models.py?ds=inline diff --git a/src/dictionary/models.py b/src/dictionary/models.py index 5c3d2b998..a3ac1ac96 100644 --- a/src/dictionary/models.py +++ b/src/dictionary/models.py @@ -1,8 +1,8 @@ -# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Wolne Lektury. See NOTICE for more information. # from django.db import models, transaction -from celery.task import task +from celery import shared_task from sortify import sortify from celery.utils.log import get_task_logger @@ -25,7 +25,7 @@ class Qualifier(models.Model): class Note(models.Model): """Represents a single annotation from a book.""" html = models.TextField() - sort_key = models.CharField(max_length=128, db_index=True) + sort_key = models.CharField(max_length=128, db_index=True, db_collation='C') fn_type = models.CharField(max_length=10, db_index=True) qualifiers = models.ManyToManyField(Qualifier) language = models.CharField(max_length=10, db_index=True) @@ -44,8 +44,10 @@ class NoteSource(models.Model): ordering = ['book'] -@task(ignore_result=True) +@shared_task(ignore_result=True) def build_notes(book): + if not book.findable: + return task_logger.info(book.slug) with transaction.atomic(): book.notesource_set.all().delete() @@ -82,5 +84,6 @@ def build_notes(book): def notes_from_book(sender, instance, **kwargs): - build_notes.delay(instance) + if instance.findable: + build_notes.delay(instance) Book.html_built.connect(notes_from_book)