src/ldt/ldt/ldt_utils/contentindexer.py
changeset 1072 687dabdd25a7
parent 1046 643a0f1991c0
child 1074 36f657714851
--- a/src/ldt/ldt/ldt_utils/contentindexer.py	Wed Jan 16 05:34:32 2013 +0100
+++ b/src/ldt/ldt/ldt_utils/contentindexer.py	Mon Jan 21 17:26:18 2013 +0100
@@ -1,7 +1,6 @@
-from django.db.models.signals import post_save
 from django.dispatch import receiver
 from ldt import settings
-from ldt.ldt_utils.models import Segment, Content, Project
+from ldt.ldt_utils.models import Segment, Content, post_project_save, Project
 from ldt.ldt_utils.stat import update_stat_project
 from ldt.ldt_utils.utils import reduce_text_node
 from tagging import settings as tagging_settings
@@ -177,14 +176,37 @@
             for ensemble in content.getchildren():
                 self.index_ensemble(ensemble, content_obj, project)
 
-@receiver(post_save, sender=Project)
-def index_project(sender, **kwargs):
-    if settings.AUTO_INDEX_AFTER_SAVE:
+@receiver(post_project_save)
+def index_project(**kwargs):
+    must_reindex = kwargs.get("must_reindex", True)
+    if must_reindex and settings.AUTO_INDEX_AFTER_SAVE:
         instance = kwargs['instance']
-        if instance.state != 2:
+        if instance.state != Project.PUBLISHED:
             Segment.objects.filter(project_obj__ldt_id=instance.ldt_id).delete() #@UndefinedVariable
             update_stat_project(instance)
         else:
             projectIndexer = ProjectIndexer([instance])
             projectIndexer.index_all()
             update_stat_project(instance)
+
+
+
+def add_segment(project, project_id, iri_id, ensemble_id, cutting_id, element_id):
+    
+    #TODO : implement
+    pass
+
+
+def delete_segment(project, project_id, iri_id, ensemble_id, cutting_id, element_id):
+
+    seg_deleted = False         
+    # delete Segment
+    for seg in Segment.objects.filter(project_id=project_id, iri_id=iri_id, ensemble_id=ensemble_id, cutting_id=cutting_id, element_id=element_id):
+        seg_deleted = True
+        seg.delete()
+    # update stats too difficult to do it individually
+    if seg_deleted:
+        update_stat_project(project)
+    
+    
+    
\ No newline at end of file