X-Git-Url: https://scm.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/011a53d5681ad1f5fa88a534ec041c93d3e7be95..42326bd00929e6b3bae3c8f0618d5073852282b6:/ImageManipulationTool.py diff --git a/ImageManipulationTool.py b/ImageManipulationTool.py index 5f9fa04..77e3a9a 100755 --- a/ImageManipulationTool.py +++ b/ImageManipulationTool.py @@ -9,8 +9,6 @@ # http://creativecommons.org/licenses/by-nc/2.0/ # ############################################################ """ Image manipulation tool -$Id: ImageManipulationTool.py 1391 2009-09-16 23:36:05Z pin $ -$URL: http://svn.luxia.fr/svn/labo/projects/zope/Portfolio/trunk/ImageManipulationTool.py $ """ from AccessControl import ClassSecurityInfo @@ -28,9 +26,9 @@ from Products.MailHost.decorator import synchronized import time from logging import getLogger from threading import Lock +import weakref console = getLogger('[portal_image_manipulation]') - -queue_threads = {} +queue_threads = weakref.WeakValueDictionary() class ImageManipulationTool( UniqueObject, OrderedFolder) : @@ -102,8 +100,13 @@ class ImageManipulationTool( UniqueObject, OrderedFolder) : if not self.isRunning() : utool = getToolByName(self, 'portal_url') + ctool = getToolByName(self, 'portal_catalog') portal = utool.getPortalObject() - thread = ImageQueueProcessorThread(portal.getPhysicalPath(), itemPath) + brains = ctool.unrestrictedSearchResults(portal_type='Photo', tiles_available=0) + paths = [b.getPath() for b in brains] + if itemPath is not None and itemPath not in paths : + paths.insert(0, itemPath) + thread = ImageQueueProcessorThread(portal.getPhysicalPath(), paths) thread.start() path = self.absolute_url(1) queue_threads[path] = thread