mò ñƒCc@s_dZdklZlZlZdkZdklZdkl Z l Z de fd„ƒYZ de fd„ƒYZ d e fd „ƒYZd e fd „ƒYZd efd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd „ƒYZd!efd"„ƒYZd#efd$„ƒYZd%efd&„ƒYZd'efd(„ƒYZd)efd*„ƒYZd+efd,„ƒYZd-fd.„ƒYZ d/e efd0„ƒYZ!d1e efd2„ƒYZ"d3e"fd4„ƒYZ#dS(5s$Revision: 1.1.1.1 $(sListTypes TupleTypes StringTypeN(sTag(smkDictslogt FormExceptioncBstZRS(N(t__name__t __module__(((t4/usr/home/thanos/public_html/pso-example/pso/form.pyR"st FieldMissingcBstZdd„ZRS(Ns is mandatorycCs&||_||_ti||ƒdS(N(tfieldtselftmessaget Exceptiont__init__(RRR((RR $s  (RRR (((RR#stValidationErrorcBstZd„ZRS(NcCs&||_||_ti||ƒdS(N(RRRRR (RRR((RR *s  (RRR (((RR )stValidationFailurecBstZd„ZRS(NcCs||_ti|tƒdS(N(terrorsRRR R(RR ((RR 0s (RRR (((RR /stFormPartcBs/tZdZdZdZdZdZd„ZRS(Nt formStatetstartterrortconfirmtsubmitcCs"|iƒi|itiƒ}|S(N(thandlertscratchtgetRt FORMsTATEkEYR tSTARTtstate(RRR((RtgetStateDs(RRRRtINeRRORt INcONFIRMtINsUBMITR(((RR ;s tFormcBs•tZd„Zd„Zd„Zd„Zdd„Zd„Zd„Zd „Z d „Z dd „Z d „Z d „Z d„Zd„Zd„ZRS(NcCsti|ƒdS(N(tTagtinitR(R((RRJscCs´||j o£|o˜t|dƒoˆy#|i|iƒ|iiƒ|(thiddenthtmltitemstktv(RR5R8R6R9((Rt renderHiddenƒs  cCshS(N((RR((Rt getHiddenŠscCsI|iidƒ}|p,|iƒiƒ}|iƒt |ƒ}n|S(Ntaction( RtattrsRR<RR*tgetUrlturltcleartstr(RRR<R?((Rt getActionŽs  cCs–|i|ƒ}|o|id|ƒ}n |iƒ}|i|ƒ}|iƒi dƒ|d<|i |ƒ||i <|i |ƒ}d|||fS(NR<s
%s %s
(RRBRR<t buildAttrst formattrsR;R5R*R+RRR:tfields(RRRER<R5RD((RR/—s cCs|i||ƒS(N(RR/RR%(RRR%((RR0£scCs|iƒiddƒS(Nssubmit.xR(RR*t hasInputs(RR((RtonSubmit¦scCs|iƒiddƒS(Ns confirm.xR(RR*RF(RR((Rt onConfirmed©scCs|iƒidƒdS(NsGOTO NEXT PAGE(RR*tlog(RRR%((RtgoNext¬scCs#|iƒi|iƒiƒƒdS(N(RR*RIt getInputs(RRR%((RR°scCs$|i||ƒ|i||ƒdS(Nsform submitted(RRRR%RJ(RRR%((RR1³s(RRRR&R R.R4R:R;RBR/R0RGRHRJRR1(((RRIs          tFieldcBs’tZdZd„Zd„Zdd„Zd„Zd„Zd„Zd „Z d „Z dd „Z d „Z d „Z d„Zd„Zd„ZRS(NicCs|iƒdS(Ntname(RtgetAttrs(R((RtgetName½scCs†|iƒiddƒ}t|dƒo9|i|i|ƒƒ}|o|i||ƒ}qan|i ||ƒ}|p|Sn|S(NtvalueR)trecord( RRNRt startvalueR"tfromDbRQRRMt getFormValueRP(RRRMRPRQRR((Rt getStartValueÀsR)cCs|iƒi||ƒS(N(RR*R+RMtdefault(RRRMRV((RRTÌscCs|S(N(RP(RRP((RRSÏscCsQ|iƒ}|i|ƒtijo|i||ƒ}n|i ||ƒ}|S(N( RRORMRRRRRURPRT(RRRPRM((RtgetValueÓs  cCs`|iƒ}|i||ƒ}|ip|iƒidƒo| ot |iƒƒ‚n|S(Ntrequired( RRORMRTRRPtREQUIREDRNRR(RRRMRP((RtisGivenÜs  (cCs |i|ƒS(N(RRZR(RR((RR äscCs|S(N(R%(RRR%((RtcDataçscCsœ|iƒidƒo2|i|ƒ}|i|||i||ƒƒSn|i |ƒt i jo2|i|ƒ}|i |||i||ƒƒSn|i |ƒt i jon|iƒi|dƒ}t|tƒo#|i|||i||ƒƒSq|i |||i||ƒƒSn|i |ƒt ijo;|iƒi|dƒ}|i|||i||ƒƒSn|i|ƒ}|i |||i||ƒƒS(NtreadonlyR)(RRNRRWRRPtrenderReadOnlyR[R%RRRtrenderEditableRRt isinstanceRt renderInErrorR(RRR%RP((RR4ês #####cKsti||S(N(RRCRtkws(RRRa((RRCscCs/d|i||i|ƒ|ƒ|iƒ|fS(Ns&%s <- %s: %s (RR^RRWR%RORP(RRRPR%((RR`scCsm|o;d|iƒd|i|d|ƒ||iƒdfSn(d|iƒd|i|d|ƒfSdS(Ns<%s %s>%sttagnameRPs <%s %s />(R%RRNRCRRP(RRRPR%((RR^ s;cCs d||iƒ|i|ƒfS(Ns3%s(RPRRORWR(RRRPR%((RR]scCsd}|iƒ}t|ƒtgƒjo6t|d„|ft|ƒ|ƒ}di |ƒSnd||iƒ|i |ƒfS(Ns-%scCs||||fS(N(thR9tn(RdR9Rc((Rtst,s3%s( R6RRORMttypetvaluestmaptlenREtjoinRWR(RRRhR%RMRER6((RR]s  %(RRRYRORURTRSRWRZR R[R4RCR`R^R](((RRLºs           t DefaultFieldcBs#tZdZdZdZd„ZRS(NR)cCs¨ti|ƒ|io|iƒid|iƒn|iƒidƒpZ|ip9|ii t |i ƒ }|di ƒ|d|_n|i|iƒd(RRORWR(RRRPR%((RR]>s(RRRmRrR](((RRw;stMultiplecBs)tZdZdZdd„Zd„ZRS(NtcheckedRPR)cCs|iƒi|ƒS(N(RR*RKRM(RRRMRV((RRTHscKs°|i|}|i|ƒ}t|ƒtgƒjo |g}n|iƒi dƒ}|o@||jod||i cCs||||fS(N(RcR9Rd(RdR9Rc((RRexsRf( R6RRORMRgRhRiRjRERk(RRRhR%RMRER6((RR]ts  %(RRRTR^R](((RRƒls  tSubmitcBs&tZdZdZd„Zd„ZRS(NR„RcKsD|i|ƒtijod|d%s(RRRPRORWR(RRRPR%((RR]§sc CsÖ|i}d}xÀ|D]¸}t|ƒttfjoLt|ƒ}|djo|\}}}q•|d|dd}}}n||d}}}t |ƒt |ƒjo d}nd||||f}qW|S(NR)iiitselecteds#%s(RRˆRŠt optionListR‹RgtListTypet TupleTypeRjtolenRPtlabeltchosenRARŽ( RRŽRPR”R“R‹RR’RŠ((RR‰ªs     cCsˆ|iƒidƒ}|djo |iSn|i|iƒ}t|i d„|ƒ}t |dƒdjotd||ƒ}n|S(NRŠcCs |i|ƒS(N(txtsplittch(R•R—((RReÀsii( RRNRRŠR(RˆR–t FIRSTSplitRit SECONDSplitRj(RRŠ((RR‡»s  ( RRRrRˆR˜R™RR^RR]R‰R‡(((RR…‹s    tTextAreacBstZdZd„ZRS(NRšcCs3|i|ƒ}|o |}nti|||ƒS(N(RRWRRPR%RlR[(RRR%RP((RR[És (RRRrR[(((RRšÆstFilecBs\tZdZdZdZdZdZdZd„Zdd „Z d „Z d „Z d „Z RS( NR›tfiles
current choice: %s tsavedAstsaveds‹%(filename)scCsBti||||iƒ}ti||||iƒ}||fS(N( RlRURRRMtSAVEDtfilenametSAVEDASttempname(RRRMR R¢((RRU×sR)cCsa|iƒi|ƒ}|djpt|ƒtdƒjo|Sn|iƒ|i |i fSdS(NR)( RR*tgetFileRMRœR(RgRVtkeepR R¢(RRRMRVRœ((RRTÜs & cCs‡d}d}|djpt|ƒtdƒjp;|\}}|iƒid|i ƒ|i ||ƒ}nt i ||||ƒ|S(NR)t currentlabel(R tcurrentRœR(RgR¢RRNRt CURRENTLABELtreadOnlyRlR^RR%(RRRœR%R R¦R¢((RR^æs & /cCsR|djpt|ƒtdƒjp|\}}n d}d}|i||ƒS(NR)(RœR(RgR R¢RR¨(RRRœR%R R¢((RR]ðs &c CsF|iƒ}td||id||id|d|ƒ}|i |S(NRžRR R¢( RRORMtmkDictRŸR¡R R¢R=t READoNLYhTML(RR R¢RMR=((RR¨øs /( RRRrRmR§R¡RŸRªRURTR^R]R¨(((RR›Ïs  tPasswordEncodercBstZd„Zd„ZRS(NcCs*|d djod|i|ƒSn|S(Nisx:(R•Rtcrypt(RR•((RtencodeÿscCsti|ƒ}|iƒS(N(tmd5tnewR•teggt hexdigest(RR•R°((RR¬s(RRR­R¬(((RR«þs t PasswordGroupcBstZd„ZRS(NcCs#|i|ƒ}d|iƒ|fS(Ns*(RR­RPRO(RRRPR%((RR] s(RRR](((RR²st PasswordInputcBs,tZdZdZdZd„Zd„ZRS(NtpasswordiicCsd|iƒ|fS(Ns.****(RRORP(RRRPR%((RR]scCsvti||ƒ}t|iƒidt|i ƒƒƒ}t |ƒ|jot |i ƒd|ƒ‚n|i|ƒS(Ntsizes must be %d characters or longer(RtR RRRPtintRNRRAtSIZERµRjR ROR­(RRRPRµ((RR s '(RRRmR·RYR]R (((RR³s  tPasswordConfirmInputcBstZd„ZRS(NcCsc|iti||ƒƒ}|i|iƒidƒƒ}||jot |i ƒdƒ‚n|S(NR´s8must be the same as what you entered for password( RR­RtR RRPR*R+tpasswdR RO(RRR¹RP((RR s  (RRR (((RR¸s($t __version__ttypesRR‘RŒR®tparserRtutilR©RIRRRR R R RRLRlRtRuRvRwRxRRRƒR„R…RšR›R«R²R³R¸( RRuRR„RLRlRtRwRŒRxRIRR²R R©RºR³R R R«RR‘RƒR®RšRvRRR›R¸RR…((Rt?s8   qb   ; /