[Zope-Checkins] CVS: Zope/lib/python/Products/PluginIndexes/KeywordIndex - KeywordIndex.py:1.13

Andreas Jung andreas@andreas-jung.com
Thu, 23 Jan 2003 12:46:56 -0500


Update of /cvs-repository/Zope/lib/python/Products/PluginIndexes/KeywordIndex
In directory cvs.zope.org:/tmp/cvs-serv19547/lib/python/Products/PluginIndexes/KeywordIndex

Modified Files:
	KeywordIndex.py 
Log Message:
Merging ajung-oneindex-multipleattributes-branch

This implements: http://lists.zope.org/pipermail/zope-coders/20002-November/002680.html



=== Zope/lib/python/Products/PluginIndexes/KeywordIndex/KeywordIndex.py 1.12 => 1.13 ===
--- Zope/lib/python/Products/PluginIndexes/KeywordIndex/KeywordIndex.py:1.12	Thu Dec  5 16:35:53 2002
+++ Zope/lib/python/Products/PluginIndexes/KeywordIndex/KeywordIndex.py	Thu Jan 23 12:46:23 2003
@@ -42,7 +42,7 @@
     This should have an _apply_index that returns a relevance score
     """
 
-    def index_object(self, documentId, obj, threshold=None):
+    def _index_object(self, documentId, obj, threshold=None, attr=''):
         """ index an object 'obj' with integer id 'i'
 
         Ideally, we've been passed a sequence of some sort that we
@@ -55,7 +55,7 @@
         # attribute we're interested in.  If the attribute is callable,
         # we'll do so.
 
-        newKeywords = self._get_object_keywords(obj)
+        newKeywords = self._get_object_keywords(obj, attr)
 
         oldKeywords = self._unindex.get(documentId, None)
 
@@ -85,8 +85,8 @@
                         self.insertForwardIndexEntry(kw, documentId)
         return 1
 
-    def _get_object_keywords(self,obj):
-        newKeywords = getattr(obj, self.id, ())
+    def _get_object_keywords(self, obj, attr):
+        newKeywords = getattr(obj, attr, ())
         if callable(newKeywords):
             newKeywords = newKeywords()
         if hasattr(newKeywords,'capitalize'): # is it string-like ?
@@ -119,7 +119,8 @@
 
 manage_addKeywordIndexForm = DTMLFile('dtml/addKeywordIndex', globals())
 
-def manage_addKeywordIndex(self, id, REQUEST=None, RESPONSE=None, URL3=None):
+def manage_addKeywordIndex(self, id, extra=None, 
+        REQUEST=None, RESPONSE=None, URL3=None):
     """Add a keyword index"""
-    return self.manage_addIndex(id, 'KeywordIndex', extra=None, \
+    return self.manage_addIndex(id, 'KeywordIndex', extra=extra, \
               REQUEST=REQUEST, RESPONSE=RESPONSE, URL1=URL3)