Switch to side-by-side view

--- a/Allura/allura/model/session.py
+++ b/Allura/allura/model/session.py
@@ -58,17 +58,18 @@
         import allura.tasks.index_tasks
         if not getattr(self.session, 'disable_artifact_index', False):
             from .stats import CPA
-            from .index import IndexOp, ArtifactReference
-            for obj in self.objects_deleted:
-                IndexOp.del_op(obj)
-            for obj in self.objects_added + self.objects_modified:
+            from .index import ArtifactReference
+            from .session import main_orm_session
+            # Ensure artifact references exist for new objects
+            for obj in self.objects_added:
                 ArtifactReference.from_artifact(obj)
-                IndexOp.add_op(obj)
-            if (self.objects_added
-                or self.objects_modified
-                or self.objects_deleted):
-                session(ArtifactReference).flush()
-                allura.tasks.index_tasks.index.post()
+            # Post delete and add indexing operations
+            allura.tasks.index_tasks.del_artifacts.post(
+                [ obj.index_id() for obj in self.objects_deleted ])
+            allura.tasks.index_tasks.add_artifacts.post(
+                [ obj.index_id() for obj in self.objects_added + self.objects_modified ])
+            # Flush tasks
+            main_orm_session.flush()
             for obj in self.objects_added:
                 CPA.post('create', obj)
             for obj in self.objects_modified: