Put the pdb code in an external method, as shown in this article: http://www.zopemag.com/Issue009/Section_Articles/article_ZopeAndFlash.html?printit=1

You'll then be able to step into the guard checking.

Laurence


Marie Robichon wrote:
Sorry, I omitted to point out that I am using Plone 2.1.4.

The solution you kindly pointed out to me is Zope3ish isn't it?? It is sort of chinese to me....;-) I don't suppose with my version of Plone I can do this ? If I can where do I put this code ?

I have tried other syntaxes in the guard expression box:

- "python:scripts.checkModifiedElement()" where a python script under the scripts tags checks the length of getModified_element and returns 0 or 1 accordingly,

- python: python:len(state_change.object.getModified_element())>0

which do not seem to work either.

Thx

Marie



Laurence Rowe wrote:
I use a view like this:

from zope.publisher.browser import BrowserView
from zope.component import getMultiAdapter
from AccessControl.SecurityManagement import getSecurityManager
import transaction

class PDBView(BrowserView):
    def __call__(self):
        sm = getSecurityManager()
        user = sm.getUser()
        context = self.context
        request = self.request
        import pdb; pdb.set_trace()
        self.context.portal_workflow.listActions(object=self.context)

registered like this:

    <browser:page
        for="*"
        name="pdb"
        class="testing.PDBView"
        permission="zope.Public"
        />

together with PDBDebugMode to step through the building of the workflow menu.

Hope that helps,

Laurence


Marie ROBICHON wrote:
Hi,

I have a custom archetype for a seminar announcement.  When published
this announcement runs a script to send an email to a mailing list. I
have added to this content type a multiselection widget of checkboxes
(called modified_element) enabling the user to indicate significant
changes to this announcement, and a workflow transition which will send
the email again announcing the changes (date, time etc.)

I would like to add a guard expression to this transition such that it
is available only when the user has actually checked a box in the
multiselection widget.

I have tried:

python:len(here.getModified_element())>0

but the workflow transition is still available in the dropdown.

I have updated the security settings.

Your help would be gratefully appreciated.

Thanks in advance

Marie


_______________________________________________
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests

_______________________________________________
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


_______________________________________________
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


_______________________________________________
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests

Reply via email to