mς ρƒCc@sdklZdklZdkZdklZdklZdeefd„ƒYZ defd„ƒYZ d fd „ƒYZ d efd „ƒYZ d efd„ƒYZ defd„ƒYZdefd„ƒYZdefd„ƒYZde fd„ƒYZdS((sTag(sTemplateHandlerN(sStringIO(slogtTemplatecBs,tZdZd„Zdd„Zd„ZRS(NtactioncCs|i|i|i|ƒƒS(N(treqtgetInputtselft FIELD_NAMEtgetDefaultTemplate(RR((t4/usr/home/thanos/public_html/pso-example/pso/tags.pyt getTemplate!stcCs|i|iƒƒS(N(RtparsethandlerR(RR tcdata((Rt__call__$scCs.|iidƒ}|pd|i‚n|S(Ntdefaults2please set tag attribute default or override me %s(RtattrstgetRR(RRR((RR(s(t__name__t __module__RRR R(((RRs  tExeccBstZdd„ZRS(NR cBs]|pdSnei}z4eƒe_|dUeiiƒ}eiiƒWd|e_X|S(NR ( R tsyststdouttoldouttStringIOtgetvaluetretvaltclosetsdtout(RR R RR((RR 0s   (RRR (((RR/st DataMixincBsVtZdZd„Zd„Zd„Zd„Zd„Zd„Z d„Z d„Z RS( NcCs|iS(N(RtKEY(RR ((RtgetKey@scCs|iƒi|ƒS(N(R RRtkey(RR R((RtgetRecIdBscCsdS(N((RR R((Rt getRecordEscCsŠ|i||i|ƒƒ}|od|i|f}|iƒi|ƒ}|p1|i ||ƒ}|o||iƒ|%sR cCs4|iid|iƒ}|i|ƒi|ƒ}|S(Ntname(RRRtNAMEtfieldR%R tvalue(RR R5R6((RtgetValuejscCs7|iƒ}|iid|iƒ}|i|ƒ}|S(Nt delimiter( R6tstripRRRt DELIMITERR8tsplittlist(RR6R<R8((RtgetListos csDy2dit‡d†ˆiˆi|ƒƒƒƒSWn dSnXdS(NR cs ˆi|S(N(RtLItx(R?(R(Rtws(tjointmapRR=R7R (RR R ((RRR us2(RRR:R>R4R7R=R (((RR1es   t ConditioncBstZd„Zdd„ZRS(NcCsdS(Ni((RR ((RttoShow|sR cCs|i|ƒo|SndS(NR (RRDR R (RR R ((RR s(RRRDR (((RRC{s tLabelcBstZd„ZRS(NcCs/|iidƒ}|o|i|ƒi|ƒS(NR5(RRRR5R%R (RR R5((RRD†s(RRRD(((RRE…stListcBs†tZdZdZdZdZdZfZd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„ZRS(Ntpagesizetlinei s%stNAcCs%|i|ƒ}|id|d|ƒS(NRHtpageSize(RR*R R/tfetchRHRJ(RR RHRJR/((RRK•scCsD|i|ƒ}d}x(|D] }|||i||ƒ7}qW|S(NR (RtgetRowsR trecordsthtmlR%R t prepareRow(RR R R%RNRM((RR šs cCs7t|iƒi|i|iƒi|i|iƒƒƒS(N( tintR RRRt PAGEsIZEkEYtgetAttrsRtPAGEsIZE(RR ((Rt getPageSize‘scCs4t|iƒi|i|iƒi|idƒƒƒS(Nt1(RPR RRRtLINEkEYRRR(RR ((RtgetLine€scCs+|i|d|i|ƒd|i|ƒƒS(NRHRJ(RRKR RWRT(RR ((RRL§scCs6x/|iD]$}||jo|i||