[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)