Better management of manually-set members.
[wolnelektury.git] / src / dictionary / models.py
index c2891e1..d395b23 100644 (file)
@@ -46,6 +46,8 @@ class NoteSource(models.Model):
 
 @task(ignore_result=True)
 def build_notes(book):
 
 @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()
     task_logger.info(book.slug)
     with transaction.atomic():
         book.notesource_set.all().delete()
@@ -68,7 +70,6 @@ def build_notes(book):
                         fn_type=fn_type,
                         language=language
                         )
                         fn_type=fn_type,
                         language=language
                         )
-
                 qualifier_objects = []
                 for qualifier in qualifiers:
                     obj, created = Qualifier.objects.get_or_create(
                 qualifier_objects = []
                 for qualifier in qualifiers:
                     obj, created = Qualifier.objects.get_or_create(
@@ -76,12 +77,13 @@ def build_notes(book):
                             'name': FN_QUALIFIERS.get(qualifier, '')
                         })
                     qualifier_objects.append(obj)
                             'name': FN_QUALIFIERS.get(qualifier, '')
                         })
                     qualifier_objects.append(obj)
-                note.qualifiers = qualifier_objects
+                note.qualifiers.set(qualifier_objects)
                 note.notesource_set.create(book=book, anchor=anchor)
 
         Note.objects.filter(notesource=None).delete()
 
 
 def notes_from_book(sender, instance, **kwargs):
                 note.notesource_set.create(book=book, anchor=anchor)
 
         Note.objects.filter(notesource=None).delete()
 
 
 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)
 Book.html_built.connect(notes_from_book)