;ò "ºÊAc@sÃdZdkZdklZdklZdklZdkl Z dk l Z l Z dk Z dkZdkZdkZdkZdkTde fd „ƒYZe eƒd „Zed „ZdS( s= Classes for displaying, browsing and organizing the archive N(sClassSecurityInfo(sPageTemplateFile(sFolder(s SimpleItem(sInitializeClasss package_home(s*sOSAS_storeOnlinecBs¨tZdZdZeƒZhZhZd„Zei ddƒd„Z dd„Z d„Z d „Z d „Zdd „Zd „Zdd „Zdd„Zd„ZRS(sCWebfrontend für das Storagesystem liefert Browserumgebung sOSAS_StoreOnline__neucCs ||_dS(sinitialize a new instanceN(sidsself(sselfsid((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pys__init__ssViews index_htmlcCs_t|dƒot|dƒƒSn8ttiittƒƒddƒƒi |ƒ}|ƒSdS(scmain view either standard template zpt/storeOnline_index_html.zpt or storeOnline_index.html in treesstoreOnline_index.htmlszptsstoreOnline_index_html.zptN( shasattrsselfsgetattrsPageTemplateFilesosspathsjoins package_homesglobalss__of__spt(sselfspt((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pys index_html$s 0scCs¹tiitii|i|ƒƒ}xYtiitii|dƒƒ o|djp |dj otii|ƒd}q'W|djp |djot Sntii|dƒSdS(sñfinde index_meta fuer diesen eventuell virtuellen Pfad @param path: optional, default ist "", Pfad auf das Object relativ zum rootFolderName @return: None falls kein index.meta existiert sonst Pfad auf das index.meta s index.metass/iN( sosspathsnormpathsjoinsselfsrootFolderNamesrealPathsexistsssplitsNone(sselfspathsrealPath((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pys findIndexMeta-s$>c Cs |i|ƒ} | otSntii| ƒd}tiitii |i |ƒƒ}t i i i| ƒ}|idƒ} x¹| D]±} | idƒ}|oti|diƒ} nd} | idƒ}|oti|diƒ}nd}tiitii || |ƒƒ}||jo| iƒSq„q„W|idƒ}x¹| D]±} | idƒ}|oti|diƒ} nd} | idƒ}|oti|diƒ}nd}tiitii || |ƒƒ}||jo| iƒSqOqOWtSdS(s½fragm xml zum path @param path: Pfad auf das Object relativ zum rootFolderName @return: den Teil von Index.meta der Informationen zu path enthaelt, None wenn error. isdirspathssnamesfileN(sselfs findIndexMetaspaths indexMetasNonesosssplitsrealPathsnormpathsjoinsrootFolderNamesxmlsdomsminidomsparsesgetElementsByTagNamesdirssdirspathess OSAS_helperssgetTexts childNodesspathXsnamessnames checkpathstoxmlsfiles( sselfspathsrealPathspathessnamesdoms checkpathsfilessnamess indexMetasdirsspathXsdir((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pysfindEntryInIndexMeta;sH$$ $ cCsùh}|i|ƒ} | o|Sntii| ƒd}|i|dƒ}|o|dti jo|d}nti | ƒ}|i i | ƒo|i | d|t ijo|i | dSntiii| ƒ}g} |idƒ|idƒ} xÓ| D]Ë}|idƒ}|oti|diƒ} nd} |idƒ} | oti| diƒ}nd}| |joL|idjo d} nd } tii|| |ƒ}| df||(fileType,''), fileType ist hierbei OSAS_dir_archive falls Object ein directory und OSAS_file_archive falls das Object ein File ist,der zweite Eintrag des Tupels ist zur Zeit immer '', spaeter wird hier die Beschreibung gemaess Metadaten stehen, wie bei readObjectsFromPath. isisdirsfilespathsnamesOSAS_dir_archivesOSAS_file_archiveN(!sretsselfs findIndexMetaspaths indexMetasosssplitsrealPathsreplacessepsstatsstatss _v_metaFilesshas_keysST_MTIMEsxmlsdomsminidomsparsesdirssgetElementsByTagNamesdirspathess OSAS_helperssgetTexts childNodesspathXsnamessnamestagNamesfileTypesjoinsobject(sselfspathsrealPathspathessstatssnamesdomsobjectsretsfileTypesnamess indexMetasdirsspathXsdir((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pysgetSubDirsFromIndexMetarsB2  cCs2|i|ƒ}|oti||ƒSndSdS(sÄmetadaten zu path als html aus dem index.meta file zu path @param path: optional, default ist "", Pfad auf das Object relativ zum rootFolderName @return: metadata als html sN(sselfsfindEntryInIndexMetaspathsxmlInfoss OSAS_helperssgetMetaInfoFromXML(sselfspathsxmlInfos((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pysgetMetaInfoFromIndexMeta§s c CsNtiitii|i|ƒƒ}|i} |i |iƒdjohSntii |ƒ ot Snti |ƒ}|ii|ƒo|i|d|t ijo|i|dSnti|ƒ}h}xV|D]N}tii||ƒ}ti|ƒ}|o|| i|ƒf|| (fileType,metadatum als String) iiN(sosspathsnormpathsjoinsselfsrootFolderNamesrealPathstestmdsmetaDatasfindsexistssNonesstatsstatss _v_fileSystemshas_keysST_MTIMEslistdirsdirsretsfilenamesobjects OSAS_helpersscheckOSASFileTypesfileTypesgetDisplayFieldsAsStr( sselfspathsrealPathsstatssobjectsretsfilenamesfileTypesdirsmetaData((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pysreadObjectsFromPath³s($ 2!cCs¯g}xž|i|iddgddƒD]{}||dijoa|it |dddƒdƒ}|di |}|di }d||f}|i|ƒq(q(W|SdS( s:teste ob fuer diesen Typ, handler definiert sind und gibt einen entsprechenden Link zurueck, der das Object mit diesem Handler ausfuehrt. @param path: Pfad auf das Objekt @param type: Typ des Objektes @return: (string) html-Fragment, link der das Objekt mit diesem Handler anzeigt. s obj_metatypessOSAS_HandlerObject__neus search_subis ignorePathss#%sN(sretsselfsZopeFinds aq_parentshandlerstypes objectTypesspathsreplacesgetattrsprefixsurlstitlestextsstringsappend(sselfspathstypesstringsurlstextsretshandler((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pys giveHandlersÚs"" c Cs¡|i|ƒ}| o h}n|i|ƒ}x7|iƒD])} |i| ƒ o|| || %sisOSAS_dir_archives%s (A)N(sselfsreadObjectsFromPathspathsobjectssgetSubDirsFromIndexMetasimskeysskeyshas_keyssortLowsrets objectSortedssortsobjects giveHandlersshandlersosssplitsstringsappend( sselfspathsstrings objectSortedshandlersobjectsretsobjectssimskeyssortLow((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pys generateTreeìs0      " "2cCsjtiitii|i|ƒƒ}|iƒ}d}tii |ƒ}d}|tii |ƒgg}xft|ƒdj oQ|d}|djoPn|i|tii |ƒgƒtii |ƒ}qlWx|djo||di|iƒdjo|d||dd}n3|d|d||dd ||dd}|d}qÕW|Sd S( s&generates navigation bar for viewfilessiiiss/sN(sosspathsnormpathsjoinsselfsrootFolderNamespathTmps absolute_urlsURLsstringsdirnamestmppathsisbasenamespathesslensappendsfind(sselfspathTmpspathessstringsURLsistmppathspath((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pys path_to_links*$    !2cCsti||ƒ}|SdS(sLese Metafile einN(s OSAS_helperss getMetaFilesselfspathstmp(sselfspathstmp((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pys getMetaFile5s(s__name__s __module__s__doc__s meta_typesClassSecurityInfossecuritys _v_fileSystems _v_metaFiless__init__sdeclareProtecteds index_htmls findIndexMetasfindEntryInIndexMetasgetSubDirsFromIndexMetasgetMetaInfoFromIndexMetasreadObjectsFromPaths giveHandlerss generateTrees path_to_links getMetaFile(((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pysOSAS_storeOnlines"     7 5 '  , cCs;ttiittƒƒddƒƒi|ƒ}|ƒSdS(s"interface for adding the OSAS_rootszptsaddStoreOnline.zptN( sPageTemplateFilesosspathsjoins package_homesglobalss__of__sselfspt(sselfspt((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pysmanage_addOSAS_storeOnlineForm>s0cCs>t|ƒ}|i||ƒ|tj o|idƒndS(sadd the OSAS_roots manage_mainN(sOSAS_storeOnlinesidsnewObjsselfs _setObjectsRESPONSEsNonesredirect(sselfsidsRESPONSEsnewObj((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pysmanage_addOSAS_storeOnlineCs   (s__doc__s OSAS_helperss AccessControlsClassSecurityInfos'Products.PageTemplates.PageTemplateFilesPageTemplateFiles OFS.FoldersFoldersOFS.SimpleItems SimpleItemsGlobalssInitializeClasss package_homeszLOGsossos.pathsstatsxml.dom.minidomsxmlstypessOSAS_storeOnlinesmanage_addOSAS_storeOnlineFormsNonesmanage_addOSAS_storeOnline(sxmlsstatsOSAS_storeOnlinesClassSecurityInfosInitializeClasss OSAS_helperss SimpleItemsmanage_addOSAS_storeOnlinesmanage_addOSAS_storeOnlineFormsPageTemplateFileszLOGsFoldersoss package_home((sS/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/OSA_system2/OSAS_browser.pys?s"          ÿ+