diff MetaDataFolder.py @ 9:eeaad777d3d7

more work for non-bib metadata
author casties
date Thu, 28 Jul 2011 18:08:58 +0200
parents 4cd862bf37a3
children 68bc459c9f59
line wrap: on
line diff
--- a/MetaDataFolder.py	Thu Jul 28 14:54:54 2011 +0200
+++ b/MetaDataFolder.py	Thu Jul 28 18:08:58 2011 +0200
@@ -3,6 +3,7 @@
 from Globals import package_home
 from AccessControl import ClassSecurityInfo
 import os.path
+import urlparse
 import logging
 
 from MetaDataMapping import MetaDataMapping
@@ -100,14 +101,25 @@
         md = getHttpData(url)
         return md
 
+    def getXmlPathData(self, xmlpath, path=None, dom=None):
+        """returns contents of element at xmlpath as dict"""
+        logging.error("getXmlPathData(%s)"%xmlpath)
+        # make xmlpath relative for Zope
+        if xmlpath[0] == '/':
+            xmlpath = xmlpath[1:]
+            
+        mdObj = self.restrictedTraverse(xmlpath, None)
+        if mdObj is not None:
+            return mdObj.getData(path=path, dom=dom)
+        else:
+            logging.error("getXmlPathData: MetaData element at '%s' not found!"%xmlpath)
+            return None
+
     def getTexttoolData(self, path=None, dom=None):
         """returns contents of texttool tag as dict"""
-        return self.resource.meta.texttool.getData(path=path, dom=dom)
-
+        return self.getXmlPathData('resource/meta/texttool', path=path, dom=dom)
 
-
-
-    def getBibdata(self, path=None, dom=None):
+    def getBibData(self, path=None, dom=None):
         """returns contents of bib tag as dict"""
         return self.resource.meta.bib.getData(path=path, dom=dom)
 
@@ -238,7 +250,10 @@
             RESPONSE.redirect('manage_main')
 
 
-manage_addMetaDataFolderForm = PageTemplateFile('zpt/addMetadataFolderForm',globals())
+def manage_addMetaDataFolderForm(self):
+    """add MetaDataFolder form"""
+    pt = PageTemplateFile('zpt/addMetadataFolderForm',globals()).__of__(self)
+    return pt()
 
 def manage_addMetaDataFolder(self,id,title,RESPONSE=None):
     """a MetaDataFolder objekt"""