[Zope-CMF] two questions: default member page content, and departmental hier archies with modified workflow

Jon Franz jfranz@one.net
Wed, 13 Jun 2001 11:31:51 -0400


1) I've noticed that the default member home page is defined within
MembershipTool.py, which seems to go against the idea of skinning this
element
of your site.  I can easily replace what the current default content is by
modifying the default_member_content variable, but I would rather load this
from a DTML method or such in a skin folder.  I'm digging into the code now,
but was wondering if anyone could give me a quick pointer on how
to programmatically grab the content within an object in one of the skin
folders?

2) My organization is using the CMF as the basis for our Intranet, as part
of this, we need a more detailed workflow with more
member roles.  Right now, I've got folders in the root of my CMF instance
that are for each major department, and a property
on the CMF instance to list those folders so I can create a nice list of
departments.  I can continue this scheme and have these folders
contain properties listing which subfolders are actual sub-departments, but
this seems odd: I'd rather have the ability to define
departments somewhere else, but no property type or such seems appropo
offhand.

In addition, I have requests for content
that should be viewable only by members of a specific department!  thus I
need to add a dept_reviewer and dept_manager role,
and I need to allow objects to have a new state, maybe 'dept_published' ->
all of which points to a property on the user(s) which
list what departments they are in, and another for which ones they admin (I
might be able to see content in the HR dept, but only
manage stuff in a sub-department)... And on objects, I need a new metadata
field to hold what dept the document is associated with
(right now I'm limiting the vocabulary of subject to the departments) ->
this all gets rather nasty, however.

Has anyone else implemented such a system? where did you begin, and what
should I keep in mind?  I'd be glad to
see how someone else solved similar problems, especially if it was in a
simpler manner...