--- 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