X-Git-Url: https://svn.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/7e38e85702295952deaaf04fda5bb44dd2550524..9d15a219a1b6910463064c64f9c211c606b4b5eb:/skins/getPhotosInfos.py?ds=sidebyside

diff --git a/skins/getPhotosInfos.py b/skins/getPhotosInfos.py
index 2d42635..3a55dcc 100755
--- a/skins/getPhotosInfos.py
+++ b/skins/getPhotosInfos.py
@@ -1,4 +1,4 @@
-##parameters=portfolio
+##parameters=portfolio, pho_start=None, batch_size=None
 from Products.Plinn.PloneMisc import Batch
 from Products.CMFCore.utils import getToolByName
 from Products.CMFCore.permissions import ReviewPortalContent, ModifyPortalContent
@@ -8,13 +8,13 @@ uidtool = getToolByName(context, 'portal_uidhandler')
 
 features = {}
 def toggleSelection(o, selected) :
-	if selected :
-		return '%s/remove_to_selection' % o.absolute_url()
-	else :
-		return '%s/add_to_selection' % o.absolute_url()
-	
+    if selected :
+        return '%s/remove_to_selection' % o.getURL()
+    else :
+        return '%s/add_to_selection' % o.getURL()
+    
 features['select'] = toggleSelection
-features['cart'] = lambda o : '%s/get_slide_buyable_items' % o.absolute_url()
+features['cart'] = lambda o : '%s/get_slide_buyable_items' % o.getURL()
 
 if mtool.checkPermission(ReviewPortalContent, context) :
     features['hideAnonymous'] = True
@@ -22,9 +22,14 @@ if mtool.checkPermission(ModifyPortalContent, context) :
     features['checkbox'] = True
 
 req = context.REQUEST
-pho_start = req.get('pho_start', 0)
-batch = Batch(portfolio.listNearestFolderContents(contentFilter={'portal_type' : ['Photo']}, sorted=True),
-			  context.default_batch_size, pho_start, orphan=5, quantumleap=1, b_start_str='pho_start')
+pho_start = pho_start if pho_start is not None else 0
+batch_size = batch_size if batch_size is not None else context.default_batch_size
+sort_on, sort_order = context.getDefaultSorting()
+contentFilter = {'portal_type' : ['Photo'],
+                 'sort_on' : sort_on,
+                 'sort_order' : sort_order}
+batch = Batch(portfolio.listCatalogedContents(contentFilter=contentFilter),
+              batch_size, pho_start, quantumleap=1, b_start_str='pho_start')
 
 
 infos = []
@@ -33,36 +38,41 @@ selDict = sd.get('objects_selection_dict', {})
 cart = sd.get('cart', None)
 
 for p in batch :
-	className = ''
-	uid = getattr(p, 'cmf_uid', None)
-	if uid is not None :
-		uid = uid()
-	absUrl = p.absolute_url()
-	selected = selDict.has_key(uid)
-	hiddenForAnonymous = p.hiddenForAnonymous()
-	if pptool :
-		buyable = bool(pptool.getPrintingOptionsFor(p))
-		if cart and cart.locked :
-			buyable = False
-	else :
-		buyable = False
-	
-	if selected :
-		className = 'selected'
-	if hiddenForAnonymous :
-		className = 'hidden-slide'
-	
-	d = {'href'		: absUrl
-		,'thumbUrl'	: '%s/getThumbnail' % absUrl
-		,'thumbSize': p.getThumbnailSize()
-		,'title'	: ('%s - %s' % (p.Title(), p.Description())).strip(' -')
-		,'selected'	: selected
-		,'hiddenForAnonymous' : hiddenForAnonymous
-		,'cmf_uid'	: uidtool.register(p)
-		,'buyable'  : buyable
-		,'className': className
-		,'o'		: p
-		}
-	infos.append(d)
+    className = ''
+    uid = getattr(p, 'cmf_uid', None)
+    # if uid is not None :
+    #     uid = uid()
+    absUrl = p.getURL()
+    selected = selDict.has_key(uid)
+    hiddenForAnonymous = p.hiddenForAnonymous
+    if pptool :
+        buyable = bool(pptool.getPrintingOptionsFor(p.getObject()))
+        if cart and cart.locked :
+            buyable = False
+    else :
+        buyable = False
+    
+    if selected :
+        className = 'selected'
+    if hiddenForAnonymous :
+        className = 'hidden-slide'
+    
+    d = {'href'     : absUrl
+        ,'thumbUrl' : '%s/getThumbnail' % absUrl
+        ,'thumbSize': p.getThumbnailSize
+        ,'title'    : ('%s - %s' % (p.Title, p.Description)).strip(' -')
+        ,'selected' : selected
+        ,'hiddenForAnonymous' : hiddenForAnonymous
+        ,'cmf_uid'  : uidtool.register(p)
+        ,'buyable'  : buyable
+        ,'className': className
+        ,'o'        : p
+        }
+    infos.append(d)
 
-return {'infos':infos, 'batch':batch, 'features':features}
+return {'infos':infos,
+        'batch':batch,
+        'features':features,
+        'sorting' : {'sort_on' : sort_on,
+                     'sort_order' : sort_order}
+        }