vivek singh wrote:
Hi all,
I have a form where the users enter the entries as a name value pair. I have to save this info as text to be used later in a batch mode. I am new to Zope and python and i am having trouble figuring out how this can be done. I would highly appreciate if someone could send me some pointers or some sample code. So far i haven't been able to get anything useful from google.
Thanks in advance, vikx
__________________________________ Do you Yahoo!? Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes http://hotjobs.sweepstakes.yahoo.com/signingbonus
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Here you have a form that collects data, and two scripts: -getAprovelist retrieves the stored data -setAprovelist writes the stored data And a page-template that displays and sets the data just put all the thre in a folder (2 scripts, one page template) and name them correctly As datastore you need a DTML Method at the same place named "aprovelist" HTH Robert ----------------------------------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US" metal:use-macro="here/main_template/macros/master"> <body> <div metal:fill-slot="main"> <h1 i18n:translate="">Please adapt the state of the accounts</h1> <form class="group" action="setAprovelist" method="post"> <span class="legend" i18n:translate="">Known users</span> <table style="width:100%; margin-left:30;margin-rigth:30"> <tr> <th align="left" class="field">Member</th> <th align="left" class="field">Email</th> <th align="left" class="field">Approval Manager</th> <th align="left" class="field">Approved?</th> </tr> <tr class="row" tal:repeat="user here/getAprovelist"> <td> <input type="hidden" name="users.username:records" tal:attributes="value python:user[0]"/> <span tal:omit-tag="" tal:content="python:user[0]" /> <br /> <hr /> </td> <td> <input type="hidden" name="users.email:records" tal:attributes="value python:user[1]"/> <span tal:omit-tag="" tal:content="python:user[1]" /> <br /> <hr /> </td> <td> <input type="hidden" name="users.accessmanager:records" tal:attributes="value python:user[2]"/> <span tal:omit-tag="" tal:content="python:user[2]" /> <br /> <hr /> </td> <td valign="top"> <input type="checkbox" name="users.aproved:records" tal:attributes="checked python:test(user[3].strip()=='1', 1,0)" value="1" /> </td> </tr> </table> <input type="submit" value="save" /> </form> </div> </body> </html> ---------------------------------------- aprovelist is a DTML--Method ----------------------------------------- ----------------------------------------- script getAprovelist ----------------------------------------- ## Script (Python) "getAprovelist" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=username='', status=None ##title=(hat kein proxy) ## aprove=container.aprovelist() aprove = aprove.replace('\n','\r') aprovelines = string.split(aprove, '\r') aprovelist = [] aprovedic = {} for person in aprovelines: if len(person.strip()): try: name,email,supervisor,OK = person.split(',')[:4] aprovelist.append((name,email,supervisor,OK)) aprovedic[name] = OK except: continue # do we have to check a single person if len(username) and aprovedic.has_key(username): return aprovedic[username] elif len(username): return 0 return aprovelist ------------------------------------------- script setAprovelist ----------------------------------------- ## Script (Python) "setAprovelist" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=users ##title=(hat proxy) ## aprove = getattr(context, 'aprovelist') result = [] for x in users: if x.has_key('aproved'): result.append("%s,%s,%s,%s" % (x['username'].strip(),x['email'].strip(),x['accessmanager'].strip(),x['aproved'].strip())) else: result.append("%s,%s,%s,%s" % (x['username'].strip(),x['email'].strip(),x['accessmanager'].strip(),'0')) aprove.manage_edit( string.join(result, '\r'),'') context.REQUEST.RESPONSE.redirect("%s/manage_users_form" % context.absolute_url())