How do I find out which context I'm passing?
Braun Brelin
bbrelin at yahoo.com
Wed Sep 18 15:07:45 EDT 2002
I'm running into a strange problem. I've written a small e-mail
sender python
script for Zope/CMF/Plone. It gets activated from DCWorkflow.
The script works fine when I test it from the "manage" interface, i.e.
I save
the script and then push the "test" button.
When I try and run it from my portal, however, the script fails.
The script looks like this:
----------------------------------------------------------------------------
members = context.portal_membership.listMembers()
try:
mailhost = getattr(context,context.superValues('Mail Host')[0].id)
except:
raise AttributeError,"Can't find a mail host object"
addrs = []
for member in members:
if 'Member' in member.getRoles():
email = member.getProperty('email')
if email:
addrs.append(email)
#url = getattr(exprNamespace['object'].absolute_url())
url = 'test url'
to_list = string.join(addrs, ',')
mFrom = 'ciaran at localzope'
mSubj = 'New Content'
mailhost.send(url, to_list, mFrom, mSubj)
#return to_list
---------------------------------------------------------------------------
The script constantly gets a "No mailhost found" error. Which means,
I presume,
that the getattr(context, context.superValues()) function call fails.
The only reason that I can think of for this happening is that the
context that's passed when I test it via the manage window is a
different context
than that which gets passed within the users portal window.
There is definitely a MailHost object defined within the portal
application.
Anybody have any thoughts on how to debug this?
Thanks,
Braun Brelin
More information about the Python-list
mailing list