X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/cc9a57b827d7303c37f3b2d271e7c2f661d30e45..e6dd6130291ef3a958bd6d8666ee16ad8e633056:/apps/dictionary/models.py diff --git a/apps/dictionary/models.py b/apps/dictionary/models.py index 6238ccbf2..2256acf71 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) + +def notes_from_book(sender, instance, **kwargs): + build_notes.delay(instance) +Book.html_built.connect(notes_from_book)