# 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
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) :
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