X-Git-Url: https://svn.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/2d47c9c3dc8e8265381e167514626f854a2a6f2b..f8014f2a3d768a6366b422d7d08ad3ac75dc0b6b:/manipulation.py?ds=sidebyside diff --git a/manipulation.py b/manipulation.py index a4623ba..43bd086 100755 --- a/manipulation.py +++ b/manipulation.py @@ -18,6 +18,7 @@ from types import StringTypes 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]') @@ -50,6 +51,8 @@ class ImageQueueProcessorThread(threading.Thread) : #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) @@ -122,13 +125,17 @@ class ImageQueueProcessorThread(threading.Thread) : pass p.tiles_available = 1 - p.reindexObject(idxs=['tiles_available']) + + portal = app.unrestrictedTraverse(self.portal_path) + ctool = portal.portal_catalog + uid = '/'.join(p.getPhysicalPath()) + ctool.reindexObject(p, idxs=['tiles_available'], uid=uid) 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