[Zope] deleting documents

Small Business Services toolkit at magma.ca
Fri Feb 20 09:54:34 EST 2004


<snip>
> I have a DTML method which deletes a document from a folder, but everytime
it
> does so it returns the user to the ZMI for that folder. How can i redirect
it
> to show index_html instead of the folder contents for that folder. I am
doing
> it this way because i can't work out a way to fire off a python script to
do
> the same thing. The DTML method is below, can anyone help, either with the
> redirect or the script?
>
> <dtml-in objectValues prefix="loop">
> <dtml-if expr="loop_item==ctfxml">
> <form>
>
> <input type="checkbox"  name="ids:list" value="<dtml-var id>" checked/>
> <dtml-var id>
>
> <input type="submit" name="manage_delObjects:method" value="Delete">
> </form>
> </dtml-if>
> </dtml-in>

A few things I noticed:

1) you are going to get 1 form for each pass thru the dtml-in loop!? If this
is what you want ok, but if you don't, try something like:

<form>

<dtml-in objectValues prefix="loop">
<dtml-if expr="loop_item==ctfxml">

<input type="checkbox"  name="ids:list" value="<dtml-var id>" checked/>
<dtml-var id>

</dtml-if>
</dtml-in>

<input type="submit" name="manage_delObjects:method" value="Delete">
</form>


2)  Instead of having the submit call up manage_delObjects directly, have
the form call a dtml method which does the delete and then displays
something for the user.

eg.

<form action="DeleteStuff" method="POST">
...
<input type="submit"  value="Delete">



Then create a dtml method called 'DeleteStuff', which contains:

<dtml-call "manage_delObjects(ids)">
<dtml-var standard_html_header>
Have a Nice Day!
<dtml-var standard_html_footer>


Note: if your user is not logged-in (ie. authenticated) you will have to set
the proxy to 'Manager' for the DeleteStuff dtml method

Warning - this is all untested, but should get you going in the right
direction

HTH

Jonathan




More information about the Zope mailing list