[Zope-dev] ZDESIGN IDEAS = How to improve 'manage' ?

Jason Cunliffe jasonic@nomadicsltd.com
Mon, 8 Jan 2001 11:19:36 -0500


Hello

I am cross poisting this becaese I beleie it merits responee fom both
lists..

The need to improve the manage interface has grown urgently clear to me
while using Zope myself, designing for all sorts of community and
collaborative Zope-based projects, demos for a number of innocent
bystanders, interested parties and potential clients.
Zope 'manage' is plain primitive at present.

Considering the power of Zope, and the real workflow needs of people working
with it, imho this present lack of thoughtful user interface makes no sense.
By ignoring these basics, Zope is neglecting a #1 self-promotion
opportunity - how it runs out of the box, and how quickly one can use it as
site-planning/design tool.It is quite unproductive now compared to what it
could/should be.

I am looking for real help here on how best to improve this...

Here is a list of features I believe should be default manage screen
behavior now.
Please submit your comments and improvements to these improvements:

KISS
For those who do not want any added features, there should be an option in
z2.py or as a manage_config DTML method in "/" or anywhere else in the tree
to enable or disable 'advanced manage' features.

-----------------------------------------------------------
1. SORT TABLE
'manage' needs to presented with basic column listings so one can display
sort by headings.

I am not sure if this turns into a CatalogAware Inferno or whether all this
info is  already hidden in the ZODB and could be extracted adn cached
sensibly and quickly. What do you think?

For example some headings I see a real need for:

NAME [default now], DATE[created, last modified] SIZE, TYPE[meta-type],
USER[default=owner], DEPTH, COUNT, CHANGES, PROPERTY, DISPLAY



NAME should be like now, but one needs to be able to group things more
sensibly, so that upper and lower-case can be ignored.
For example: MYFOLDER, myFolder_config, MyFOLDER_Display could all be
grouped together where the probably belong.

DATE
Fact of the matter is that, during development and very often during normal
life, we need to work on things according to the most recent ordering. This
is also an invaluable way for people on a development team to see what has
been 'happening'. Since Zope is a tool for 'customers who have customers who
have customers...' it means that even after the original site DTML/Python
developers may have gone home, a Zopesite is under development as long as it
is being used and growing. All of those users, especially deserve better
means to see and understand how the site is working and to allow them to
work better together.

SIZE
How big is this thing?
When I look at a graphic is it a thumbnail icon or a hires scan?
What about PDF
What about folders - how to calculate the size of folder?

TYPE
Display objects sorted by TYPE.

USER
Default sorts by Owner, but could also be designed to sort by last user who
accessed the object.

DEPTH
How many levels below this thing? This would only work for Zope folders.
An essential indicator of hidden complexity/importance etc.


COUNT
How many things are contained here? Targeted mainly for Zope Folders to
allow one get a good quick overview of site structure without needing to
click though a lot of trees of nested manage screens.
CONT could be nicely integrated with DEPTH feature above to make for a more
compact interface.
If the object is not Folder-like, then  COUNT could perhaps be used to
display references or some such. In other words, how many times is this
object referred to explicitly? I realize that dynamic Zopesite references *
acquisition could make this a painful/impossible question. But counting
static references could be very useful.
How should COUNT work with say 'standard_html_header? hmmm not sure.. My
idea is that at a minimum it could estimate how many references existed
below this part of the ZODB tree.

CHANGES
The idea here is to give a useful indication of objects which have changed.
But when and how?
I really don;t have an answer to this...
- perhaps a limited search using UNDO mechanism
- perhaps a simple user ID and date which showed the last person to change
it.

PROPERTY
This one should be easy.. sort adn display all objects in 'manage' based on
common property names and values.
For example, have a property called 'status' - values might be 'OK',
'buggy', 'draft', 'approved' etc.
Too many properties and to many values would detract from usefulness
probably, some some pragmatic workflow-oriented values could be very
valuable for ordering and developing Zope projects.

DISPLAY
The idea her is to offer a simple visual toggle HIDE/SHOW like Photoshop,
Fireworks, Illustrator and myriad other graphics apps do.
Suppose you have a big list of objects in a folder which you do not want to
look at al the time. They take up too much screen space, can be confusing
and may not be relevant for certain users and roles.
Simple selection would be a checkbox, but advanced DISPLAY could be based on
the other criteria listed here. For example only show me the objects
modified since last week by USER 'really nice client' :-)

How easy hard is the above to do?
Has it already bee done?
What techniques/components exists already to make it happen?
What need to be developed?
How does this affect Zope core?
What woudl you like to see when you click on manage?
What would you lceints liek to see?

- Jason
___________________________________________________________
Jason CUNLIFFE = NOMADICS['Interactive Art and Technology']