[Zope-CMF] question: CMF and collaborative authoring

Joseph Wayne Norton norton@arseed.co.jp
Mon, 25 Jun 2001 17:04:24 +0900


Scott -

Thanks for the tip. I followed Shane's tip and was able to get a
working implementation for Workgroups using the DCWorkflow very
easily.

Here are the highlevel steps that I followed:

       - add role "Workgroup Member" and "Workgroup Reviewer" to
         toplevel CMF instance folder

       - grant "Add portal content", "Modify portal content", and
         "List folder contents" to "Workgroup Member" role

       - grant "Review portal content" and "List folder contents" to
         "Workgroup Reviewer" role

       - grant local roles (Workgroup Member, Workgroup Reviewer) to
         appropriate users in workgroup folders

       - install dc workflow rev 2 in the file-system.

         I'm currently testing with a cvs-based checkout for Zope2 and
         CMF.

       - modify Default.py in dcworkflow (see diff below)

       - the following skins are missing

         ? CMFDefault/skins/content/content_hide_form.dtml
         ? CMFDefault/skins/content/content_show_form.dtml

         so I simply created my own version based on retract and
         publish.

       - restart zope and then install (or re-create) the dc workflow
         rev 2 using the workflow tool

One other point that I am currently investigating, is how to modify
the behavior of the "Pending" action for users with the "Workgroup
Reviewer" role.  If a user doesn't have a global "Reviewer" role, the
list of pending items will not show up in the action toolbox.

For this situation, I think it might be better to add additional entry
to the action box (pseudo-code) as follows:

    ldef = wf.worklists['reviewer_queue_folder']
    ldef.setProperties(description='Reviewer tasks (folder)',
                       actbox_name='Pending (%(count)d)',
                       actbox_url='%(folder_url)s/search?review_state=pending&path=%(folder_physical_path)s',
                       props={'var_match_review_state':'pending',
                              'guard_permissions':p_review})

This would only show those pending items underneath the current folder
tree.  However, the "count" variable is currently global to the entire
catalog and the variable folder_physical_path doesn't exist currently.

Has anyone tried to solve the above issue differently? in an better
manner?

thanks,

- joe n.




At Fri, 22 Jun 2001 10:52:49 -0700, Scott Meilicke wrote: > > [1
<text/plain (7bit)>] > > [2 <text/html (quoted-printable)>] > > >
Here's the URL to the zope weekly news, June 17th that has links to
the discuss of this.  > >
http://www.zope.org/Documentation/ZWN/ZWN-2001-06-17 >


===================================================================
RCS file: /cvs-repository/CMF/DCWorkflow/Default.py,v
retrieving revision 1.2
diff -r1.2 Default.py
106a107,108
> r_wg_member = "Workgroup Member"
> r_wg_reviewer = "Workgroup Reviewer"
139,141c141,143
<     sdef.setPermission(p_access, 1, (r_anon, r_manager, r_reviewer))
<     sdef.setPermission(p_view, 1, (r_anon, r_manager, r_reviewer))
<     sdef.setPermission(p_modify, 0, (r_manager, r_reviewer))
---
>     sdef.setPermission(p_access, 1, (r_anon, r_manager, r_reviewer, r_wg_reviewer))
>     sdef.setPermission(p_view, 1, (r_anon, r_manager, r_reviewer, r_wg_reviewer))
>     sdef.setPermission(p_modify, 0, (r_manager, r_reviewer, r_wg_reviewer))
155,156c157,158
<     sdef.setPermission(p_access, 1, (r_anon, r_manager, r_reviewer))
<     sdef.setPermission(p_view, 1, (r_anon, r_manager, r_reviewer))
---
>     sdef.setPermission(p_access, 1, (r_anon, r_manager, r_reviewer, r_wg_member))
>     sdef.setPermission(p_view, 1, (r_anon, r_manager, r_reviewer,
>     r_wg_member))