[Zope-Checkins] CVS: Zope2 - PathIndex.py:1.1.2.18

andreas@serenade.digicool.com andreas@serenade.digicool.com
Tue, 22 May 2001 10:08:42 -0400


Update of /cvs-repository/Zope2/lib/python/Products/PluginIndexes/PathIndex
In directory serenade:/tmp/cvs-serv18766/PathIndex

Modified Files:
      Tag: ajung-dropin-registry
	PathIndex.py 
Log Message:
_apply_index handles now both an old-style request and
experimental support for Record objects



--- Updated File PathIndex.py in package Zope2 --
--- PathIndex.py	2001/05/21 20:23:49	1.1.2.17
+++ PathIndex.py	2001/05/22 14:08:41	1.1.2.18
@@ -86,6 +86,7 @@
 __version__ = '$Id$'
 
 from Products.PluginIndexes import PluggableIndex 
+from Products.PluginIndexes.common.util import parseIndexRequest
 
 from Globals import Persistent, DTMLFile
 from Acquisition import Implicit
@@ -235,6 +236,7 @@
         """       
 
         comps = self.splitPath(path)
+        
 
         if level >=0:
 
@@ -325,39 +327,21 @@
         cid      ???
         """
 
-        if request.has_key(self.id):
-            keys = request[self.id]
-        else:
-            return None
+        record = parseIndexRequest(request,self.id)
 
-        level = request.get("path_level",0)
+        # get the level parameter 
+        level    = record.get("level",0)
 
         # experimental code for specifing the operator
-
-        if request.has_key(self.id+"_operator"):
-            # check if someone overrides the "or" parameter
-            # for combining search results 
-            operator = request[id+"_operator"].lower()
-            if not operator in self.operators :
-                raise exepctions.RuntimeError,"operator not valid: %s" % operator
-        else:
-            operator = self.useOperator
+        operator = record.get('operator',self.useOperator).lower()
 
         # depending on the operator we use intersection of union
         if operator=="or":  set_func = union
         else:               set_func = intersection
 
-
-
-        if type(keys) is type(''):
-            if not keys or not keys.strip():
-                return None
-            keys = [keys]
-
         res = None
-
-        for k in keys:
 
+        for k in record.keys:
             rows = self.search(k,level)
             res = set_func(res,rows)