From: Benoît Pin <pin@cri.ensmp.fr>
Date: Mon, 22 Jul 2013 14:58:04 +0000 (+0200)
Subject: Création script / zpt pour le rendu d'une thumbnail (uniquement) pour affichage après... 
X-Git-Url: https://svn.cri.mines-paristech.fr/git/Portfolio.git/commitdiff_plain/2f5dd859916d7699e0005dedfabf262ef107143b

Création script / zpt pour le rendu d'une thumbnail (uniquement) pour affichage après upload en js.
---

diff --git a/skins/getPhotoInfo.py b/skins/getPhotoInfo.py
new file mode 100755
index 0000000..2947778
--- /dev/null
+++ b/skins/getPhotoInfo.py
@@ -0,0 +1,57 @@
+##parameters=
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.permissions import ReviewPortalContent
+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()
+	
+features['select'] = toggleSelection
+features['cart'] = lambda o : '%s/get_slide_buyable_items' % o.absolute_url()
+
+if mtool.checkPermission(ReviewPortalContent, context) :
+    features['hideAnonymous'] = True
+
+sd = context.session_data_manager.getSessionData(create = 1)
+selDict = sd.get('objects_selection_dict', {})
+cart = sd.get('cart', None)
+
+p = context
+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
+	}
+
+return {'info' : d, 'features' : features}
diff --git a/skins/photo_gridthumbnail.pt b/skins/photo_gridthumbnail.pt
new file mode 100644
index 0000000..0e410a0
--- /dev/null
+++ b/skins/photo_gridthumbnail.pt
@@ -0,0 +1,13 @@
+<div tal:omit-tag="">
+
+  <div metal:use-macro="here/main_template_macros/macros/global_defines"></div>
+
+  <div tal:define="
+  infos here/getPhotoInfo;
+  info infos/info;
+  features infos/features;
+  slide_size portal_object/slide_size;"
+  tal:omit-tag="">
+    <div metal:use-macro="here/photo_layout_macros/macros/thumbnail"></div>
+  </div>
+</div>
\ No newline at end of file
diff --git a/skins/photo_layout_macros.pt b/skins/photo_layout_macros.pt
index 82511dd..f3fb5ca 100644
--- a/skins/photo_layout_macros.pt
+++ b/skins/photo_layout_macros.pt
@@ -18,7 +18,8 @@
                             margin_left python:(slide_size - size['width']) / 2;
                             selected info/selected|nothing"
                 tal:attributes="class info/className;
-                                name info/cmf_uid">
+                                name info/cmf_uid"
+                metal:define-macro="thumbnail">
             <a class="slide" tal:attributes="href info/href; title info/title">
               <img border="0" tal:attributes="src info/thumbUrl;
                                  alt info/title;