|
Re: complete example: msg#00035python.cheetah
I don't have a complete application handy, but here is a clean one. It uses the typical WebKit.Page for the site layout and cheetah for the writeContent bit Nano Surbakti wrote: Hi all, -- -Aaron http://www.MetroNY.com/ "I don't know what's wrong with my television set. I was getting C-Span and the Home Shopping Network on the same station. I actually bought a congressman." - Bruce Baum from SecurePage import SecurePage from FunFormKit.Form import * from FunFormKit.Field import * from FunFormKit.Validator import * from Cheetah.Template import Template import os.path from configuration import datapool,SiteSettings import CSUserManager class TrimConverter(ValidatorConverter): """This converter trims a string """ def __init__(self, value): self.value = value ValidatorConverter.__init__(self) def convert(self, value): from string import strip return strip(self.value) fields = [ TextField('username', description='User Name', size=20, maxLength=20,validators = []), TextField('password', size=20, maxLength=20,validators = [NotEmpty(),MinLength(3)]), SubmitButton('UpdateUser', description='Update User', methodToInvoke='updateUser'), TextField('phone', size=20, maxLength=20, extraHTML='onFocus="this.select()"',validators = [NotEmpty(),MinLength(3)]), TextareaField('groups', rows=5, cols=50,validators = []), TextareaField('notes', rows=5, cols=50,validators = []), ] formDefs = [ FormDefinition('EditUser','writeForm',fields) ] class EditUser(SecurePage, FormServlet): def __init__(self): FormServlet.__init__(self, 'writeContent', formDefs) SecurePage.__init__(self) def title(self): return('Edit User') def updateUser(self,fields): user=self.session().value('user') print self.request().fields() username=self.request().field('username') userToUpdate=CSUserManager.UserManager.requestUserByName(user,username) print 'userToUpdate:', userToUpdate userToUpdate.passwd = self.request().field('password') userToUpdate.phone = self.request().field('phone') userToUpdate.groups = self.request().field('groups') userToUpdate.notes = self.request().field('notes') updatedUser = CSUserManager.UserManager.updateUser(user,userToUpdate) #from WebUtils.Funcs import urlEncode #newURL="EditUser?username=%s" % urlEncode(fields['username']) #self.response().sendRedirect(newURL) #self.writeln('<br>',newURL) self.writeln('<h2>User Changes have been Saved!</h2>') self.writeForm() self.setUpLog('EditedUser','%s is edited %s' % (self._user.name,userToUpdate.name)) def writeForm(self): rf = self.renderableForm() defaults={} options={} user=self.session().value('user') if (self.request().hasField('username')): username=self.request().field('username') staticGroups=0 else: username=user.name options['groups']={'static':1} staticGroups=1 userToView=CSUserManager.UserManager.requestUserByName(user,username) options['username']={'static':1} defaults['username']=userToView.name defaults['password']=userToView.passwd defaults['phone']=userToView.phone defaults['groups']=userToView.groups defaults['notes']=userToView.notes rf = self.renderableForm(defaults=defaults, optionSet=options) templateFile=os.path.join(os.path.dirname(self.serverSidePath()),'templates','EditUser.ctd') t = Template(file=templateFile,searchList=[{'rf':rf, 'user':userToView,'staticGroups':staticGroups},SiteSettings[user.company]]) self.writeln(t) #self.writeln('<br>', templateFile) #set $nl='\\n' <SCRIPT LANGUAGE="JavaScript"><!-- function addGroups(sText){ // this routine adds a new item to our listbox if (document.form.groups.value.length > 3) { document.form.groups.value=document.form.groups.value + "$nl" + sText } else { document.form.groups.value=sText } } //--></SCRIPT> <div align=center> $rf.start $rf.hidden <table> <tr><td align="right" class="label">Company:</td><td>$user.company</td></tr> #for $f in [$rf['username'],$rf['password'],$rf['phone']] <tr><td align="right" valign="top" class="label">$f.description:</td><td>$f $f.error</td></tr> #end for #if ($showGroups == 'True') #set $f = $rf['groups'] #if ($staticGroups==0) <tr><td align="right" valign="top" class="label">$f.description: <br> <input type=button value=select onClick="window.open('groupSelect', 'goGroup','toolbar=no,menubar=yes,location=no,directories=no,status=yes,resizeable=yes,width=500,height=500,left=50,top=50');"></td> <td class="label">One Group per line - a <b>%</b> is a wildcard.<br> ie - <b>Office%</b> will match any group staring with the word 'Office' <br>$f.error $f</td></tr> #else <tr><td align="right" valign="top" class="label">$f.description:</td> <td class="label">Note: <b>%</b> is a wildcard.<br> ie - <b>Office%</b> will match any group staring with the word 'Office' <hr> $f<hr></td></tr> #end if #else <input type=hidden name='groups' value=''> #end if #set $f = $rf['notes'] <tr><td align="right" valign="top" class="label">$f.description:</td><td>$f $f.error</td></tr> <tr><td align="center" colspan="2"> #for $f in $rf.submitFields $f $f.error #end for </td></tr> </table> $rf.end </div>
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | complete example, Nano Surbakti |
|---|---|
| Next by Date: | Re[2]: Webware vs. PHP - performance comparision!, Jarosław Zabiełło |
| Previous by Thread: | complete example, Nano Surbakti |
| Next by Thread: | webmaster@xxxxxxxxxxxxxxx, cd |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |