[Zope-Coders] Re: [ANN] Proposed Features for Zope 2.7: OrderedObjectManager

Yuppie yuppie@zedat.fu-berlin.de
Wed, 04 Dec 2002 22:18:05 +0100


Hi Shane!


Shane Hathaway wrote:
>> That argument makes me reconsider my position. You are right. We need 
>> a migration plan. And I have no clear vision for the migration to Zope3.
>>
>> I thought it could work like this: Zope2 Folders will become Zope3 
>> OrderedFolders, Zope2 BTreeFolders will become Zope3 Folders.
> 
> 
> One of the mandates of Zope 3 is that classes be as simple as they can 
> be.  That means normal folders are currently little more than dictionaries.
> 
>> But for a smooth migration there should perhaps be a solution like this:
>>
>> - Adding a new class OrderedFolder (or what ever the name should be) 
>> to Zope 2.7 with an API that also will be implemented in Zope3.
>>
>> - Adding a deprecation warning to methods of Zope 2.7 Folders that are 
>> not continued in Zope3 Folders.
>> With a message like this: "Method xxx is deprecated for Folders. 
>> Please switch to OrderedFolder if you need this method in the long run."
>>
>>
>> What do you think?
> 
> 
> You would be adding methods that are deprecated before anyone gets to 
> use them.  What's the sense in that? :-)

Either you didn't get me or I don't understand you and Zope3.

Just to get you right:
This sentence means the added methods will be deprecated because there 
will not be something like OrderedFolder in the Zope3 Core or does it 
mean a Zope3 OrderedFolder would be very different?

> I am in favor of an OrderedFolder class that people have the option of 
> using.  It's not necessary that it be in the core, since installing a 
> Zope product is very easy.

This Zope3 OrderedFolder class you are in favor of: Will this class in 
interface (not implementation) be fundamentally different from a Zope 2 
ordered folder like proposed?

I'm confused. So far I thought you were arguing against implementing 
OrderedFolder as default folder. But you don't want it in the core, not 
as optional folder, not as Interface. Right?

> I suggest that perhaps what you really want to do is refactor 
> manage_main in such a way that parts of it can be overridden without 
> overriding the whole thing.  Perhaps the best way to do that is to 
> change it into a page template and fill it with "metal:define-macro" 
> attributes.  It would be a little difficult, but might simplify 
> OrderedFolder, ExternalEditor, FolderFilter, BTreeFolder2, and other 
> products that want to tweak the folder contents listing.

I'm not sure I want to do that ;)


Cheers,

Yuppie