IHM pour définir le tri par défaut. Fonctionne sans js (pour l'instant).
authorBenoît Pin <benoit.pin@gmail.com>
Wed, 9 Jul 2014 05:48:46 +0000 (07:48 +0200)
committerBenoît Pin <benoit.pin@gmail.com>
Wed, 9 Jul 2014 05:48:46 +0000 (07:48 +0200)
locales/en/LC_MESSAGES/portfolio.po
locales/fr/LC_MESSAGES/portfolio.mo
locales/fr/LC_MESSAGES/portfolio.po
locales/portfolio.pot
skins/getPhotosInfos.py
skins/portfolio_edit_form.py
skins/portfolio_view.pt

index 1109c6f..c36a5b2 100644 (file)
@@ -123,7 +123,7 @@ msgstr ""
 msgid "refresh amount"
 msgstr ""
 
-#: o/skins/my_cart_template.pt:59 o/skins/portfolio_view.pt:71
+#: o/skins/my_cart_template.pt:59 o/skins/portfolio_view.pt:81
 msgid "delete"
 msgstr ""
 
@@ -252,15 +252,15 @@ msgstr ""
 msgid "download picture"
 msgstr ""
 
-#: o/skins/portfolio_edit_form.py:13
+#: o/skins/portfolio_edit_form.py:17
 msgid "Photo deleted."
 msgstr ""
 
-#: o/skins/portfolio_edit_form.py:15
+#: o/skins/portfolio_edit_form.py:19
 msgid "Deleted photos."
 msgstr ""
 
-#: o/skins/portfolio_edit_form.py:18
+#: o/skins/portfolio_edit_form.py:22
 msgid "Nothing to delete."
 msgstr ""
 
@@ -268,6 +268,22 @@ msgstr ""
 msgid "Delete presentation"
 msgstr ""
 
+#: o/skins/portfolio_view.pt:74
+msgid "sorting:"
+msgstr ""
+
+#: o/skins/portfolio_view.pt:76
+msgid "manual"
+msgstr ""
+
+#: o/skins/portfolio_view.pt:77
+msgid "shooting"
+msgstr ""
+
+#: o/skins/portfolio_view.pt:78
+msgid "modification"
+msgstr ""
+
 #: o/skins/save_as_lightbox_template.pt:12
 msgid "Save current selection as lightbox"
 msgstr ""
index eca4edf..7af8c86 100644 (file)
Binary files a/locales/fr/LC_MESSAGES/portfolio.mo and b/locales/fr/LC_MESSAGES/portfolio.mo differ
index 64cda42..210399f 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Plinn 2.0\n"
-"POT-Creation-Date: Sat Jul  5 14:18:53 2014\n"
-"PO-Revision-Date: 2014-07-05 14:19+0200\n"
+"POT-Creation-Date: Tue Jul  8 18:30:13 2014\n"
+"PO-Revision-Date: 2014-07-08 18:31+0200\n"
 "Last-Translator:  Benoît PIN\n"
 "Language-Team: CRI http://cri.ensmp.fr\n"
 "Language: \n"
@@ -148,7 +148,7 @@ msgstr "Prix (TTC)"
 msgid "refresh amount"
 msgstr "actualiser le montant"
 
-#: o/skins/my_cart_template.pt:59 o/skins/portfolio_view.pt:71
+#: o/skins/my_cart_template.pt:59 o/skins/portfolio_view.pt:81
 msgid "delete"
 msgstr "supprimer"
 
@@ -279,15 +279,15 @@ msgstr "référence :"
 msgid "download picture"
 msgstr "télécharger l'image"
 
-#: o/skins/portfolio_edit_form.py:13
+#: o/skins/portfolio_edit_form.py:17
 msgid "Photo deleted."
 msgstr "Photo supprimée."
 
-#: o/skins/portfolio_edit_form.py:15
+#: o/skins/portfolio_edit_form.py:19
 msgid "Deleted photos."
 msgstr "Photos supprimées."
 
-#: o/skins/portfolio_edit_form.py:18
+#: o/skins/portfolio_edit_form.py:22
 msgid "Nothing to delete."
 msgstr "Rien à supprimer."
 
@@ -295,6 +295,22 @@ msgstr "Rien à supprimer."
 msgid "Delete presentation"
 msgstr "Supprimer la présentation"
 
+#: o/skins/portfolio_view.pt:74
+msgid "sorting:"
+msgstr "tri :"
+
+#: o/skins/portfolio_view.pt:76
+msgid "manual"
+msgstr "manuel"
+
+#: o/skins/portfolio_view.pt:77
+msgid "shooting"
+msgstr "prise de vue"
+
+#: o/skins/portfolio_view.pt:78
+msgid "modification"
+msgstr "modification"
+
 #: o/skins/save_as_lightbox_template.pt:12
 msgid "Save current selection as lightbox"
 msgstr "Enregistrer la sélection dans une table lumineuse"
index 5213937..f89ad7e 100644 (file)
@@ -14,7 +14,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 3.0\n"
-"POT-Creation-Date: Sat Jul  5 14:18:53 2014\n"
+"POT-Creation-Date: Tue Jul  8 18:30:13 2014\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Zope 3 Developers <zope-dev@zope.org>\n"
@@ -160,8 +160,8 @@ msgstr ""
 
 #: o/skins/my_cart_template.pt:59
 #: o/skins/my_cart_template.pt:59
-#: o/skins/portfolio_view.pt:71
-#: o/skins/portfolio_view.pt:71
+#: o/skins/portfolio_view.pt:81
+#: o/skins/portfolio_view.pt:81
 msgid "delete"
 msgstr ""
 
@@ -304,15 +304,15 @@ msgstr ""
 msgid "download picture"
 msgstr ""
 
-#: o/skins/portfolio_edit_form.py:13
+#: o/skins/portfolio_edit_form.py:17
 msgid "Photo deleted."
 msgstr ""
 
-#: o/skins/portfolio_edit_form.py:15
+#: o/skins/portfolio_edit_form.py:19
 msgid "Deleted photos."
 msgstr ""
 
-#: o/skins/portfolio_edit_form.py:18
+#: o/skins/portfolio_edit_form.py:22
 msgid "Nothing to delete."
 msgstr ""
 
@@ -320,6 +320,22 @@ msgstr ""
 msgid "Delete presentation"
 msgstr ""
 
+#: o/skins/portfolio_view.pt:74
+msgid "sorting:"
+msgstr ""
+
+#: o/skins/portfolio_view.pt:76
+msgid "manual"
+msgstr ""
+
+#: o/skins/portfolio_view.pt:77
+msgid "shooting"
+msgstr ""
+
+#: o/skins/portfolio_view.pt:78
+msgid "modification"
+msgstr ""
+
 #: o/skins/save_as_lightbox_template.pt:12
 msgid "Save current selection as lightbox"
 msgstr ""
index 2d42635..985528e 100755 (executable)
@@ -8,11 +8,11 @@ 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.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()
 
@@ -23,8 +23,12 @@ if mtool.checkPermission(ModifyPortalContent, context) :
 
 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')
+sort_on, sort_order = context.getDefaultSorting()
+contentFilter = {'portal_type' : ['Photo'],
+                 'sort_on' : sort_on,
+                 'sort_order' : sort_order}
+batch = Batch(portfolio.listCatalogedContents(contentFilter=contentFilter),
+              context.default_batch_size, pho_start, orphan=5, quantumleap=1, b_start_str='pho_start')
 
 
 infos = []
@@ -33,36 +37,36 @@ 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))
+        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}
index cb9e93b..ad661d2 100644 (file)
@@ -27,4 +27,10 @@ if fg('delete.x') or form.has_key('delete') :
 
     else :
         return '<deleted>%s</deleted>' % msg
+if fg('set_sorting') :
+    context.setDefaultSorting(fg('sorting'), False)
+    if not fg('ajax') :
+        return context.setRedirect(context, 'object/view')
+    else :
+        return '<done/>'
 return '<error/>'
\ No newline at end of file
index a168fca..14bd91c 100644 (file)
              tal:define="ModifyPortalContent modules/Products/CMFCore/permissions/ModifyPortalContent"
              tal:condition="python:mtool.checkPermission(ModifyPortalContent, here)">
           <span>
-            <span i18n:translate="" tal:omit-tag="">sort:</span>
-            <select name="sort">
+            <span i18n:translate="" tal:omit-tag="">sorting:</span>
+            <select name="sorting">
               <option value="position" i18n:translate="">manual</option>
               <option value="DateTimeOriginal" i18n:translate="">shooting</option>
               <option value="modified" i18n:translate="">modification</option>
             </select>
+            <noscript>
+              <input type="submit" name="set_sorting" value="ok"/>
+            </noscript>
           </span>
           <input type="image" width="17" height="27" alt="delete" title="delete"
                  name="delete"