12345678910111213141516171819202122232425262728293031 |
- from django.db.models.signals import pre_delete, post_delete, post_save
- from django.dispatch import receiver
- from .models import Task, Project, Comment
- from mycreole import delete_attachment_target_path
- from .search import load_index, delete_item, update_item
-
-
- @receiver(pre_delete, sender=Task)
- @receiver(pre_delete, sender=Project)
- @receiver(pre_delete, sender=Comment)
- def item_cache_delete(instance, **kwargs):
- delete_attachment_target_path(instance.attachment_target_path)
-
-
- @receiver(post_delete, sender=Task)
- def search_index_item_delete(instance, **kwargs):
- # delete index entry
- ix = load_index()
- delete_item(ix, instance)
-
-
- @receiver(post_save, sender=Task)
- @receiver(post_save, sender=Comment)
- @receiver(post_delete, sender=Comment)
- def search_index_item_update(instance, **kwargs):
- if type(instance) == Comment:
- task = instance.task
- else:
- task = instance
- ix = load_index()
- update_item(ix, task)
|