|
a/Allura/allura/model/session.py |
|
b/Allura/allura/model/session.py |
|
... |
|
... |
56 |
def after_flush(self, obj=None):
|
56 |
def after_flush(self, obj=None):
|
57 |
"Update artifact references, and add/update this artifact to solr"
|
57 |
"Update artifact references, and add/update this artifact to solr"
|
58 |
import allura.tasks.index_tasks
|
58 |
import allura.tasks.index_tasks
|
59 |
if not getattr(self.session, 'disable_artifact_index', False):
|
59 |
if not getattr(self.session, 'disable_artifact_index', False):
|
60 |
from .stats import CPA
|
60 |
from .stats import CPA
|
61 |
from .index import IndexOp, ArtifactReference
|
61 |
from .index import ArtifactReference
|
|
|
62 |
from .session import main_orm_session
|
|
|
63 |
# Ensure artifact references exist for new objects
|
62 |
for obj in self.objects_deleted:
|
64 |
for obj in self.objects_added:
|
63 |
IndexOp.del_op(obj)
|
|
|
64 |
for obj in self.objects_added + self.objects_modified:
|
|
|
65 |
ArtifactReference.from_artifact(obj)
|
65 |
ArtifactReference.from_artifact(obj)
|
66 |
IndexOp.add_op(obj)
|
66 |
# Post delete and add indexing operations
|
67 |
if (self.objects_added
|
|
|
68 |
or self.objects_modified
|
|
|
69 |
or self.objects_deleted):
|
|
|
70 |
session(ArtifactReference).flush()
|
|
|
71 |
allura.tasks.index_tasks.index.post()
|
67 |
allura.tasks.index_tasks.del_artifacts.post(
|
|
|
68 |
[ obj.index_id() for obj in self.objects_deleted ])
|
|
|
69 |
allura.tasks.index_tasks.add_artifacts.post(
|
|
|
70 |
[ obj.index_id() for obj in self.objects_added + self.objects_modified ])
|
|
|
71 |
# Flush tasks
|
|
|
72 |
main_orm_session.flush()
|
72 |
for obj in self.objects_added:
|
73 |
for obj in self.objects_added:
|
73 |
CPA.post('create', obj)
|
74 |
CPA.post('create', obj)
|
74 |
for obj in self.objects_modified:
|
75 |
for obj in self.objects_modified:
|
75 |
CPA.post('modify', obj)
|
76 |
CPA.post('modify', obj)
|
76 |
for obj in self.objects_deleted:
|
77 |
for obj in self.objects_deleted:
|