;ò c°Cc@s¡dklZdkZdkZdkZdkZdklZdklZdk l Z dk l Z dk lZdklZdklZd klZd klZd klZd klZd klZdklZlZdkl Z dkl!Z!dk"l#Z#l$Z$l%Z%l&Z&dk'l(Z(dk)l*Z+dk,l-Z-dk.l/Z/dk0l1Z1dk2l3Z3l4Z4dk2l5Z5dk6l7Z7dk8l*Z+dk9l:Z:dk;l<Z<dk=l>Z>dk?l@Z@dZAdZBd efd!„ƒYZCe eCƒd"e fd#„ƒYZDe eDƒed$eEƒd%d&ƒZFeGd'„ZHed(eEƒd%d)ƒZIeGd*„ZJd+„ZKd,e fd-„ƒYZLd.„ZMd/„ZNe-iOeMeNƒdS(0(sStringION(sClassSecurityInfo(sPageTemplateFile(sInitializeClass(s Persistent(s InternalError(sConflict(s writeStream(screateDOMDocument(s_translateCdata(s ParsedXML(sSilvaPermissions(sCatalogedVersionedContent(s add_and_editstranslateCdata(sCatalogedVersion(smangle(simporter_registrysxml_import_helpers get_xml_ids get_xml_title(sexport_metadata(s translate(scontentObjectFactoryRegistry(sEditorTransformer(sContext(sIVersionedContentsIContainerPolicy(sIVersion(sVersioningError(sexternalsource(s make_parser(sContentHandler(s BindingErrorswww/silvadoc.gifiÿÿÿÿsDocumentcBsVtZedƒZeƒZdZeZe Z e Z e i Zedfhdd<dds( scontextsfs last_versionsselfsget_next_versions version_idsNonesget_public_versionswritesidsgetattrsversionsto_xml(sselfscontextsfs version_idsversion((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysto_xmlqs      seditor_storageskupuc Cstd|ƒ}d}|ididƒdjo d}n|tjoÅt dt ƒdd d |i ƒd |d |ƒ} |i | ƒ|id | iiƒd| ƒ}|tj o(|id|ƒ}|iddƒ}n+t|idƒdƒ}|iddƒ}|Sn|iƒ} | tjotdƒ‚n|i|| ƒ}|o t|‚nt d |i ƒd |d |d|iƒ} |id|d| ƒd} | idƒdiƒ}| idƒd} | iddƒ} | i"i#| ƒ| i$|ƒ| i%ƒ| i&ƒdS(s}provide xml/xhtml/html (GET requests) and (heuristic) back-transforming to xml/xhtml/html (POST requests) seditorsMozillasHTTP_USER_AGENTsMSIEiÿÿÿÿsIEsfs last_versionisurlsbrowsersmodels sourceobjscontextsencodings s sutf8u u sNo version to store to!srequests targetobjistitlesdocsUTF8N('sEditorTransformerseditors transformersbrowsersselfsREQUESTsfindsstringsNonesContextsStringIOs absolute_urlsctxsto_xmls to_targetsfsgetvalueshtmlnodesencodingsasBytessretsreplacesunicodes get_editablesversions_s_set_metadata_from_htmlserrorss BindingErrors to_sources silvanodes extract_textstitlesdocnodescontents manage_edits set_titlessec_update_last_author_infosclearEditorCache(sselfsstringseditorsencodings transformerserrorsstitleshtmlnodesretscontentsversionsdocnodesctxs silvanodesbrowser((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pyseditor_storage†sJ      !      cCs^h}dk}|idƒ}xanoY|i|ƒ}| oPn|idƒ}|i |dƒ}|idƒ} h} xnoø| i|ƒ}| oPn|i |idƒdƒ}|idƒddd gjo)|i |id ƒƒ| |idƒ]+\/\>iiss([a-zA-Z_]+)="([^"]+)"snamescontentsschemeisUTF-8sreindex(!s metamappingsrescompilesregssearchshtmlsmatchsgroupstagsreplaces reg_propssfoundsselfs _deentitizeshas_keyserrorssservice_metadatas getMetadatas get_editablesbindingsitemss namespacesvaluesskeysvaluesNonesencodesgetMetadataSetForssets setValuessidsretsupdate(sselfshtmlsversionserrorsssetsbindingstagsvaluesresvaluessretskeys reg_propssfounds namespaces metamappingsregsmatch((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pys_set_metadata_from_htmlÁsP  )0(    cCs8|iddƒiddƒiddƒiddƒSdS( Ns<ss"s"s&s&(sxmlsreplace(sselfsxml((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pys _deentitizeòscCs-tidƒ|ƒ|iƒ}|iƒdS(sº Create a new version of public version, throw away the current one. Overrides Versioning.revert_to_previous() to be able to clear the widget cache too. srevert_to_previousN(sDocumentsinheritedAttributesselfs get_editablesversionsclearEditorCache(sselfsversion((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysrevert_to_previousös cCsjtidƒ|||ƒxJ|iƒD]<}t|t|ƒt ƒ}|o|i i |i ƒq&q&WdS(Nsmanage_beforeDelete(sDocumentsinheritedAttributesselfsitems containers_get_indexable_versionssversionsgetattrsstrsNonesversion_objectsservice_editors clearCachescontent(sselfsitems containersversionsversion_object((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysmanage_beforeDeletes  c CsÐ|}yu|ddgjoH|}|i|dƒ|iƒ}|iƒ|iddddƒ}n|iƒii |ƒWnJt i ƒ\}}}d||fGHdd iti|ƒƒGHH‚nX|SdS( Ns text/htmlsapplication/xhtml+xmlskupuseditorsencodingsUTF-8s%s: %ss %ss (scontentsrets content_typeshtmlsselfseditor_storages get_editablesversionsclearEditorCaches manage_editssyssexc_infosexcsestbsjoins tracebacks format_tb( sselfs content_typescontentsesexcshtmlsretsversionstb((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pystransform_and_store s   sPUTcCsl|tjo |i}n|tjo |i}n|diƒ}|i||ƒ}|i||ƒ}dS(s PUT supportsBODYFILEN( sREQUESTsNonesselfsRESPONSEsreadscontents_get_content_type_from_requests content_typestransform_and_storesret(sselfsREQUESTsRESPONSEsretscontents content_type((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysPUT)s    cCso|idƒ}|tj o|Sntidd|ƒiƒ}|idƒp |idƒodSndSdS( sãtries to figure out the content type of a PUT body from a request the request may not have a content-type header available, if so we should use the contents itself to determine the content type s content-typesss   .    ; 1       sDocumentVersioncBsÕtZdZdZeZeƒZhdd<dd(sDocumentVersionsinheritedAttributesselfsidstitles ParsedXMLscontent(sselfsidstitle((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pys__init__`ssView management screensswww/documentVersionEditcCsD|i}|idt|iƒƒƒ|i|ƒt||ƒdS(Ns%s(scontextsfswritestranslateCdatasselfs get_titlesget_xml_contentsexport_metadata(sselfscontextsf((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysto_xmlhs  cCs|iii|ƒdS(N(sselfscontentsdocumentElements writeStreamsf(sselfsf((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysget_xml_contentnscCs|iƒdS(N(sselfsclearEditorCache(sselfsitem((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysmanage_afterCloneqssfulltextcCsG|iƒdjodSndi|iƒ|i|iƒƒfƒSdS(s1Return the content of this object without any xmls unapprovedss N(sselfsversion_statussjoins get_titles _flattenxmls content_xml(sself((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysfulltextxss content_xmlcCs:tƒ}|iii|ƒ|iƒ}|iƒ|SdS(s9Returns the documentElement of the content's XML N( sStringIOsssselfscontentsdocumentElements writeStreamsgetvaluesvaluesclose(sselfsssvalue((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pys content_xmls    cCs|SdS(sMCuts out all the XML-tags, helper for fulltext (for content-objects) N(sxmlinput(sselfsxmlinput((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pys _flattenxmlŠscCs&|i}|ii}|i|ƒdS(s. Clears editor cache for this version N(sselfsservice_editorseditor_servicescontentsdocumentElementsdocument_elements clearCache(sselfseditor_servicesdocument_element((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysclearEditorCaches  (s__name__s __module__s__doc__s meta_typesIVersions__implements__sClassSecurityInfossecuritysCatalogedVersionsmanage_optionss__init__sdeclareProtectedsPageTemplateFilesglobalss manage_mainsto_xmlsget_xml_contentsmanage_afterClonesSilvaPermissionssAccessContentsInformationsfulltexts content_xmls _flattenxmlsclearEditorCache(((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysDocumentVersionTs&  "        swww/documentAdds__name__smanage_addDocumentFormcCsti||ƒiƒ odSnt|ƒ}|i||ƒt||ƒ}|i di d|ƒ|i dt t ƒt|||ƒdSdS(sAdd a Document.Ns SilvaDocuments0s(smanglesIdsselfsidsisValidsDocumentsobjects _setObjectsgetattrsmanage_addProductsmanage_addDocumentVersionstitlescreate_versionsNones add_and_editsREQUEST(sselfsidstitlesREQUESTsobject((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysmanage_addDocumentœs swww/documentVersionAddsmanage_addDocumentVersionFormcCsSt||ƒ}|i||ƒ|i|ƒ}|i|ƒt|||ƒdSdS(s-Add a Document version to the Silva-instance.sN( sDocumentVersionsidstitlesversionsselfs _setObjects_getObs set_titles add_and_editsREQUEST(sselfsidstitlesREQUESTsversion((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysmanage_addDocumentVersion®s cCs-t|ƒ}t|ƒ}tti||ƒi ƒƒ}|i di ||ƒt ||ƒ}|iƒx¼|iD]±}|idjo>t |dƒ}t|ƒiƒidƒ}|ii|ƒqpt|d|iidƒƒo|io3t |d|iidƒƒ|iidƒƒqpqpW|SdS(Ns SilvaDocumentudocs0sutf8sset_%s(s get_xml_idsnodesids get_xml_titlestitlesstrsmanglesIdsobjectsuniquesmanage_addProductsmanage_addDocumentsgetattrsnewdocssec_update_last_author_infos childNodesschildsnodeNamesversions writeStreamsgetvaluesencodeschildxmlscontents manage_editshasattrs nodeValue(sobjectsnodesnewdocstitleschildxmlsversionschildsid((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysxml_import_handler¹s    *7sSilvaDocumentPolicycBstZeZd„ZRS(NcCs(|idid|ƒ|iiƒdS(Ns SilvaDocumentsindex(s containersmanage_addProductsmanage_addDocumentstitlesindexssec_update_last_author_info(sselfs containerstitle((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pyscreateDefaultDocumentÓs(s__name__s __module__sIContainerPolicys__implements__screateDefaultDocument(((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysSilvaDocumentPolicyÏscCs–ti||ƒiƒ odSnt|ƒi|ƒ}td|ƒi|ƒ}|i d|ƒ|i dt t ƒ|iƒ}|ii|ƒ|SdS(sAdd a Document.Ns0(smanglesIdsselfsidsisValidsDocuments__of__sobjsDocumentVersionstitlesversions _setObjectscreate_versionsNones get_editablescontents manage_editsbody(sselfsidstitlesbodysobjsversion((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pysdocument_factoryØs cCs-|dgj}|idƒ}|p|SdS(Ns application/x-silva-document-xmls.slv(sctsrightctsidsendswithsrightext(sidsctsbodysrightctsrightext((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pys_should_create_documentås(PsStringIOsressyss tracebacksurlparses AccessControlsClassSecurityInfos'Products.PageTemplates.PageTemplateFilesPageTemplateFilesGlobalssInitializeClasss Persistences Persistents zExceptionss InternalErrors webdav.commonsConflictsProducts.ParsedXML.ExtraDOMs writeStreamsProducts.ParsedXML.ParsedXMLscreateDOMDocuments Products.ParsedXML.PrettyPrinters_translateCdatas ParsedXMLsProducts.SilvasSilvaPermissionssProducts.Silva.VersionedContentsCatalogedVersionedContentsProducts.Silva.helperss add_and_editstranslateCdatasProducts.Silva.VersionsCatalogedVersionsmanglesProducts.Silva.ImporterRegistrysimporter_registrysxml_import_helpers get_xml_ids get_xml_titlesProducts.Silva.Metadatasexport_metadatasProducts.Silva.i18ns translates_s+Products.Silva.ContentObjectFactoryRegistryscontentObjectFactoryRegistrystransform.TransformersEditorTransformerstransform.basesContextsProducts.Silva.interfacessIVersionedContentsIContainerPolicysIVersionsProducts.Silva.VersioningsVersioningErrorsProducts.SilvaDocument.i18nsProducts.SilvaDocumentsexternalsourcesxml.saxs make_parsersxml.sax.handlersContentHandlers!Products.SilvaMetadata.Exceptionss BindingErrorsiconsaddable_prioritysDocumentsDocumentVersionsglobalssmanage_addDocumentFormsNonesmanage_addDocumentsmanage_addDocumentVersionFormsmanage_addDocumentVersionsxml_import_handlersSilvaDocumentPolicysdocument_factorys_should_create_documentsregisterFactory(2s tracebacksCatalogedVersionedContents InternalErrorscontentObjectFactoryRegistrysCatalogedVersionsSilvaDocumentPolicys BindingErrorsaddable_prioritysConflictsDocuments get_xml_idsxml_import_helpersContentHandlersresPageTemplateFilesexternalsourcestranslateCdatasxml_import_handlersmanage_addDocumentsClassSecurityInfosInitializeClasssDocumentVersions PersistentssyssSilvaPermissionssVersioningErrorsContextsmanage_addDocumentVersionForms make_parsersmanage_addDocumentFormsimporter_registrys_siconscreateDOMDocuments_should_create_documents ParsedXMLs get_xml_titlesStringIOsdocument_factorysexport_metadatasIVersionsurlparses_translateCdatasIVersionedContentsIContainerPolicys add_and_editsmanglesEditorTransformers writeStreamsmanage_addDocumentVersion((s@/mnt/gmirror/ports/www/zope-silva/work/SilvaDocument/Document.pys?sj                               ÿ C