--- OSAS/OSA_system/OSAS_metadata.py 2004/04/14 23:04:45 1.8 +++ OSAS/OSA_system/OSAS_metadata.py 2010/02/15 19:09:00 1.12 @@ -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,6 +47,24 @@ 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""" @@ -69,14 +88,14 @@ class OSAS_MetadataMapping(SimpleItem): """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): @@ -99,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): @@ -119,7 +138,7 @@ def manage_addOSAS_MetadataMapping(self, class OSAS_add_Metadata(Folder): - """Foldertype enthält methoden zur Halbautomatischen Erstellung von Metadatenfiles""" + """Foldertype enthaelt methoden zur Halbautomatischen Erstellung von Metadatenfiles""" security=ClassSecurityInfo() def __init__(self,id,linklabel,description,fields): @@ -135,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={} @@ -183,7 +229,7 @@ class OSAS_add_Metadata(Folder): return id def getStoredTypes(self): - """Gebe gespeicherte typen zurück""" + """Gebe gespeicherte typen zurueck""" types=[] for dict in self.__dict__: @@ -202,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') @@ -238,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):