--- 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"""