[Zope-dev] Yeat another ZMI improvement idea...

sean.upton@uniontrib.com sean.upton@uniontrib.com
Sun, 04 Aug 2002 15:52:04 -0700


After playing around with Evan's ZMIBookmarks (which I like), I got to
thinking about persisting (or semi-persisting) other user preferences for
ZMI shortcuts.  In some word processors, the font drop-down remembers the
last few choices of fonts you selected and puts them at the top of the
drop-down list.  This is really nice if you have a bunch of fonts installed
on your system.  I think the same concept could apply to adding Zope
products in the ZMI, provided you have a fairly decent number of products
installed in Zope, you have to scroll every time you want to add something
that doesn't begin with the letter A.  

So, I'm thinking shortcuts at the top of the contents in the drop-down for
adding an object to a container.  It would be nice if there was a way to put
the 3-5 most recently used products at the top of the list on a user-by-user
basis, and persist those user preferences somehow (this really is a good
thing, since, for example, DBAs might only need to add ZSQL Methods, Python
Scripts, and DA objects).

I would be interested in creating something like this, but I'm interested in
getting list feedback on:

1 - the best way to persist the user preferences, and 
2 - How one would go about tracking what items were selected, since each
product maintains its own add forms, and can't be relied upon to update a
registry of said user preference...
3 - the best way to approach the UI (I assume a monkey patch to the DTML for
OFS.Folder's manage_main and a simple registry of preferences that can be
used to populate the top of the list based upon the user's login)

Any input is appreciated.

Thanks,
Sean

+-----------------------------------------------------------
| Sean Upton
|  Site Technology Supervisor             SignOnSanDiego.com
|  Development & Integration     The San Diego Union-Tribune
|  619.718.5241                     sean.upton@uniontrib.com
|        PATH_TO_THE_DARK_SIDE = 'c:\winnt\system32'
+-----------------------------------------------------------