|
|
| version 1.5, 2004/04/05 21:54:42 | version 1.11, 2005/11/29 13:54:50 |
|---|---|
| Line 5 | Line 5 |
| import addFolder | import addFolder |
| import OSAS_add # methods for adding metadata and/or files | import OSAS_add # methods for adding metadata and/or files |
| from Globals import InitializeClass | from Globals import InitializeClass,Persistent,package_home |
| from Globals import Persistent | |
| from OFS.Folder import Folder | from OFS.Folder import Folder |
| from OFS.SimpleItem import SimpleItem | from OFS.SimpleItem import SimpleItem |
| from Products.PageTemplates.PageTemplateFile import PageTemplateFile | from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
| Line 19 from OFS.PropertyManager import Property | Line 19 from OFS.PropertyManager import Property |
| from ExtensionClass import Base | from ExtensionClass import Base |
| from Acquisition import Implicit | from Acquisition import Implicit |
| import string | import string |
| import os | |
| from AccessControl import ClassSecurityInfo | from AccessControl import ClassSecurityInfo |
| Line 29 class OSAS_MetadataMapping(SimpleItem): | Line 30 class OSAS_MetadataMapping(SimpleItem): |
| def readFieldsFromParent(self): | def readFieldsFromParent(self): |
| """read all elements from root""" | """read all elements from root""" |
| #print self.getId() | |
| return self.aq_parent.fieldList | return self.aq_parent.fieldList |
| def __init__(self,id,title,arglist): | def __init__(self,id,title,arglist,fieldList): |
| """init""" | """init""" |
| self.id=id | self.id=id |
| self.title=title | self.title=title |
| self.fields=[] | self.fields=[] |
| for fieldName in self.readFieldsFromParent(): | for fieldName in fieldList: |
| setattr(self,"md_"+fieldName,arglist[fieldName]) | setattr(self,"md_"+fieldName,arglist[fieldName]) |
| self.fields.append(arglist[fieldName]) | self.fields.append(arglist[fieldName]) |
| Line 45 class OSAS_MetadataMapping(SimpleItem): | Line 47 class OSAS_MetadataMapping(SimpleItem): |
| {'label':'Main Config','action':'change_OSAS_MappingForm'}, | {'label':'Main Config','action':'change_OSAS_MappingForm'}, |
| ) | ) |
| def showSetXML(self,RESPONSE=None): | |
| """prints out the mapping as XML""" | |
| ret="""<set name="%s">"""%self.title | |
| for fieldName in self.readFieldsFromParent(): | |
| entry=getattr(self,"md_"+fieldName) | |
| if entry[2]=="": # no explanation of this field | |
| ret+="""<entry genericName="%s" tag="%s" label="%s"/>"""%(fieldName,entry[0],entry[1]) | |
| else: | |
| ret+="""<entry genericName="%s" tag="%s" label="%s">%s</entry>"""%(fieldName,entry[0],entry[1],entry[2]) | |
| ret+="</set>" | |
| if not RESPONSE: | |
| return ret | |
| else: | |
| self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') | |
| return ret | |
| def getValue(self,fieldName): | def getValue(self,fieldName): |
| """get md value""" | """get md value""" |
| try: | try: |
| return getattr(self,"md_"+fieldName) | return getattr(self,"md_"+fieldName) |
| except: | 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): | def generateMappingHash(self): |
| """erzeugen des Hash""" | """erzeugen des Hash""" |
| hash={} | hash={} |
| for field in self.fieldList: | for field in self.fieldList: |
| hash[field]=getattr(self,"md_"+field) | hash[field]=getattr(self,"md_"+field,'') |
| return hash | return hash |
| def change_OSAS_MappingForm(self): | def change_OSAS_MappingForm(self): |
| """change""" | """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() | return pt() |
| def change_OSAS_Mapping(self,titleOfObject,RESPONSE=None): | def change_OSAS_Mapping(self,titleOfObject,RESPONSE=None): |
| Line 76 class OSAS_MetadataMapping(SimpleItem): | Line 108 class OSAS_MetadataMapping(SimpleItem): |
| for fieldName in self.readFieldsFromParent(): | 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]) | self.fields.append(arglist[fieldName]) |
| if RESPONSE is not None: | if RESPONSE is not None: |
| Line 86 class OSAS_MetadataMapping(SimpleItem): | Line 118 class OSAS_MetadataMapping(SimpleItem): |
| def manage_addOSAS_MetadataMappingForm(self): | def manage_addOSAS_MetadataMappingForm(self): |
| """interface for adding the OSAS_root""" | """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() | return pt() |
| def manage_addOSAS_MetadataMapping(self,idOfObject,titleOfObject,RESPONSE=None): | def manage_addOSAS_MetadataMapping(self,idOfObject,titleOfObject,RESPONSE=None): |
| """add the OSAS_root""" | """add the OSAS_root""" |
| argList={} | argList={} |
| for arg in self.REQUEST.form.keys(): | for arg in self.fieldList: |
| if not (arg in ['idOfObject','titleOfObject']): | if not (arg in ['idOfObject','titleOfObject']): |
| argList[arg]=self.REQUEST.form[arg] | argList[arg]=(self.REQUEST.form[arg],self.REQUEST.form['label_'+arg],self.REQUEST.form['explanation_'+arg]) |
| newObj=OSAS_MetadataMapping(idOfObject,titleOfObject,argList) | newObj=OSAS_MetadataMapping(idOfObject,titleOfObject,argList,self.fieldList) |
| self._setObject(idOfObject,newObj) | self._setObject(idOfObject,newObj) |
| if RESPONSE is not None: | if RESPONSE is not None: |
| RESPONSE.redirect('manage_main') | RESPONSE.redirect('manage_main') |
| Line 122 class OSAS_add_Metadata(Folder): | Line 154 class OSAS_add_Metadata(Folder): |
| {'label':'Main Config','action':'add_Metadata_config'}, | {'label':'Main Config','action':'add_Metadata_config'}, |
| ) | ) |
| def showGenericXML(self,RESPONSE=None): | |
| """show generic fields as XML""" | |
| ret="""<set name="%s">"""%"generic" | |
| for field in self.fieldList: | |
| ret+="""<entry genericName="%s"/>"""%field | |
| ret+="</set>" | |
| 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="""<metadata name="%s">"""%self.getId() | |
| ret+=self.showGenericXML() | |
| for entry in self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping']): | |
| ret+=entry[1].showSetXML() | |
| ret+="</metadata>" | |
| if not RESPONSE: | |
| return ret | |
| else: | |
| self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') | |
| return ret | |
| def generateMappingList(self): | def generateMappingList(self): |
| """Erzeuge Mapping""" | """Erzeuge Mapping""" |
| Line 189 class OSAS_add_Metadata(Folder): | Line 248 class OSAS_add_Metadata(Folder): |
| security.declarePublic('add_Metadata_config') | security.declarePublic('add_Metadata_config') |
| def add_Metadata_config(self): | def add_Metadata_config(self): |
| """Main configuration""" | """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() | return pt() |
| security.declarePublic('change_OSAS_addMetadata') | security.declarePublic('change_OSAS_addMetadata') |
| Line 220 class OSAS_add_Metadata(Folder): | Line 279 class OSAS_add_Metadata(Folder): |
| """write new index.meta file""" | """write new index.meta file""" |
| return OSAS_add.add6(self) | return OSAS_add.add6(self) |
| def manage_AddOSAS_add_MetadataForm(self): | def manage_AddOSAS_add_MetadataForm(self): |
| """interface for adding the OSAS_add_Metadata""" | """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() | return pt() |
| def manage_AddOSAS_add_Metadata(self,id,linklabel,description,fields,RESPONSE=None): | def manage_AddOSAS_add_Metadata(self,id,linklabel,description,fields,RESPONSE=None): |