X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/5eeb9dace6068f83e2b70b5222cfab0c0a5e71eb..062a80b51a89bf2361930461c0ad7ae5e36a2bdd:/apps/dictionary/models.py diff --git a/apps/dictionary/models.py b/apps/dictionary/models.py index 6238ccbf2..7df3d75e3 100644 --- a/apps/dictionary/models.py +++ b/apps/dictionary/models.py @@ -10,6 +10,7 @@ from catalogue.models import Book class Note(models.Model): + """Represents a single annotation from a book.""" book = models.ForeignKey(Book) anchor = models.CharField(max_length=64) html = models.TextField() @@ -20,16 +21,15 @@ class Note(models.Model): @task(ignore_result=True) -def build_notes(book_id): - book = Book.objects.get(pk=book_id) +def build_notes(book): Note.objects.filter(book=book).delete() if book.html_file: from librarian import html for anchor, text_str, html_str in html.extract_annotations(book.html_file.path): Note.objects.create(book=book, anchor=anchor, - html=html_str, + html=html_str, sort_key=sortify(text_str).strip()[:128]) - -@Book.html_built.connect + def notes_from_book(sender, **kwargs): - build_notes.delat(sender) + build_notes.delay(sender) +Book.html_built.connect(notes_from_book)