X-Git-Url: https://svn.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/011a53d5681ad1f5fa88a534ec041c93d3e7be95..9d15a219a1b6910463064c64f9c211c606b4b5eb:/skins/selectioncontext.py

diff --git a/skins/selectioncontext.py b/skins/selectioncontext.py
index f042b6d..fa7c090 100644
--- a/skins/selectioncontext.py
+++ b/skins/selectioncontext.py
@@ -2,7 +2,6 @@
 from Products.CMFCore.utils import getToolByName
 from Products.Portfolio.utils import translate
 def _(message) : return translate(message, context).encode('utf-8')
-bsize = 20
 options = {}
 
 uidh = getToolByName(context, 'portal_uidhandler')
@@ -16,123 +15,127 @@ portalDepth = len(portal.getPhysicalPath())
 req = context.REQUEST
 toUrl = req.physicalPathToURL
 resp = req.RESPONSE
+bsize = portal.getProperty('default_batch_size', 20)
 
 if traverse_subpath[-1] == 'photo_view_ajax' :
-	photoSubPath = traverse_subpath[:-1]
-	ajax = True
+    photoSubPath = traverse_subpath[:-1]
+    ajax = True
 else : 
-	photoSubPath = traverse_subpath
-	ajax = False
-	
+    photoSubPath = traverse_subpath
+    ajax = False
+    
 photo = portal.restrictedTraverse(photoSubPath)
 photouid = uidh.register(photo)
 
 lightboxpath = req.SESSION.get('lightboxpath', None)
 selectionIsLightbox = False
 if lightboxpath is None :
-	selection = req.SESSION.get('objects_selection', [])
+    selection = req.SESSION.get('objects_selection', [])
 else :
-	try :
-		lightbox = portal.restrictedTraverse(lightboxpath)
-		selection = lightbox.getUidList()
-		selectionIsLightbox = True
-	except:
-		req.SESSION.set('lightboxpath', None)
-		selection = req.SESSION.get('objects_selection', [])
+    try :
+        lightbox = portal.restrictedTraverse(lightboxpath)
+        selection = lightbox.getUidList()
+        selectionIsLightbox = True
+    except:
+        req.SESSION.set('lightboxpath', None)
+        selection = req.SESSION.get('objects_selection', [])
 
 if pptool :
-	buyable = bool(pptool.getPrintingOptionsFor(photo))
-	sd = context.session_data_manager.getSessionData(create=1)
-	cart = sd.get('cart', None)
-	if cart and cart.locked :
-		buyable = False
+    buyable = bool(pptool.getPrintingOptionsFor(photo))
+    sd = context.session_data_manager.getSessionData(create=1)
+    cart = sd.get('cart', None)
+    if cart and cart.locked :
+        buyable = False
 else :
-	buyable = False
+    buyable = False
 options['buyable'] = buyable
 
 infos = []
 posOfPhoto = 0
 
 if ajax == True :
-	try : posOfPhoto = selection.index(photouid)
-	except ValueError : pass
-	options['backToContextUrl'] = '%s?b_start:int=%s' % (selectionUrl, posOfPhoto/bsize*bsize)
-	photoPath = list(photo.getPhysicalPath())
-	photoPath.insert(portalDepth, 'selectioncontext')
-	options['lastBcUrl'] = toUrl(photoPath)
-	meth = getattr(photo, 'photo_view_ajax_template')
-	return meth(req, resp, **options)
+    try : posOfPhoto = selection.index(photouid)
+    except ValueError : pass
+    options['backToContextUrl'] = '%s?b_start:int=%s' % (selectionUrl, posOfPhoto/bsize*bsize)
+    photoPath = list(photo.getPhysicalPath())
+    photoPath.insert(portalDepth, 'selectioncontext')
+    options['lastBcUrl'] = toUrl(photoPath)
+    app = context.restrictedTraverse('/')
+    meth = app.restrictedTraverse(photo.getPhysicalPath() + ('photo_view_ajax_template',))
+    return meth(req, resp, **options)
 
 
 for i, uid in enumerate(selection) :
-	b = uidh.getBrain(uid)
-	size = b.getThumbnailSize
-	size = {'width':int(size['width']/2.0), 'height':int(size['height']/2.0)}
-
-	if uid == photouid :
-		className = 'selected displayed'
-		posOfPhoto = i
-	else :
-		className = 'selected'
-
-	path = b.getPath().split('/')
-	path.insert(portalDepth, 'selectioncontext')
-	
-	d = {'src': '%s/getThumbnail' % b.getURL()
-		,'href': toUrl(path)
-		,'thumbSize': size
-		,'title' : b.Title
-		,'className': className
-		, 'index': i
-		}
-	infos.append(d)
+    b = uidh.getBrain(uid)
+    size = b.getThumbnailSize
+    size = {'width':int(size['width']/2.0), 'height':int(size['height']/2.0)}
+
+    if uid == photouid :
+        className = 'selected displayed'
+        posOfPhoto = i
+    else :
+        className = 'selected'
+
+    path = b.getPath().split('/')
+    path.insert(portalDepth, 'selectioncontext')
+    
+    d = {'src': '%s/getThumbnail' % b.getURL()
+        ,'href': toUrl(path)
+        ,'thumbSize': size
+        ,'title' : b.Description
+        ,'className' : className
+        ,'displayed' : uid == photouid
+        , 'index': i
+        }
+    infos.append(d)
 
 if posOfPhoto > 0 :
-	previous = infos[posOfPhoto - 1]['href']
+    previous = infos[posOfPhoto - 1]['href']
 else :
-	previous = infos[0]['href']
+    previous = infos[0]['href']
 
 if posOfPhoto < len(infos) -1 :
-	next = infos[posOfPhoto + 1]['href']
+    next = infos[posOfPhoto + 1]['href']
 else :
-	next = infos[-1]['href']
+    next = infos[-1]['href']
 
 
 contextInfos = {'infos':infos,
-				'isSelected':True,
-				'backUrl' : '%s?b_start:int=%s' % (selectionUrl, posOfPhoto/bsize*bsize),
-				'index' : posOfPhoto,
-				'previous' : previous,
-				'next' : next,
-				'reBaseCtxUrl':'/^%s/' % (portal_url+'/selectioncontext/').replace('/', '\/'),
-				'canonicalUrl': "'%s/'" % portal_url}
+                'isSelected':True,
+                'backUrl' : '%s?b_start:int=%s' % (selectionUrl, posOfPhoto/bsize*bsize),
+                'index' : posOfPhoto,
+                'previous' : previous,
+                'next' : next,
+                'reBaseCtxUrl':'/^%s/' % (portal_url+'/selectioncontext/').replace('/', '\/'),
+                'canonicalUrl': "'%s/'" % portal_url}
 
 options['contextInfos'] = contextInfos
 
 # breadcrumbs customization
 if selectionIsLightbox :
-	lastBcTitle = '%s (%s)' % (_('My selection'), lightbox.title_or_id())
+    lastBcTitle = '%s (%s)' % (_('My selection'), lightbox.title_or_id())
 else :
-	lastBcTitle = _('My selection')
+    lastBcTitle = _('My selection')
 
 breadcrumbs = [
-	{ 'id'		: 'root'
-	, 'title'	: portal.title
-	, 'url'	   : portal_url},
-	
-	{'id'		: 'selection_view'
-	 ,'title'	: lastBcTitle
-	 , 'url'	: selectionUrl},
-	
-	{'id'		: photo.getId()
-	 ,'title'	: photo.title_or_id()
-	 , 'url'	: req.ACTUAL_URL}
-	]
+    { 'id'      : 'root'
+    , 'title'   : portal.title
+    , 'url'    : portal_url},
+    
+    {'id'       : 'selection_view'
+     ,'title'   : lastBcTitle
+     , 'url'    : selectionUrl},
+    
+    {'id'       : photo.getId()
+     ,'title'   : photo.title_or_id()
+     , 'url'    : req.ACTUAL_URL}
+    ]
 
 options['breadcrumbs'] = breadcrumbs
 
 
 ti = photo.getTypeInfo()
 method_id = ti.queryMethodID('view', context=photo)
-meth = getattr(photo, method_id)
+app = context.restrictedTraverse('/')
+meth = app.restrictedTraverse(photo.getPhysicalPath() + (method_id,))
 return meth(req, resp, **options)