bugfix : copier/coller hasardeux.
[Portfolio.git] / manipulation.py
index a4623ba..ce74a7d 100755 (executable)
@@ -18,6 +18,7 @@ from types import StringTypes
 from math import ceil
 import transaction
 from ZODB.POSException import ConflictError
 from math import ceil
 import transaction
 from ZODB.POSException import ConflictError
+from zope.site.hooks import setSite
 from cStringIO import StringIO
 
 console = logging.getLogger('[manipulation thread]')
 from cStringIO import StringIO
 
 console = logging.getLogger('[manipulation thread]')
@@ -50,6 +51,8 @@ class ImageQueueProcessorThread(threading.Thread) :
                #atexit.register(self.stop)
                import Zope2
                app = Zope2.app()
                #atexit.register(self.stop)
                import Zope2
                app = Zope2.app()
+               portal = app.unrestrictedTraverse(self.portal_path)
+               setSite(portal)
                while not self.__stopped and self.queueSize :
                        self._process(app)
                
                while not self.__stopped and self.queueSize :
                        self._process(app)
                
@@ -122,13 +125,14 @@ class ImageQueueProcessorThread(threading.Thread) :
                                pass
                        
                        p.tiles_available = 1
                                pass
                        
                        p.tiles_available = 1
+                       assert p._getCatalogTool()
                        p.reindexObject(idxs=['tiles_available'])
                        transaction.commit()
 
                except ConflictError :
                        console.warn('Resync after ZODB ConflicError')
                        transaction.abort()
                        p.reindexObject(idxs=['tiles_available'])
                        transaction.commit()
 
                except ConflictError :
                        console.warn('Resync after ZODB ConflicError')
                        transaction.abort()
-                       portal = app.unrestrictedTraverse(portal_path)
+                       portal = app.unrestrictedTraverse(self.portal_path)
                        portal._p_jar.sync()
                        self.queueAdd(path)
                        return
                        portal._p_jar.sync()
                        self.queueAdd(path)
                        return