X-Git-Url: https://scm.cri.mines-paristech.fr/git/Portfolio.git/blobdiff_plain/f741aec4647e8df9771660743008ea13387cbe86..1eeef1dbdd63d9d1f468c00a8b35f4fe11d8c72f:/skins/getPhotosInfos.py?ds=inline diff --git a/skins/getPhotosInfos.py b/skins/getPhotosInfos.py index 1679c40..3a55dcc 100755 --- a/skins/getPhotosInfos.py +++ b/skins/getPhotosInfos.py @@ -1,28 +1,35 @@ -##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 +from Products.CMFCore.permissions import ReviewPortalContent, ModifyPortalContent mtool = getToolByName(context, 'portal_membership') pptool = getToolByName(context, 'portal_photo_print', None) 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 +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 = [] @@ -31,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} + }