From: Benoît Pin <benoit.pin@gmail.com>
Date: Wed, 3 Jul 2013 21:06:13 +0000 (+0200)
Subject: Indexation de la position par utilisation d'un adaptateur, plutôt que d'utiliser... 
X-Git-Url: https://svn.cri.ensmp.fr/git/Plinn.git/commitdiff_plain/e84ba700349f0777d7e94b6b7692f53fc6860e17

Indexation de la position par utilisation d'un adaptateur, plutôt que d'utiliser ProxyIndex, devenu obsolète.
---

diff --git a/Folder.py b/Folder.py
index e36dec8..0e3804f 100644
--- a/Folder.py
+++ b/Folder.py
@@ -269,16 +269,10 @@ class PlinnFolder(CMFCatalogAware, PortalFolder, DefaultDublinCoreImpl) :
         """ query catalog and returns brains of contents.
             Requires ExtendedPathIndex
         """
-        #ctool = getToolByName(self, 'portal_catalog')
         ctool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ICatalogTool')
-        #print ctool.absolute_url()
         contentFilter['path'] = {'query':'/'.join(self.getPhysicalPath()),
                                 'depth':1}
-        try :
-            return ctool(sort_on='position', **contentFilter)
-        except :
-            return ctool(**contentFilter)
-    
+        return ctool(sort_on='position', **contentFilter)    
 
     security.declarePublic('synContentValues')
     def synContentValues(self):
diff --git a/catalog_adapters.py b/catalog_adapters.py
new file mode 100644
index 0000000..64130ad
--- /dev/null
+++ b/catalog_adapters.py
@@ -0,0 +1,7 @@
+from Products.CMFCore.CatalogTool import IndexableObjectWrapper
+
+class PlinnIndexableObjectWrapper(IndexableObjectWrapper) :
+    def position(self) :
+        parent = self.getParentNode()
+        pos = parent.getObjectPosition(self.getId())
+        return pos
\ No newline at end of file
diff --git a/overrides.zcml b/overrides.zcml
index 3059b05..bf37e72 100644
--- a/overrides.zcml
+++ b/overrides.zcml
@@ -10,4 +10,9 @@
         provides="Products.CMFCore.interfaces.IMember"
         factory="Products.Plinn.MemberDataTool.MemberAdapter"
         />
+    <adapter
+        for="Products.CMFCore.interfaces.ICatalogAware
+             Products.CMFCore.interfaces.ICatalogTool"
+        provides="Products.CMFCore.interfaces.IIndexableObject"
+        factory=".catalog_adapters.PlinnIndexableObjectWrapper" />
 </configure>
diff --git a/profiles/default/catalog.xml b/profiles/default/catalog.xml
index 2ce7d81..10f32c2 100644
--- a/profiles/default/catalog.xml
+++ b/profiles/default/catalog.xml
@@ -18,7 +18,7 @@
   <property name="index_naive_time_as_local">True</property>
  </index>
  <index name="DateTimeOriginal" meta_type="DateIndex">
-  <property name="index_naive_time_as_local">False</property>
+  <property name="index_naive_time_as_local">True</property>
  </index>
  <index name="Description" meta_type="ZCTextIndex">
   <indexed_attr value="Description"/>
@@ -44,6 +44,9 @@
  <index name="allowedRolesAndUsers" meta_type="KeywordIndex">
   <indexed_attr value="allowedRolesAndUsers"/>
  </index>
+ <index name="cmf_uid" meta_type="FieldIndex">
+  <indexed_attr value="cmf_uid"/>
+ </index>
  <index name="created" meta_type="DateIndex">
   <property name="index_naive_time_as_local">True</property>
  </index>
@@ -68,28 +71,40 @@
  <index name="getMemberSortableFormat" meta_type="FieldIndex">
   <indexed_attr value="getMemberSortableFormat"/>
  </index>
+ <index name="hiddenForAnonymous" meta_type="FieldIndex">
+  <indexed_attr value="hiddenForAnonymous"/>
+ </index>
  <index name="in_reply_to" meta_type="FieldIndex">
   <indexed_attr value="in_reply_to"/>
  </index>
  <index name="listCreators" meta_type="KeywordIndex">
   <indexed_attr value="listCreators"/>
  </index>
+ <index name="meta_type" meta_type="FieldIndex">
+  <indexed_attr value="meta_type"/>
+ </index>
  <index name="modified" meta_type="DateIndex">
   <property name="index_naive_time_as_local">True</property>
  </index>
- <index name="path" meta_type="PathIndex"/>
+ <index name="path" meta_type="ExtendedPathIndex"/>
  <index name="portal_type" meta_type="FieldIndex">
   <indexed_attr value="portal_type"/>
  </index>
+ <index name="position" meta_type="FieldIndex">
+  <indexed_attr value="position"/>
+ </index>
  <index name="review_state" meta_type="FieldIndex">
   <indexed_attr value="review_state"/>
  </index>
  <index name="start" meta_type="DateIndex">
   <property name="index_naive_time_as_local">True</property>
  </index>
+ <index name="tiles_available" meta_type="FieldIndex">
+  <indexed_attr value="tiles_available"/>
+ </index>
  <column value="CreationDate"/>
+ <column value="Creator"/>
  <column value="Date"/>
- <column value="DateTimeOriginal"/>
  <column value="Description"/>
  <column value="EffectiveDate"/>
  <column value="ExpirationDate"/>
@@ -97,6 +112,7 @@
  <column value="Subject"/>
  <column value="Title"/>
  <column value="Type"/>
+ <column value="cmf_uid"/>
  <column value="created"/>
  <column value="effective"/>
  <column value="end"/>
@@ -105,9 +121,12 @@
  <column value="getId"/>
  <column value="getMemberFullName"/>
  <column value="getMemberSortableFormat"/>
+ <column value="getThumbnailSize"/>
+ <column value="hiddenForAnonymous"/>
  <column value="listCreators"/>
  <column value="modified"/>
  <column value="portal_type"/>
+ <column value="position"/>
  <column value="review_state"/>
  <column value="start"/>
 </object>
diff --git a/profiles/photo/catalog.xml b/profiles/photo/catalog.xml
index 5ffb030..10f32c2 100644
--- a/profiles/photo/catalog.xml
+++ b/profiles/photo/catalog.xml
@@ -59,6 +59,9 @@
  <index name="expires" meta_type="DateIndex">
   <property name="index_naive_time_as_local">True</property>
  </index>
+ <index name="fTitle" meta_type="FieldIndex">
+  <indexed_attr value="Title"/>
+ </index>
  <index name="getId" meta_type="FieldIndex">
   <indexed_attr value="getId"/>
  </index>
@@ -87,6 +90,9 @@
  <index name="portal_type" meta_type="FieldIndex">
   <indexed_attr value="portal_type"/>
  </index>
+ <index name="position" meta_type="FieldIndex">
+  <indexed_attr value="position"/>
+ </index>
  <index name="review_state" meta_type="FieldIndex">
   <indexed_attr value="review_state"/>
  </index>