Optimisation
[Portfolio.git] / photo.py
index c0c92c6..f0a76f5 100755 (executable)
--- a/photo.py
+++ b/photo.py
@@ -29,7 +29,7 @@ from Products.CMFCore.DynamicType import DynamicType
 from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
 from Products.Photo.Photo import Photo as BasePhoto
 from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
 from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
 from Products.Photo.Photo import Photo as BasePhoto
 from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
-from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import getToolByName, getUtilityByInterfaceName
 from Products.Photo.cache import memoizedmethod
 from Products.DCWorkflow.utils import modifyRolesForPermission
 from interfaces import IPhoto
 from Products.Photo.cache import memoizedmethod
 from Products.DCWorkflow.utils import modifyRolesForPermission
 from interfaces import IPhoto
@@ -153,7 +153,7 @@ class Photo(DynamicType, CMFCatalogAware, BasePhoto, DefaultDublinCoreImpl) :
        @memoizedmethod()
        def DateTimeOriginal(self) :
                """ return DateTimeOriginal exif tag value or created """
        @memoizedmethod()
        def DateTimeOriginal(self) :
                """ return DateTimeOriginal exif tag value or created """
-               dto = self.getXmpValue('exif:DateTimeOriginal')
+               dto = self.getXmpValue('exif:DateTimeOriginal') or self.getXmpValue('xmp:CreateDate')
                if dto :
                        return DateTime(dto)
                else :
                if dto :
                        return DateTime(dto)
                else :
@@ -214,4 +214,14 @@ class Photo(DynamicType, CMFCatalogAware, BasePhoto, DefaultDublinCoreImpl) :
        
 InitializeClass(Photo)
 
        
 InitializeClass(Photo)
 
-PhotoFactory = Factory(Photo)
\ No newline at end of file
+class _PhotoFactory(Factory) :
+    def __call__(self, *args, **kw):
+        if not kw.has_key('thumb_height') or not kw.has_key('thumb_width') :
+            utool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IURLTool')
+            portal = utool.getPortalObject()
+            size = portal.getProperty('thumb_size')
+            kw.update({'thumb_height' : size, 'thumb_width' : size })
+        return self._callable(*args, **kw)
+    
+
+PhotoFactory = _PhotoFactory(Photo)
\ No newline at end of file