[Zope] How do I get product to return other than ZMI page?

John Schinnerer johnschinnerer at yahoo.com
Fri Apr 9 14:28:23 EDT 2004


Hello again,
I'm back with this little tangle...

--- Chris Withers <lists at simplistix.co.uk> wrote:
> > from the mxm README example, for manage_addAction I am using
> > 
> > def manage_addAction(self, id=None, REQUEST=None)
> >   "Add instance to parent ObjectManager"
> 
> Will this method ever be the target of a form?

Yes, that's exactly what I'm trying to do with it.
That is, use the method to add the object via web form. 

> The standard idiot\widiom used when calling this kind of stuff in a
> script is:
> context.manage_addProduct['myProduct'].manage_addAction(request.id)
> 
> ...the abscence of a REQUEST is generally taken to mean "don't
> redirect anywhere".
> ...you'll probably find mxmObjectManager.addClass() has the other
> half of the standard idiot init:
> 
> if REQUEST is not None:
>     REQUEST.RESPONSE.redirect('somewhere'
> 
> ...so try not passign the request through...

OK, that makes sense - addClass does this:

if REQUEST is not None:
  getattr(self, id).manage_changeProperties(REQUEST)
  return self.manage_main(self, REQUEST)

...so *that's* why I always get the ZMI main frame back, since REQUEST
is not None - self.manage_main(self,REQUEST) is inevitably returned.

And - I need to set a bunch of properties when I add the object, and
the values for the properties come from the web form - so don't I need
to pass REQUEST to make those available?  If not, how do I access them?
 If so, how do I avoid the above return always happening and return the
web add form instead?

What I'm trying to do, big picture, is:
user goes to web 'add object' form, fills it out, clicks Add, object is
added (with properties set as entered in web form), and user is
returned to web add form to add another.

I already have this scenario working for editing an existing object. I
can simply call an edit method in my product, since the object already
exists.

When adding, the object doesn't exist yet, so I can't directly call an
add method in my product...so what's the clean and simple way to add an
object *and* set properties of it via web form and return to the web
form?

thanks,
John S.

 


__________________________________
Do you Yahoo!?
Yahoo! Small Business $15K Web Design Giveaway 
http://promotions.yahoo.com/design_giveaway/



More information about the Zope mailing list