--- OSAS/OSA_system/OSAS_metadata.py 2004/04/05 21:54:42 1.5
+++ OSAS/OSA_system/OSAS_metadata.py 2004/05/26 08:08:57 1.9
@@ -29,15 +29,16 @@ class OSAS_MetadataMapping(SimpleItem):
def readFieldsFromParent(self):
"""read all elements from root"""
+ #print self.getId()
return self.aq_parent.fieldList
- def __init__(self,id,title,arglist):
+ def __init__(self,id,title,arglist,fieldList):
"""init"""
self.id=id
self.title=title
self.fields=[]
- for fieldName in self.readFieldsFromParent():
+ for fieldName in fieldList:
setattr(self,"md_"+fieldName,arglist[fieldName])
self.fields.append(arglist[fieldName])
@@ -45,12 +46,42 @@ 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"""
+
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"""
@@ -76,7 +107,7 @@ class OSAS_MetadataMapping(SimpleItem):
for fieldName in self.readFieldsFromParent():
- setattr(self,"md_"+fieldName,arglist[fieldName])
+ setattr(self,"md_"+fieldName,(arglist[fieldName],arglist['label_'+fieldName],arglist['explanation_'+fieldName]))
self.fields.append(arglist[fieldName])
if RESPONSE is not None:
@@ -93,11 +124,11 @@ def manage_addOSAS_MetadataMapping(self,
"""add the OSAS_root"""
argList={}
- for arg in self.REQUEST.form.keys():
+ for arg in self.fieldList:
if not (arg in ['idOfObject','titleOfObject']):
- argList[arg]=self.REQUEST.form[arg]
-
- newObj=OSAS_MetadataMapping(idOfObject,titleOfObject,argList)
+ argList[arg]=(self.REQUEST.form[arg],self.REQUEST.form['label_'+arg],self.REQUEST.form['explanation_'+arg])
+
+ newObj=OSAS_MetadataMapping(idOfObject,titleOfObject,argList,self.fieldList)
self._setObject(idOfObject,newObj)
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
@@ -122,7 +153,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={}
@@ -219,6 +277,9 @@ class OSAS_add_Metadata(Folder):
def add6(self):
"""write new index.meta file"""
return OSAS_add.add6(self)
+
+
+
def manage_AddOSAS_add_MetadataForm(self):
"""interface for adding the OSAS_add_Metadata"""