You are not logged in Log in Join
You are here: Home » Members » anthony » patches » zc » ZCatalog.py.diff

Log in
Name

Password

 

ZCatalog.py.diff

File details
Size
5 K
File type
text/plain

File contents

Index: ZCatalog.py
===================================================================
RCS file: /cvs-repository/Zope2/lib/python/Products/ZCatalog/ZCatalog.py,v
retrieving revision 1.43
diff -u -r1.43 ZCatalog.py
--- ZCatalog.py	1999/12/28 23:46:31	1.43
+++ ZCatalog.py	1999/12/29 07:33:20
@@ -149,6 +149,8 @@
          'target':'manage_main'},
         {'label': 'Status', 'action': 'manage_catalogStatus', 
          'target':'manage_main'},
+        {'label': 'Query', 'action': 'manage_catalogSearch', 
+         'target':'manage_main'},
         )
 
     __ac_permissions__=(
@@ -163,7 +165,8 @@
           
           'manage_catalogReindex', 'manage_catalogFoundItems',
           'manage_catalogClear', 'manage_addColumn', 'manage_delColumns',
-          'manage_addIndex', 'manage_delIndexes', 'manage_main',], 
+          'manage_addIndex', 'manage_delIndexes', 'manage_main',
+	  'manage_catalogSearch', 'manage_catalogSearchResults', ], 
          ['Manager']),
 
         ('Search ZCatalog',
@@ -181,8 +184,9 @@
     manage_catalogSchema = HTMLFile('catalogSchema', globals())
     manage_catalogIndexes = HTMLFile('catalogIndexes', globals())
     manage_catalogStatus = HTMLFile('catalogStatus', globals())
+    manage_catalogSearch = HTMLFile('catalogSearch', globals())
+    manage_catalogSearchResults = HTMLFile('catalogSearchResults', globals())
 
-
     threshold=10000
     _v_total=0
 
@@ -269,11 +273,12 @@
                           urllib.quote('Catalog Updated<br>Total time: %s<br>Total CPU time: %s' % (`elapse`, `c_elapse`)))
         
 
-    def manage_catalogClear(self, REQUEST, RESPONSE, URL1):
+    def manage_catalogClear(self, REQUEST=None, RESPONSE=None, URL1=None):
         """ clears the whole enchelada """
         self._catalog.clear()
 
-        RESPONSE.redirect(URL1 + '/manage_catalogView?manage_tabs_message=Catalog%20Cleared')
+        if REQUEST and RESPONSE:
+            RESPONSE.redirect(URL1 + '/manage_catalogView?manage_tabs_message=Catalog%20Cleared')
 
 
     def manage_catalogFoundItems(self, REQUEST, RESPONSE, URL2, URL1,
@@ -313,31 +318,35 @@
                           urllib.quote('Catalog Updated<br>Total time: %s<br>Total CPU time: %s' % (`elapse`, `c_elapse`)))
 
 
-    def manage_addColumn(self, name, REQUEST, RESPONSE, URL1):
+    def manage_addColumn(self, name, REQUEST=None, RESPONSE=None, URL1=None):
         """ add a column """
         self._catalog.addColumn(name)
 
-        RESPONSE.redirect(URL1 + '/manage_catalogSchema?manage_tabs_message=Column%20Added')
+        if REQUEST and RESPONSE:
+            RESPONSE.redirect(URL1 + '/manage_catalogSchema?manage_tabs_message=Column%20Added')
 
-    def manage_delColumns(self, names, REQUEST, RESPONSE, URL1):
+    def manage_delColumns(self, names, REQUEST=None, RESPONSE=None, URL1=None):
         """ del a column """
         for name in names:
             self._catalog.delColumn(name)
 
-        RESPONSE.redirect(URL1 + '/manage_catalogSchema?manage_tabs_message=Column%20Deleted')
+        if REQUEST and RESPONSE:
+            RESPONSE.redirect(URL1 + '/manage_catalogSchema?manage_tabs_message=Column%20Deleted')
 
-    def manage_addIndex(self, name, type, REQUEST, RESPONSE, URL1):
+    def manage_addIndex(self, name, type, REQUEST=None, RESPONSE=None, URL1=None):
         """ add an index """
         self._catalog.addIndex(name, type)
         
-        RESPONSE.redirect(URL1 + '/manage_catalogIndexes?manage_tabs_message=Index%20Added')
+        if REQUEST and RESPONSE:
+            RESPONSE.redirect(URL1 + '/manage_catalogIndexes?manage_tabs_message=Index%20Added')
         
-    def manage_delIndexes(self, names, REQUEST, RESPONSE, URL1):
+    def manage_delIndexes(self, names, REQUEST=None, RESPONSE=None, URL1=None):
         """ del an index """
         for name in names:
             self._catalog.delIndex(name)
         
-        RESPONSE.redirect(URL1 + '/manage_catalogIndexes?manage_tabs_message=Index%20Deleted')
+        if REQUEST and RESPONSE:
+            RESPONSE.redirect(URL1 + '/manage_catalogIndexes?manage_tabs_message=Index%20Deleted')
 
     
     def catalog_object(self, obj, uid):
@@ -406,6 +415,7 @@
                       query_map={
                           type(regex.compile('')): Query.Regex,
                           type([]): orify,
+                          type(()): orify,
                           type(''): Query.String,
                           }, **kw):
         """
@@ -522,7 +532,7 @@
                 and
                 (not obj_searchterm or
                  (hasattr(ob, 'PrincipiaSearchSource') and
-                  find(ob.PrincipiaSearchSource(), obj_searchterm) >= 0
+                  string.find(ob.PrincipiaSearchSource(), obj_searchterm) >= 0
                   ))
                 and
                 (not obj_expr or expr_match(ob, obj_expr))
@@ -533,14 +543,16 @@
                    role_match(ob, obj_permission, obj_roles)
                 )
                 ):
+                ob_real = getattr(obj, id)
                 if apply_func:
-                    apply_func(ob, (apply_path+'/'+p))
+                    apply_func(ob_real, (apply_path+'/'+p))
                 else:
-                    add_result((p, ob))
+                    add_result((p, ob_real))
                     dflag=0
                     
             if search_sub and hasattr(bs, 'objectItems'):
-                self.ZopeFindAndApply(ob, obj_ids, obj_metatypes,
+                ob_real = getattr(obj, id)
+                self.ZopeFindAndApply(ob_real, obj_ids, obj_metatypes,
                                       obj_searchterm, obj_expr,
                                       obj_mtime, obj_mspec,
                                       obj_permission, obj_roles,