--- OSAS/OSA_system/OSAS_metadata.py 2004/04/14 22:35:48 1.7 +++ 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,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""" @@ -53,19 +72,30 @@ class OSAS_MetadataMapping(SimpleItem): return getattr(self,"md_"+fieldName) except: 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): @@ -88,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): @@ -124,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={} @@ -191,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') @@ -227,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):