I played around with some auto-form generating ZClasses a couple months ago. Just thought i should share since it seems to be something people want, and i saw it used as a feature-lack against zope on linuxworld. basically it just spits out an html page where you pick a property sheet and then it spits up an edit form for that sheet. i use em for quick testing of a zclass and as a template(ala view source) for more customized forms. i generally use it a base zclass on a project and just make my other zclasses inherit from it. to view the forms after you've created the methods (in your the Products folder of your ZClass) just go to http://YourZopeSite.zope/YouObject/edit_properties this stuff will be on my members page, soon:) http://www.zope.org/Members/k_vertigo standard_disclaimer -ie it works for me. use at your own risk. raw dtml - sorry i'm sure the formatting blows edit_properties :: dtml_method <dtml-var standard_html_header> <center><b>Please Pick A Property Category</b></center> <table align="center"> <form action="edit_propertyCategory" method="POST"> <tr><td> <SELECT name="PropertyCategory"> <dtml-in "propertysheets.items()"> <OPTION value="<dtml-var sequence-key>"><dtml-var sequence-key></OPTION> </dtml-in> </SELECT> </tr></td> <tr><td><INPUT TYPE="SUBMIT" value="Edit Properties"></td></tr> </form> </table> <dtml-var standard_html_footer> edit_propertyCategory :: dtml_method <dtml-var standard_html_header> <dtml-if "REQUEST.has_key('PropertyCategory')"> <dtml-in "propertysheets.items()"> <dtml-let y=sequence-key> <dtml-if "REQUEST.PropertyCategory==y"> <dtml-let x=sequence-item> <table border="1" align="center" cellspacing="0" cellpadding="4"> <tr><th colspan="2" align="center">Edit <dtml-var y> Properties</th></tr> <form action="edit_propertiesChange" method="POST"> <dtml-in "x.propertyItems()"> <tr><td> <dtml-var sequence-key> </td><td> <input type="text" name="<dtml-var sequence-key>" value="<dtml-var sequence-item>"> </td></tr> </dtml-in> <tr><td colspan="2" align="center"><input type="SUBMIT" value="Change Properties"></td></tr> <input type=hidden name="PropertyCategory" value="<dtml-var PropertyCategory>"> </form> </table> </dtml-let> </dtml-if> </dtml-let> </dtml-in> <dtml-else> You have reached this page in error </dtml-if> <dtml-var standard_html_footer> edit_propertiesChange :: dtml_method <dtml-var standard_html_header> <dtml-if "REQUEST.has_key('PropertyCategory')"> <dtml-in "propertysheets.items()"> <dtml-let y=sequence-key> <dtml-if "REQUEST.PropertyCategory==y"> <dtml-let x=sequence-item> <dtml-call "x.manage_changeProperties(REQUEST)"> <dtml-var PropertyCategory> Properties Changed<br> <a href="<dtml-var URL1>">Back To Object</a><br> <a href="<dtml-var URL2>">Back To Container</a> </dtml-let> </dtml-if> </dtml-let> </dtml-in> <dtml-else> You have reached this page in error </dtml-if> <dtml-var standard_html_footer> Cheers Kapil http://lostworld.imeme.net _______________________________________________ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )