[Zope-dev] Where to send patches?
Jim Washington
jwashin@vt.edu
Mon, 10 Sep 2001 13:06:43 -0400
This is a multi-part message in MIME format.
--------------030509060908010203010109
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Michel Pelletier wrote:
>On Mon, 10 Sep 2001 12:16:51 -0400
> Jim Washington <jwashin@vt.edu> wrote:
>
>>Hi, All
>>
>>Since the Collector is down, where do we send patches if we are not
>>cvs-authorized? I just discovered a not-too-clever hack to make the
>>Find tab recurse through methods of Z Classes, which the margin of
>>this
>>e-mail is too small to contain.
>>
>
>Dude, don't jinx yourself. I'm sure you don't want us to refer to this as Jim Washington's last patch. ;)
>
Ack! I deserve that for playing the cleverness card. Fortunately, I am
not planning any duels anytime soon :)
The requested change does seem to work, and does not seem to break
anything. And it is probably bad to admit that Z Classes are somehow
different enough to require special treatment in base Zope code. FWIW,
my patch (against FindSupport.py in 2.4.1) is attached. Consume at
your leisure.
-- Jim Washington
--------------030509060908010203010109
Content-Type: text/plain;
name="FindSupport.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="FindSupport.patch"
*** FindSupport.py.orig Mon Sep 10 11:31:20 2001
--- FindSupport.py Mon Sep 10 11:55:19 2001
***************
*** 152,168 ****
if hasattr(obj, 'aq_base'):
base=obj.aq_base
! if not hasattr(base, 'objectItems'):
return result
try: items=obj.objectItems()
except: return result
try: add_result=result.append
except:
raise AttributeError, `result`
for id, ob in items:
! if pre: p="%s/%s" % (pre, id)
else: p=id
dflag=0
--- 152,179 ----
if hasattr(obj, 'aq_base'):
base=obj.aq_base
! if not hasattr(base, 'objectItems') and not base.meta_type == 'Z Class':
return result
+
+ if hasattr(base, 'objectItems'):
try: items=obj.objectItems()
except: return result
+ if base.meta_type == 'Z Class':
+ try: items=obj.propertysheets.methods.objectItems()
+ except: return result
+
+
try: add_result=result.append
except:
raise AttributeError, `result`
for id, ob in items:
! if pre:
! if base.meta_type == 'Z Class':
! p = "%s/propertysheets/methods/%s" % (pre,id)
! else:
! p="%s/%s" % (pre, id)
else: p=id
dflag=0
***************
*** 194,201 ****
):
add_result((p, ob))
dflag=0
!
! if search_sub and hasattr(bs, 'objectItems'):
self.ZopeFind(ob, obj_ids, obj_metatypes,
obj_searchterm, obj_expr,
obj_mtime, obj_mspec,
--- 204,211 ----
):
add_result((p, ob))
dflag=0
! #small edit here to add the or
! if search_sub and (hasattr(bs, 'objectItems') or bs.meta_type == 'Z Class'):
self.ZopeFind(ob, obj_ids, obj_metatypes,
obj_searchterm, obj_expr,
obj_mtime, obj_mspec,
--------------030509060908010203010109--