[Zope] Form to text

robert rottermann robert at redcor.ch
Thu Jan 22 01:14:34 EST 2004


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 at 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())





More information about the Zope mailing list