[Zope-Checkins] CVS: Zope2 - util.py:1.5

andreas@serenade.digicool.com andreas@serenade.digicool.com
Mon, 11 Jun 2001 12:04:22 -0400


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

Modified Files:
	util.py 
Log Message:
added additional check for DateTime objects



--- Updated File util.py in package Zope2 --
--- util.py	2001/06/01 18:53:40	1.4
+++ util.py	2001/06/11 16:04:21	1.5
@@ -88,6 +88,7 @@
 
 import re
 from types import StringType,ListType,TupleType,DictType,InstanceType
+from DateTime import DateTime
 
 class parseIndexRequest:
     """
@@ -145,25 +146,33 @@
         keys = request[iid]
 
         if type(keys) == InstanceType:
-            """ query is of type record """
-            record = keys
 
-            if hasattr(record,'query'):           
-                keys = record.query
-            else:
-                raise self.ParserException,\
-                   "record for '%s' *must* contain a 'query' attribute" % self.id
-            
-            if type(keys)== StringType:
-                self.keys = [keys.strip()]
-            elif type(keys) == ListType:
+            if isinstance(keys,DateTime):
+                """query is a DateTime instance"""
+
                 self.keys = keys
 
-            for op in options:
-                if op in ["query"]: continue 
+
+            else:
+                """ query is of type record """
+                record = keys
 
-                if hasattr(record,op):
-                    setattr(self,k,getattr(record,k))
+                if hasattr(record,'query'):           
+                    keys = record.query
+                else:
+                    raise self.ParserException,\
+                       "record for '%s' *must* contain a 'query' attribute" % self.id
+                
+                if type(keys)== StringType:
+                    self.keys = [keys.strip()]
+                elif type(keys) == ListType:
+                    self.keys = keys
+    
+                for op in options:
+                    if op in ["query"]: continue 
+    
+                    if hasattr(record,op):
+                        setattr(self,k,getattr(record,k))
 
 
         elif type(keys)==DictType: