Annotation of OSAS/OSA_system/OSAS_add.pyc, revision 1.3

1.1       dwinter     1: -í
1.3     ! dwinter     2: nK„?cs&dZd&k&Z&d&kZdklZ&dklZ&    d&kZ
1.2       dwinter     3: d&kZd&k  Z
                      4: d&kZdd„&Z#d„Z
.d„ZAd„ZZd   „Zhd
1.3     ! dwinter     5: „Zud„Zzd„Z¥d
klZlZ&§d„Z«d„ZÌd„Zìd„Zód„Z&d„ZW&d„Z`&d„Zh&d„Zo&d„Z &d„Z!›&d„Z"½&d„Z#d&S(s1Methoden zum hinzufügen von Dokumenten ins ArchivN(&sPageTemplateFile(&sPageTemplateics¹d&ddg|_&tdƒ&i|ƒ&}|id|iid<|&djo&d|iid<n.&|iiidƒ&o&|iid=n&&|ƒS|i&Sd S(
1.1       dwinter     6: sx Add metadata or metadata and documents to the repository
                      7:         no_upload=0 kein upload sonst upload von documententensBooksJournal Articles
1.2       dwinter     8: Manuscripts products/OSA_system/OSAS_add_newspathisyess  no_uploadN(  sselfsreferencetypessPageTemplateFiles__of__snewtemplatesREQUESTsSESSIONs    no_uploadshas_key(sselfs no_uploadsnewtemplate((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysadds&&&&
                      9: &cs²#$td&dƒi&ƒ}%h}&&x}|D&]r}'|iddƒ}(ti|dƒdiddƒ})ti|dƒdiddƒ}+||&|<q.W,|&SdS(Ns>/Users/dwinter/Documents/Projekte/OSAS/OSA_system/iso639-1.incs&rsasciisreplaces&    ii&(sfiles   readliness&fsretslinerawsencodeslinesstringssplitsvalueskey(skeysrets&fslineslinerawsvalue((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysgetISO#s&&  &
                     10:   &&%&%&c&sû./|i&d&|_0|i|i&id<1hddddddd   d
                     11: ddd
ddg
d<dddddddddg  d<dddddddddg d<|_5|i|i|_6tƒ|_<tdƒ&i  |ƒ&}&=|&ƒSdS(NsReference Typesreftypesauthorsyearstitles
series editorsseries titles
series volumesnumber of pagesscitys  publisherseditionsnumber of volumess
1.1       dwinter    12: translators ISBN ISSNsBooksjournalsvolumesissuespagessalternate journalscall numbersJournal Articleslocations    signatureseditorial remarkssdescriptionskeywordss
1.2       dwinter    13: Manuscripts$products/OSA_system/OSAS_add_bibdata(sselfsREQUESTsreftypesSESSIONsbibdatasfieldssgetISOsisolistsPageTemplateFiles__of__snewtemplate(sselfsnewtemplate((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysadd2.s&&&„&&c&s.&ABh}Cd&}Dd&}Ed&}&Fd}Gti|ƒ&}HxÎ|DH]Ã}I|djo&J|&}Kd}Ld&}&n&M|djo#&N|&||<Od&}&Pd}n\&R|djo!&S|djo
&Sd}n&&n&U|djo
&Ud}n&&V|&|}&qLWW|&||<X|SdS(   Nsskeys&=svalues&&s&+s&-s& (  squeriesskeysvaluestmpstogglesurllibsunquotesstrs&i(sstrstmpstoggleskeysqueriess&isvalue((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysparse_query_stringAs0&  &   &   &   &   &&
                     14:   && &   &
&&
& &
&
&&
&c&sáZ[\t|id&ƒ&}]||iid<^|dd d|dd d|d}_|idd    ƒ|_`|iiid
                     15: ƒ&o.&a|iid|iid<bt|ƒ&Sn#&dt d
ƒ&i
                     16: |ƒ&}&e|&ƒSdS(s
                     17: FoldernamesQUERY_STRINGsmetadatasauthoris&_stitlesyearsasciisignores no_uploadspathsfolder_names#products/OSA_system/OSAS_add_namingN(sparse_query_stringsselfsREQUESTsmetadatasSESSIONsvorschlag_namingsdecodeshas_keysadd5sPageTemplateFiles__of__snewtemplate(sselfsnewtemplatesvorschlag_namingsmetadata((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysadd3Zs&&&&-&&&&&c&sµhiti&d&|iidƒidƒ&|_k|id|_m|iidd|id|iid<p|i|iid<qd|_rt dƒ&i
                     18: |ƒ&}&s|&ƒSdS(Ns
                     19: /mpiwg(.*)spathi&sfolder_names&/spageimgsproducts/OSA_system/OSAS_upload(sressearchsselfsREQUESTsSESSIONsgroupspathsfolder_namesimage_folder_namesPageTemplateFiles__of__snewtemplate(sselfsnewtemplate((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysadd4hs&+,&&&c&s,uvwtd&ƒ&i&|ƒ&}&x|&ƒSdS(sADD INDEX.METAs%products/OSA_system/OSAS_add_metadataN(sPageTemplateFiles__of__sselfsnewtemplate(sselfsnewtemplate((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysadd5us&&&c&s¥z{t|id&ƒ&}|tii|iidƒ&d|d<~tii|iidƒ&d|d<d|d<€|iid |_||iid
                     20: <‚||_   ƒ|iid|_„d|_
                     21: …xL|iiƒD…]8}†|i
1.1       dwinter    22: d
|d|i|d|d|_
1.2       dwinter    23: qÞWˆt
dƒ&i|ƒ&}‰d|_Š|ƒ}‹|iiidƒ&o&Œ|iidd}n$&Ž|i   dd|i   dd}t|dƒ}&‘|&i|ƒ&&’|&iƒ&“ti|dƒ&”|iiidƒ&o3&—|iii|idd|iidƒ&Snp&štid|i dƒidƒ&|_›t
dƒ&i|ƒ&}žd|_Ÿ|iii ddƒ&¢|ƒSdS(NsQUERY_STRINGspathisarchive-pathi&sfolder_namesscanned documentscontent-typesreftypesadd_metadatasmetadatass&<s&>s</s>
1.1       dwinter    24: sproducts/OSA_system/index_metas
                     25: text/plains no_uploads/index.metas&/s&wi¤&sURL2s?path=s/mpiwg/online/(.*)sproducts/OSA_system/OSAS_saveds    text/htmlsContent-Type(!sparse_query_stringsselfsREQUESTsmetadatasosspathssplitsSESSIONsreftypesadd_metadatas
metadataprintskeysstagsPageTemplateFiles__of__snewtemplatescontent_types renderxmlshas_keysmetapathsopens&fs
1.3     ! dwinter    26: writelinesscloseschmodsresponsesredirectsressearchsgroupsviewpathsnewtemplate2s setHeader(sselfs&fsmetapathsnewtemplate2s renderxmlstagsnewtemplatesmetadata((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysadd6zs:&&''&
&&&&&&    &6&&&&#&&
&&3(&&(s   localtimesstrftimec&&s§¨td&t&ƒƒSdS(Ns%d.%m.%Y(sstrftimes localtime(&sself((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysdate§s&csÕ&«¬®ti&ii|&d&ƒ&}±y&²ti|idƒ&diƒ&}Wn,³&&&´ti|idƒ&diƒ&}n&Xµti|idƒ&diƒ&}¶y&·ti|idƒ&diƒ&}Wnb¸&&&¹y&ºti|idƒ&diƒ&}Wn,»&&&¼ti|idƒ&diƒ&}n&Xn&X½d   }¾x,¾t
iid
        !            27: |ƒ&o&¿|d    7}q9&&WÀd
        !            28: ||iid<Á|&|iid<Âd
|||f|iid<Étdƒ&i|ƒ&}Ê|ƒSdS(sadd presentation to the paths/index.metasauthorisAuthorstitlesyearsYearsdatei&s%02d-presentationspresentationnamespaths_<info>
1.1       dwinter    29:    <author>%s</author>
                     30:    <title>%s</title>
                     31:    <date>%s</date>
                     32:    <display>yes</display>
1.2       dwinter    33: </info>sxmlvorschlags#products/OSA_system/addPresentationN(sxmlsdomsminidomsparsespathsarchivesgetTextsgetElementsByTagNames
1.3     ! dwinter    34: childNodessauthorstitlesdates&isossexistssselfsREQUESTsSESSIONsPageTemplateFiles__of__snewtemplate(sselfspathstitles&isauthorsdomsdatesnewtemplate((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysaddPresentation«s.&&&&&&&"&&&&&&&&&*&  &&&&& &c&s©&ÌÍÎ|i&d&}Ð|i&d}&Ò|i&id}Ô|i&idƒ&o&Õ|i&d}Öd}nF&Ù|i&di    }Ú|i&i
        !            35: diƒ}Üd}Ý|i&d}Þyßti
|d|ƒ&&Wn
à&&&án&XâdG|GHãt|d|d|d   ƒ}ä|i|ƒ&&å|iƒ&æti|d|d
        !            36: ƒ&çti|d|d|dƒ&èt|||&dƒ&ê|i&ii|i&d
d|ƒ&SdS(sadd presentation sfolder_namescontent_descriptionspaths
        !            37: fileuploadsxmltextsinfo.xmls&/sNAME:s&wií&i¤&spresentationsURL2s?path=N(sselfsREQUESTsfolder_namescontent_descriptionsSESSIONspathshas_keysxmlinfos   file_namesfilenamesformsreadsossmkdirsopens&fswritescloseschmodsaddDirsToIndexMetasRESPONSEsredirect(sselfscontent_descriptionsfolder_names   file_namespaths&fsxmlinfo((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysaddPresentation2Ìs.&&&&
&    &&&&&&&"&&
&&#&csUìíîd&g&|i&id<ï|&|i&id<ðtdƒ&i|ƒ&}ñ|ƒSdS(sadd fulltext to the pathspageimgsexisting_namesspathsproducts/OSA_system/addTextN(sselfsREQUESTsSESSIONspathsPageTemplateFiles__of__snewtemplate(sselfspathsnewtemplate((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysaddTextìs
        !            38: &&&&&c&s6&óô|i&d&}ö|i&d}&÷|i&id}ø|i&di}ù|i&idi  ƒ}úti|d|ƒ&&ût
|d|d|dƒ}ü|i|ƒ&&ý|iƒ&þti|d|dƒ&ÿti|d|d|dƒ&&t|||&d    ƒ&&|i&ii|i&d
1.2       dwinter    39: d|ƒ&SdS(Nsfolder_namescontent_descriptionspaths
1.3     ! dwinter    40: fileuploads&/s&wií&i¤&sfulltextsURL2s?path=(sselfsREQUESTsfolder_namescontent_descriptionsSESSIONspathsfilenames  file_namesformsreadsfiledatasossmkdirsopens&fswritescloseschmodsaddDirsToIndexMetasRESPONSEsredirect(sselfscontent_descriptionsfolder_names   file_namespathsfiledatas&f((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysaddText2ós&&&&&&"&&
&&#&csN&&&yI&ti&|ƒ&iƒ}&d&} &x|D   &]}
        !            41: &||}q7WWn&&&&&d|Sn&X
&t|ƒ&o&&d|d|fSn&&&t|&ƒ&}&ti|dƒ}&|t|ƒ&d}&y&&t|&d|d|dƒ}
        !            42: Wn%&&&&&d|&d|d|Sn&X&|
        !            43: i|ƒ&&&|
        !            44: iƒ&&ti|&d|d|dƒ&&tiii|&d ƒ&}&|id
        !            45: ƒ&d}&|idƒ&} &|id
ƒ&}
!&|i|ƒ&}"&|
i!|ƒ&&#&|i!|
ƒ&&%&|idƒ&}  &&|id|ƒ&}'&| i!|ƒ&&(&|i!|   ƒ&&*&|idƒ&}+&|idƒ&},&|i!|ƒ&&-&|i!|ƒ&&/&|i!|ƒ&&1&t|&d dƒ}
        !            46: 2&|
        !            47: i|i'ƒi(dƒ&ƒ&&3&|
        !            48: iƒ&6&tiii|&d    ƒ&}7&|idƒ&d}9&y:&|idƒ&d}Wn;&&&&<&dSn&X?&yT@&|idƒ&}B&t|ƒ&djo'&C&|i*|dƒ&}D&|i,ƒ&n&&Wn
E&&&&F&n&XH&|idƒ&}I&|i|d|ƒ&}J&|i!|ƒ&&K&|i!|ƒ&&N&t|&d    dƒ}
        !            49: O&|
        !            50: i|i'ƒi(dƒ&ƒ&&P&|
        !            51: iƒ&S&ti&d|&ƒ&iƒGHU&d|d|SdS(s hinzufügen eines externen textesssERROR: cannot read: %ss  received:s&/i&s&wsERROR: cannot write: %si¤&s/index.metasresourceisdirsnamesdescriptionsarchimedes text:scontent-typesfulltextsutf-8smetastexttoolsBERROR:no presentation configured yet, user Web Front End to do so!stextsFhttp://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%ssDONE:N(/surllibsurlopenstexturls readlinesstexttempstextslinesTextExternalErrorsgetNewTextPathspathstextpathsstringssplitssplittedslensnamesfiles writefileswritesclosesosschmodsxmlsdomsminidomsparsesgetElementsByTagNamesnodes
createElementssubnodesnamenodescreateTextNodesnamenodetextsappendChildsdescriptionnodesversionsdescriptionnodetextscontentnodescontentnodetextstoxmlsencodestexttoolnodelistsremoveChilds
1.1       dwinter    52: subsubnodesunlinkstextfoldernodestextfoldernodetext(sselfspathstexturlsversionsnodesdescriptionnodetextstextscontentnodestexttoolnodelistsdescriptionnodes  writefilestexttemps
1.3     ! dwinter    53: subsubnodesnamenodeslinessubnodestextfoldernodetextstextfoldernodesnamestextpathsdomscontentnodetextssplittedsnamenodetext((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysaddTextExternal&s|&&&&  &
        !            54:   &&&&&&&&&&&&&&&
&#&&&&&&&&&&&&
&&&&&&&&&&&&&&
c&sVW&X&|d&d!}&Y&|&GHZ&y[&tid|&ƒ}Wn\&&&&]&dSn&X^&d&SdS(Nii
        !            55: s   .*<?xml.*i&(stextsfirstssressearchsmatch(stextsfirstssmatch((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysTextExternalErrorW&s&&&&&&&c&s„`&a&d&}&b&x0b&t&ii|d|&ƒ&o&c&|&d&7}&q&Wd&t&i|d|&ƒ&&e&t&i|d|&dƒ&f&d|&SdS(Ni&s/fulltext%iií&s
        !            56: fulltext%i(s&isosspathsexistssmkdirschmod(spaths&i((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysgetNewTextPath`&s&   &&&&&csUh&i&j&d&g&|i&id<k&|&|i&id<l&tdƒ&i|ƒ&}m&|ƒSdS(sImagesfolder to the pathspageimgsexisting_namesspaths"products/OSA_system/OSAS_addImagesN(sselfsREQUESTsSESSIONspathsPageTemplateFiles__of__snewtemplate(sselfspathsnewtemplate((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pys    addImagesh&s
        !            57: &&&&&c&s¶o&q&|i&d&|_s&|i&d|_w&d|_x&t|i&id|i|i|iƒ&y&tid|i&idƒi dƒ&|i&id<z&t
        !            58: dƒ&i|ƒ&}&{&|&ƒSdS(Nsfolder_namescontent_descriptionsimagesspaths
1.1       dwinter    59: /mpiwg(.*)i&s products/OSA_system/OSAS_upload2(
sselfsREQUESTsimage_folder_namescontent_descriptionscontent_typesaddDirsToIndexMetasSESSIONsressearchsgroupsPageTemplateFiles__of__snewtemplate(sselfsnewtemplate((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pys
1.3     ! dwinter    60: addImages2o&s&)&2&&csi&&&ti&ii|d&ƒ&}‚&|idƒ&d}„&|idƒ&}
†&|idƒ&}‡&|i
        !            61: |&ƒ&}ˆ&|i
|ƒ&&‰&|
i
|ƒ&&‹&|idƒ&} Œ&|i
        !            62: |ƒ&}&| i
|ƒ&&Ž&|
i
|   ƒ&&&|idƒ&}‘&|i
1.1       dwinter    63: |ƒ&}
1.3     ! dwinter    64: ’&|i
|
        !            65: ƒ&&“&|
i
|ƒ&&•&|i
|
ƒ&&—&t|d&dƒ}˜&|i|iƒid  ƒ&ƒ&&™&|iƒ&dS(
        !            66: Ns/index.metasresourceisdirsnamesdescriptionscontent-types&wsutf-8(sxmlsdomsminidomsparsespathsgetElementsByTagNamesnodes
createElementssubnodesnamenodescreateTextNodesfolder_namesnamenodetextsappendChildsdescriptionnodescontent_descriptionsdescriptionnodetextscontentnodescontent_typescontentnodetextsfiles   writefileswritestoxmlsencodesclose(spathsfolder_namescontent_descriptionscontent_typesnodesdescriptionnodetextsdomsnamenodetextscontentnodesdescriptionnodescontentnodetexts writefilesnamenodessubnode((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pysaddDirsToIndexMeta&s&&&&&&&&&&&&&c
        !            67: sÃ&›&œ&&ti&|&ƒ&}Ÿ&g} &g} ¡&g}£&x”|D£&]‰}¥&ti    |&d&|ƒ&o&¦&| i
        !            68: |ƒ&&n&&¨&ti|&|ƒo&©&|i
        !            69: |ƒ&&n&&ª&ti|&|ƒo&«&|i
        !            70: |ƒ&&n&&q=W­&t
iii|&dƒ&}®&y&¯&ti|idƒ&diƒ&}Wn°&&&&±&d}n&X²&tƒ|iid<³&|&|iid<´&||iid<µ&|    |iid <¶&||iid
        !            71: <·&||iid<¸&tdƒ&i|ƒ&}¹&|ƒSd
S(s=gibt input formular zur erstellung des texttools meta tag auss&/s/index.metaslangissisolistspathstextssimagefoldersspresentationfolderssfilelanguages products/OSA_system/ImageandTextN(sosslistdirspathsfilesstextssimagefoldersspresentationfolderssfilenamesarchives
1.1       dwinter    72: isdigilib2sappends
                     73: isFullTextsisPresentationsxmlsdomsminidomsparsesgetTextsgetElementsByTagNames
                     74: childNodessfilelanguagesgetISOsselfsREQUESTsSESSIONsPageTemplateFiles__of__snewtemplate(
1.3     ! dwinter    75: sselfspathsfilesspresentationfolderssdomsfilenamesfilelanguagestextssnewtemplatesimagefolders((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pyscombineTextImage›&s4&&    &   &   
        !            76:   &&&&&&&&&
&&&&&&&&csu½&¾&¿&ti&ii|&d&ƒ&}À&|idƒ&d}Ã&|idƒ&}Ä&t|ƒ&djo'&Å&|i |dƒ&}Æ&|iƒ&n&&È&|idƒ&}Ë&t
i|&d|idƒ&d}
        !            77: Î&|idƒ&}Ï&|idƒ&}Ð&|i|ƒ&&Ñ&|i|ƒ&&Ó&|iid ƒ&oO&Ô&|id  ƒ&}Õ&|i|id ƒ&}Ö&|i|ƒ&&×&|i|ƒ&&n&&Ù&|iid
        !            78: ƒ&o|&Ú&t
i|&d|id
        !            79: ƒ&d}    Û&|id
        !            80: ƒ&}
Ü&|i|id
        !            81: d|    ƒ&}Ý&|
i|ƒ&&Þ&|i|
ƒ&&n&&à&|iidƒ&oO&á&|idƒ&}â&|i|idƒ&}ã&|i|ƒ&&ä&|i|ƒ&&n&&æ&|iidƒ&oW&ç&|idƒ&}è&|i|idd|
        !            82: ƒ&}é&|i|ƒ&&ê&|i|ƒ&&n&&ì&|i|ƒ&&ð&t |&d&dƒ}ñ&|i"|i#ƒi$d
ƒ&ƒ&&ò&|i%ƒ&ö&t&i'd|&ƒ&i(ƒ&ø&t
i)dt*i+dd|idd|id  ƒƒ&&dS(s&erstellt bzw. ändert texttool meta tags/index.metasmetaistexttools&/spresentationsdisplaysyessimagestexts   pagebreaks&wsutf-8sFhttp://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%sslssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 &s
mpiwg/online/sspathN(,sxmlsdomsminidomsparsespathsgetElementsByTagNamesnodessubnodelistslensremoveChildssubnodesunlinks
createElementsosslistdirsselfsREQUESTspresentfilesdisplaynodescreateTextNodesdisplaynodetextsappendChildshas_keysnamenodesnamenodetextstextfilestextfoldernodestextfoldernodetexts
pagebreaknodespagebreaknodetextspresentationnodespresentationnodetextsfiles    writefileswritestoxmlsencodesclosesurllibsurlopens   readlinesspopensressub(sselfspathsnodesnamenodetexts writefilesdisplaynodesnamenodesdisplaynodetextspagebreaknodetextstextfilespresentfilessubnodestextfoldernodetextstextfoldernodespresentationnodessubnodelistsdomspresentationnodetexts
pagebreaknode((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pyscombineTextImage2½&sP&&&&&&%&&&&&&&&%&&!&&&&&&&&!&&&&
($s__doc__sarchivesoss'Products.PageTemplates.PageTemplateFilesPageTemplateFiles#Products.PageTemplates.PageTemplatesPageTemplatesstringsurllibsxml.dom.minidomsxmlsresaddsgetISOsadd2sparse_query_stringsadd3sadd4sadd5sadd6stimes    localtimesstrftimesdatesaddPresentationsaddPresentation2saddTextsaddText2saddTextExternalsTextExternalErrorsgetNewTextPaths  addImagess
1.2       dwinter    83: addImages2saddDirsToIndexMetascombineTextImagescombineTextImage2(sgetNewTextPathsstringsparse_query_strings
1.3     ! dwinter    84: addImages2saddTextsaddText2saddPresentation2scombineTextImagesaddDirsToIndexMetasdatesarchivesaddPresentationsxmlsadd6sadd5sadd4sadd3sadd2saddTextExternalscombineTextImage2s   addImagessurllibsPageTemplatesresaddsPageTemplateFilesgetISOsTextExternalErrorsossstrftimes  localtime((sN/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system/OSAS_add.pys&?s<&&&&&&&&
+! S "

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>