X-Git-Url: https://svn.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/011a53d5681ad1f5fa88a534ec041c93d3e7be95..c6109e6db4a3f1f8d0a79a324f56a9f0281522bc:/ImageManipulationTool.py?ds=inline

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