--- OSAS/OSA_system/OSAS_metadata.py 2004/04/08 16:50:01 1.6
+++ OSAS/OSA_system/OSAS_metadata.py 2005/11/29 13:54:50 1.11
@@ -5,8 +5,8 @@
import addFolder
import OSAS_add # methods for adding metadata and/or files
-from Globals import InitializeClass
-from Globals import Persistent
+from Globals import InitializeClass,Persistent,package_home
+
from OFS.Folder import Folder
from OFS.SimpleItem import SimpleItem
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
@@ -19,6 +19,7 @@ from OFS.PropertyManager import Property
from ExtensionClass import Base
from Acquisition import Implicit
import string
+import os
from AccessControl import ClassSecurityInfo
@@ -46,27 +47,55 @@ class OSAS_MetadataMapping(SimpleItem):
{'label':'Main Config','action':'change_OSAS_MappingForm'},
)
+
+ def showSetXML(self,RESPONSE=None):
+ """prints out the mapping as XML"""
+ ret=""""""%self.title
+ for fieldName in self.readFieldsFromParent():
+ entry=getattr(self,"md_"+fieldName)
+ if entry[2]=="": # no explanation of this field
+ ret+=""""""%(fieldName,entry[0],entry[1])
+ else:
+ ret+="""%s"""%(fieldName,entry[0],entry[1],entry[2])
+ ret+=""
+
+ if not RESPONSE:
+ return ret
+ else:
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+ return ret
+
def getValue(self,fieldName):
"""get md value"""
- print self.__dict__
- print self,fieldName,getattr(self,"md_"+fieldName)
+
try:
return getattr(self,"md_"+fieldName)
except:
- return ""
+ return (None,None,None)
+
+ def isEmptyValue(self,fieldName):
+ """empty"""
+ try:
+ field=getattr(self,"md_"+fieldName)
+ if field[1]=='':
+ return 0
+ else:
+ return 1
+ except:
+ return 0
def generateMappingHash(self):
"""erzeugen des Hash"""
hash={}
for field in self.fieldList:
- hash[field]=getattr(self,"md_"+field)
+ hash[field]=getattr(self,"md_"+field,'')
return hash
def change_OSAS_MappingForm(self):
"""change"""
- pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_MetadataMapping.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_MetadataMapping.zpt')).__of__(self)
return pt()
def change_OSAS_Mapping(self,titleOfObject,RESPONSE=None):
@@ -89,7 +118,7 @@ class OSAS_MetadataMapping(SimpleItem):
def manage_addOSAS_MetadataMappingForm(self):
"""interface for adding the OSAS_root"""
- pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_MetadataMapping.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_MetadataMapping.zpt')).__of__(self)
return pt()
def manage_addOSAS_MetadataMapping(self,idOfObject,titleOfObject,RESPONSE=None):
@@ -125,7 +154,34 @@ class OSAS_add_Metadata(Folder):
{'label':'Main Config','action':'add_Metadata_config'},
)
-
+ def showGenericXML(self,RESPONSE=None):
+ """show generic fields as XML"""
+ ret=""""""%"generic"
+ for field in self.fieldList:
+ ret+=""""""%field
+
+ ret+=""
+
+ if not RESPONSE:
+ return ret
+ else:
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+ return ret
+ def showOverviewXML(self,RESPONSE):
+ """gives an overview over the Metadata stored in this folder"""
+ ret=""""""%self.getId()
+ ret+=self.showGenericXML()
+ for entry in self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping']):
+ ret+=entry[1].showSetXML()
+
+ ret+=""
+
+ if not RESPONSE:
+ return ret
+ else:
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+ return ret
+
def generateMappingList(self):
"""Erzeuge Mapping"""
mapping={}
@@ -192,7 +248,7 @@ class OSAS_add_Metadata(Folder):
security.declarePublic('add_Metadata_config')
def add_Metadata_config(self):
"""Main configuration"""
- pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_addMetadata.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addMetadata.zpt')).__of__(self)
return pt()
security.declarePublic('change_OSAS_addMetadata')
@@ -228,7 +284,7 @@ class OSAS_add_Metadata(Folder):
def manage_AddOSAS_add_MetadataForm(self):
"""interface for adding the OSAS_add_Metadata"""
- pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_metadata.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_metadata.zpt')).__of__(self)
return pt()
def manage_AddOSAS_add_Metadata(self,id,linklabel,description,fields,RESPONSE=None):