[Zope] Form to text

robert rottermann robert at redcor.ch
Thu Jan 22 11:01:57 EST 2004


vivek singh wrote:

>Thanks Robert for the prompt response.
>I have followed your directions. However when I view
>the DTML doc, I do not get the text fields where I can
>enter the values. Am I doing something wrong?
>
>Thanks again.
>Vivek
>
>--- robert rottermann <robert at redcor.ch> wrote:
>  
>
>>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'))
>  
>
>=== message truncated ===
>
>
>__________________________________
>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 )
>
>
>  
>
You must not view the dtml but the page template.
The dtml only serves as a container of your data.

Robert



More information about the Zope mailing list