Indexation de la position par utilisation d'un adaptateur, plutôt que d'utiliser...
authorBenoît Pin <benoit.pin@gmail.com>
Wed, 3 Jul 2013 21:06:13 +0000 (23:06 +0200)
committerBenoît Pin <benoit.pin@gmail.com>
Wed, 3 Jul 2013 21:06:13 +0000 (23:06 +0200)
Folder.py
catalog_adapters.py [new file with mode: 0644]
overrides.zcml
profiles/default/catalog.xml
profiles/photo/catalog.xml

index e36dec8..0e3804f 100644 (file)
--- 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 (file)
index 0000000..64130ad
--- /dev/null
@@ -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
index 3059b05..bf37e72 100644 (file)
@@ -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>
index 2ce7d81..10f32c2 100644 (file)
@@ -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>
  <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"/>
  <column value="Subject"/>
  <column value="Title"/>
  <column value="Type"/>
+ <column value="cmf_uid"/>
  <column value="created"/>
  <column value="effective"/>
  <column value="end"/>
  <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>
index 5ffb030..10f32c2 100644 (file)
@@ -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>