; X@c@s9dZdkZdkZdkTdklZdklZdkl Z dk l Z dk l Z dklZdklZd klZd klZd klZd klZdkZdkZd dgZdZdZdZddZde eefdYZde eefdYZde fdYZ dZ!e"e"dZ#de fdYZ$dZ%e"dZ&d e eefd!YZ'd"Z(e"e"d#Z)d$e eefd%YZ*e"d&Z+d'Z,d(eefd)YZ-ed*e.d+d(d,d(Z/ddde"d-Z0dS(.s-Echo collection provides the classes for the ECHO content web-site. class ECHO_collection is the basis class for an ECHO collection. class ECHO_resource contains information on ECHO resources (e.g. an Display environment for Metadata class ECHO_externalLink contains information on externalLinks N(s*(sImage(sDTMLFile(sFolder(s SimpleItem(sClassSecurityInfo(sInitializeClass(sPageTemplateFile(s PageTemplate(s Persistent(sImplicits view pointsareacCs&t|tjo |gSn|SdS(sEinzelfeld in Liste umwandelnN(stypesfields StringType(sfield((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pystoList$s cCsCd}x2|D]*}|i|ijo||i}q q W|SdS(Ns(srcsnodelistsnodesnodeTypes TEXT_NODEsdata(snodelistsnodesrc((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysgetText+s cCswh}y4d}x'ti|iD]}||}q%WWntd|fSnXyti i i |}Wntd|d|fSnX|i d}d|dsbibsBooksbib_typeis archimedess ArchimedesstypeN(smetadictsgeturlsurllibsurlopensurls readlinesslinesNonesxmlsdomsminidoms parseStringsgetElementsByTagNamesmetanodeslens childNodess metacontentsgetTexts attributessnodestagNameslower(surlsgeturlsnodesdomsmetadictsmetanodes metacontentsline((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys readMetadata4s>  +  scCs||_||_||_| |_| |_| |_t| |_| |_ ||i _ ||i _ ||i i_ ||i i_||i i_g}|oExB|D]6}y|id}Wn g}nX|i|qWn|d|_dS(s2Allegemeine Informationen zu einer ECHO Collections,iN(sviewClassificationsselfslabelstitles descriptions content_types responsiblestoListscreditssweights source_typesscientific_Informationsperiodscontextsscientific_Classificationssciencespracticescoordss coordstrsscoordstrssplitstemcosappend(sselfscontextssciencespractices source_typesperiodsidstitleslabels descriptions content_types responsiblescreditssweights coordstrssviewClassificationstemcoscoordsscoordstr((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pyssetECHO_CollectionInformation`s0          sscientificClassificationcBsbtZdZeZdZeiddZeiddZeiddZ RS(ssubclasscCs(||_||_||_d|_dS(Nsscientific_Classification(scontextsselfssciencespracticesid(sselfscontextssciencespractice((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys__init__s   s get_contextcCs |iSdS(N(sselfscontext(sself((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys get_contextss get_sciencecCs |iSdS(N(sselfsscience(sself((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys get_sciencess get_practicecCs |iSdS(N(sselfspractice(sself((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys get_practices( s__name__s __module__s__doc__sClassSecurityInfossecuritys__init__s declarePublics get_contexts get_sciences get_practice(((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysscientificClassifications        sscientificInformationcBsLtZdZeZdZeiddZeiddZRS(ssubclass scientificInformationcCsd|_||_||_dS(Nsscientific_Information(sselfsids source_typesperiod(sselfs source_typesperiod((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys__init__s  sget_source_typecCs |iSdS(N(sselfs source_type(sself((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysget_source_typess get_periodcCs |iSdS(N(sselfsperiod(sself((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys get_periods( s__name__s __module__s__doc__sClassSecurityInfossecuritys__init__s declarePublicsget_source_types get_period(((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysscientificInformations      s ECHO_resourcecBstZdZdZeZdZdZdZdZ dZ dde dZ e ihd d <d d W|i|_ |i |_ |djo t di|}|SndS(sREinlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur ResourcessERROR:sasciisreplacesyess)Products/ECHO_content/ECHO_resourceMD.zptN(s readMetadatasselfsmetalinksmetadictserrorskeysskeyssetattrsencodesmetadatasgenerate_labelslabelstemplatesPageTemplateFiles__of__spt(sselfstemplateserrorsmetadictsptskey((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysECHO_getResourceMDs $ cCst||SdS(sAusgabe der MDN(sgetattrsselfsitem(sselfsitem((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys ECHO_getMD0scCs|iii|iSdS(s standard pageN(sselfsREQUESTsRESPONSEsredirectslink(sself((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys index_html4scCs!t|d|i}|SdS(s#Erzeugt_standard_Label aus Templateslabel_template_N(sgetattrsselfsbib_typespt(sselfspt((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysgenerate_label9s(s__name__s __module__s__doc__s meta_typesviewClassificationListMastersviewClassificationListsgetViewClassifications getCreditss__init__s getCoordssECHO_resource_configsNoneschangeECHO_resourcesFoldersmanage_optionssECHO_graphicEntrysECHO_enterCoordssECHO_getResourceMDs ECHO_getMDs index_htmlsgenerate_label(((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys ECHO_resources      L    cCs tdi|}|SdS(s Nothing yets.Products/ECHO_content/AddECHO_resourceForm.zptN(sPageTemplateFiles__of__sselfspt(sselfspt((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysmanage_AddECHO_resourceForm@sc Cst|||}t||}t || | ||| | | ||| }|i||t||id|t||iid||tj o|idndS(s nothing yetsscientific_Informationsscientific_Classifications manage_mainN(sscientificClassificationscontextssciencespracticesscientificClassificationObjsscientificInformations source_typesperiodsscientificInformationObjs ECHO_resourcesidslinksmetalinkstitleslabels descriptions content_types responsiblescreditssweightscoordssnewObjsselfs _setObjectsgetattrsscientific_InformationsRESPONSEsNonesredirect(sselfscontextssciencespractices source_typesperiodsidstitleslabels descriptions content_types responsibleslinksmetalinkscreditssweightscoordssRESPONSEsscientificInformationObjsnewObjsscientificClassificationObj((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysmanage_AddECHO_resourceGs* sECHO_externalLinkcBsftZdZeZdZdZdZedZ e i hdd<ddgi}|iD]}|ti|dq~}|SWn gSnXdS(Ns,(sappends_[1]sselfscoordssxsstringsjoin(sselfs_[1]sx((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys getCoordss 6c Cs||_t||_||_||_||_||_||_||_ | |_ gi } | D]} | ti| dqe~ } | |_ dS(Ns,(sidsselfstoListscreditsslabelstitles descriptions content_types responsiblesweights sortfieldsappends_[1]scoordssxsstringssplits coordsnew(sselfsidstitleslabels descriptions content_types responsiblescreditssweights sortfieldscoordss_[1]sxs coordsnew((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys__init__s        3slabels Main ConfigsactionsECHO_Collection_configsRerender LinkssGraphicssECHO_graphicEntrycCsAd|iiijo tdi|}|SndSdS(s DO nothingsoverviews#Products/ECHO_content/ECHO_draw.zptsNO OVERVIEW GRAPHICSN(sselfs aq_parents__dict__skeyssPageTemplateFiles__of__spt(sselfspt((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysECHO_graphicEntrys  scCsa|i}|id}|i||i||d|_|tj o|i dndS(s Enter coordss,isECHO_graphicEntryN( sselfscoordsscoordstrssplitstemcosappendsanglesRESPONSEsNonesredirect(sselfscoordstrsanglesRESPONSEscoordsstemco((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysECHO_enterCoordss     cCszt|d o d|_nt|d o d|_nt|d o g|_ntdi|}|SdS(sMain configurationsweightss sortfieldscoordss/Products/ECHO_content/ChangeECHO_Collection.zptN(shasattrsselfsweights sortfieldscoordssPageTemplateFiles__of__spt(sselfspt((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysECHO_Collection_configs   schangeECHO_CollectionsweightcCsgi}|D]}|ti|dq~}t|||||||||| | | | | |||_|tj o|idndS(snderung der Propertiess,s manage_mainN(sappends_[1]scoordssxsstringssplits coordsnewssetECHO_CollectionInformationsselfscontextssciencespractices source_typesperiodsidstitleslabels descriptions content_types responsiblescreditssweights sortfieldsRESPONSEsNonesredirect(sselfscontextssciencespractices source_typesperiodsidstitleslabels descriptions content_types responsiblesweightscreditss sortfieldscoordssRESPONSEs coordsnews_[1]sx((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pyschangeECHO_Collection/s 34  s index_htmlsECHO_content_overviewcCswd|iijot|dSn%d|iijo|iSntdi|}d|_|SdS(s standard pages index.htmlsoverviews/Products/ECHO_content/ECHO_content_standard.zpts text/htmlN( sselfs__dict__skeyssgetattrs showOverviewsPageTemplateFiles__of__spts content_type(sselfspt((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys index_htmlBs cCs|io |iSngSdS(sAusgabe der creditsN(sselfscredits(sself((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys getCreditsQs  cCsPdddg}g}x0|iiD]}t||}y|i|jox|i D]}t |djo|dd!}t |dor|idj o/|iti|d |i|igq-|iti|d |i|igq1|iti|d |i|igqWqWWnWq%q%Xq%W|Sd S( sGive list of coordinatessECHO_collectionsECHO_externalLinks ECHO_resourceiiistitless, N(s subColTypessidssselfs__dict__skeyssentrysgetattrsobjects meta_typescoordss coordtempslenscoordshasattrstitlesappendsstringsjoinsgetId(sselfsobjectsidss coordtempscoords subColTypessentry((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysgetGraphicCoordsXs(  /2>c Cs*dddg} g}xU|iiD]D} t|| }y%|i| jo|i |nWq%q%Xq%Wy |i }WnnXg}xd|D]\}t ||o-yt|}WnnXt||}nd}|i ||fqW|igi }|D]\}}||q ~SdS(NsECHO_collectionsECHO_externalLinks ECHO_resourcei(s subColTypessidssselfs__dict__skeyssentrysgetattrsobjects meta_typesappends sortfieldstmplistsxshasattrsintstmpssorts_[1]skey( sselfs sortfieldstmps_[1]sobjectsidsstmplistskeysxs subColTypessentry((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys getSubColsts6  (s__name__s __module__s__doc__sClassSecurityInfossecuritys meta_types declarePublicsgetCreditObjectsECHO_generateNavBarsECHO_rerenderLinksMDsprintalls getCoordss__init__sFoldersmanage_optionssECHO_graphicEntrysNonesECHO_enterCoordssECHO_Collection_configschangeECHO_CollectionsDTMLFilesglobalss showOverviews index_htmls getCreditssgetGraphicCoordss getSubCols(((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysECHO_collections4           L        cCs tdi|}|SdS(s Nothing yets0Products/ECHO_content/AddECHO_collectionForm.zptN(sPageTemplateFiles__of__sselfspt(sselfspt((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysmanage_AddECHO_collectionFormsc Cst|||}t||}t |||| | | || | | }|i||t||id|t||iid||tj o|idndS(s nothing yetsscientific_Informationsscientific_Classifications manage_mainN(sscientificClassificationscontextssciencespracticesscientificClassificationObjsscientificInformations source_typesperiodsscientificInformationObjsECHO_collectionsidstitleslabels descriptions content_types responsiblescreditssweights sortfieldscoordssnewObjsselfs _setObjectsgetattrsscientific_InformationsRESPONSEsNonesredirect(sselfscontextssciencespractices source_typesperiodsidstitleslabels descriptions content_types responsiblesweights sortfieldscoordsscreditssRESPONSEsscientificInformationObjsnewObjsscientificClassificationObj((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysmanage_AddECHO_collections' s ECHO_rootcBs8tZdZdZdZdZdZdZRS(sECHO Root Folders ECHO_rootcCs||_||_dS(sinitN(sidsselfstitle(sselfsidstitle((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys__init__s cCsudg}g}x[|iiiD]G}t|i|}y%|i |jo|i |nWq"q"Xq"W|SdS(s>Get list of Partners. Presently only from a subfolder partnerss ECHO_partnerN( s partnerTypessidssselfspartnerss__dict__skeyssentrysgetattrsobjects meta_typesappend(sselfs partnerTypessobjectsidssentry((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys getPartnerss csdd|SdS(s>get the collection tree (list of triples (parent,child, depth)ics|d7}g}xq|iiD]`}t||}yA|idjo-|i |||f|||7}nWq q Xq W|SdS(NisECHO_collection( sdepths collectionssobjects__dict__skeyssentrysgetattrselements meta_typesappends getCollection(sobjectsdepthselements collectionssentry(s getCollection(sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys getCollections N(s getCollectionsself(sselfs getCollection((s getCollectionsW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysgetCollectionTreescCsSg}xB|iD]4}|i|di|di|dfqW|SdS(sShow the IDs of the TreeiiiN(sretsselfsgetCollectionTrees collectionsappendsgetId(sselfs collectionsret((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysgetCollectionTreeIdss  2(s__name__s __module__s__doc__s meta_types__init__s getPartnerssgetCollectionTreesgetCollectionTreeIds(((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys ECHO_roots    cCs;|i|t|||tj o|idndS(sAdd an ECHO_roots manage_mainN(sselfs _setObjectsids ECHO_rootstitlesRESPONSEsNonesredirect(sselfsidstitlesRESPONSE((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysmanage_AddECHO_roots cCs tdi|}|SdS(s Nothing yets&Products/ECHO_content/AddECHO_root.zptN(sPageTemplateFiles__of__sselfspt(sselfspt((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysmanage_AddECHO_rootFormss ECHO_partnercBsZtZdZdZdddZeihdd<ddt|d o d|_ntdi|}|SdS(sMain configurationsurlss,Products/ECHO_content/ChangeECHO_partner.zptN(shasattrsselfsurlsPageTemplateFiles__of__spt(sselfspt((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysECHO_partner_configs  ( s__name__s __module__s__doc__s meta_types__init__sImagesmanage_optionssNoneschangeECHO_partnersECHO_partner_config(((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys ECHO_partners  " sECHO_partnerAddsKindskindc Cst|}t|}t|}t|}tii|||\}}|i }|i |t |||d|||o|i|i|n|o||i|_n|tj o<y|i}Wn|d}nX|iid|n|SdS(s Add a new ECHO_partner object. Creates a new ECHO_partner object 'id' with the contents of 'file'. Based on Image.manage_addImage ssURL1s%s/manage_mainN(sstrsidstitles content_types preconditionsOFSsImagescookIdsfilesselfsthiss _setObjects ECHO_partnersurls_getObs manage_uploadsREQUESTsNonesDestinationURLsRESPONSEsredirect(sselfsidsfilesurlstitles preconditions content_typesREQUEST((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pysmanage_AddECHO_partners&     % (1s__doc__sstrings OFS.ImagesOFSstypessImagesGlobalssDTMLFiles OFS.FoldersFoldersOFS.SimpleItems SimpleItems AccessControlsClassSecurityInfosInitializeClasss'Products.PageTemplates.PageTemplateFilesPageTemplateFiles#Products.PageTemplates.PageTemplates PageTemplates Persistents AcquisitionsImplicitsurllibsxml.dom.minidomsxmlsviewClassificationListMasterstoListsgetTexts readMetadatassetECHO_CollectionInformationsscientificClassificationsscientificInformations ECHO_resourcesmanage_AddECHO_resourceFormsNonesmanage_AddECHO_resourcesECHO_externalLinksmanage_AddECHO_externalLinkFormsmanage_AddECHO_externalLinksECHO_collectionsmanage_AddECHO_collectionFormsmanage_AddECHO_collections ECHO_rootsmanage_AddECHO_rootsmanage_AddECHO_rootForms ECHO_partnersglobalssmanage_AddECHO_partnerFormsmanage_AddECHO_partner($ssetECHO_CollectionInformationsgetTextsmanage_AddECHO_resourceFormsECHO_externalLinksFoldersmanage_AddECHO_partnersxmlstoLists ECHO_rootsmanage_AddECHO_externalLinkFormsECHO_collectionsurllibs PageTemplatesmanage_AddECHO_rootsPageTemplateFiles readMetadatasInitializeClasssImplicits ECHO_partnersmanage_AddECHO_rootFormsstringsmanage_AddECHO_resourcesscientificInformationsClassSecurityInfos PersistentsDTMLFilesOFSsmanage_AddECHO_collections ECHO_resources SimpleItemsmanage_AddECHO_partnerFormsImagesscientificClassificationsviewClassificationListMastersmanage_AddECHO_collectionFormsmanage_AddECHO_externalLink((sW/Users/dwinter/install/CVSZOPE/Zope/lib/python/Products/ECHO_content/ECHO_collection.pys? sN                  , & :   6  #