[triangle-zpug] Global name 'context' is not defined error
Rob Lineberger
rob_lineberger at med.unc.edu
Wed Aug 23 19:08:01 CEST 2006
Running into a wall here and hope someone can point me in the right
direction. I've programatically added a custom workflow called
track_task to a product in Plone. Everything works fine; I tested the
product, carrying an instance of "Task" through its lifecycle.
The problem comes when I try to add an action to one of the
transitions. When the Task is assigned via the 'assign' transition, I
want it to send an email to the personResponsible. When I do that I get
an error "global name 'context' is not defined."
I followed both the tutorial on plone.org
(http://plone.org/documentation/how-to/send-mail-on-workflow-transition/#1124212172)
and the one in the Definitive guide to Plone.
This error is causing me more trouble than usual because I don't know
how to troubleshoot if there is no context. I though context was always
there no matter what?
Anyway, here is the offending code:
# File: LabProject.py
# Copyright (c) 2006 by Rob Lineberger
__author__ = """Rob Lineberger"""
__docformat__ = 'plaintext'
# Workflow Scripts for: track_task
def new_task(self, state_change, **kw):
obj=state_change.object
creator = obj.Creator()
history = state_change.getHistory()
wf_tool = context.track_task
mMsg = """
You have been assigned a new task.
The url is: %s.
The description is: %s.
"""
member = context.portal_membership.getMemberById(creator)
creator = {'member':member,
'id':member.getId(),
'fullname':member.getProperty('fullname', 'Fullname
missing'),
'email':member.getProperty('email', None)}
actorid = wf_tool.getInfoFor(obj, 'actor')
actor = context.portal_membership.getMemberById(actorid)
reviewer = {'member':actor,
'id':actor.getId(),
'fullname':actor.getProperty('fullname', 'Fullname
missing'),
'email':actor.getProperty('email', None)}
mTo = creator['email']
mFrom = reviewer['email']
mSubj = 'Your item has transitioned'
obj_url = obj.absolute_url() #use portal_url + relative_url
comments = wf_tool.getInfoFor(obj, 'comments')
message = mMsg % (obj_url, comments)
context.MailHost.send(message, mTo, mFrom, mSubj)
More information about the triangle-zpug
mailing list