--- ECHO_content/ECHO_collection.py 2006/10/18 14:50:24 1.276 +++ ECHO_content/ECHO_collection.py 2006/10/18 15:16:23 1.277 @@ -68,16 +68,27 @@ import urllib import xml.dom.minidom import ECHO_helpers from ECHO_helpers import * + try: from ECHO_language import * except: print "no echo_language" + class ECHO_language: + """ leere Klasse""" + pass + from ECHO_movie import * import vlp_xmlhelpers #TODO: vlp elemente aus echo herausnehmen import xmlrpclib + +def normalizeCt(str): + """normalizes content_type""" + #str= str.replace(" ","_") + return str.replace("-"," ").lower() + def setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordstrs=""): """Allegemeine Informationen zu einer ECHO Collection""" @@ -1095,7 +1106,7 @@ class ECHO_resource(CatalogAware,Folder, def getContentType(self): try: - return self.contentType + return normalizeCt(self.contentType) except: return "" @@ -1210,7 +1221,7 @@ class ECHO_resource(CatalogAware,Folder, def changeECHO_resource_metadata_local(self,RESPONSE=None): """change metadata""" - tags=self.findTagsFromMapping(self.contentType) + tags=self.findTagsFromMapping(normalizeCt(self.contentType)) for field in tags[1]: self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)][0:] @@ -1221,7 +1232,7 @@ class ECHO_resource(CatalogAware,Folder, def changeECHO_resource_metadata(self,RESPONSE=None): """change metadata""" - tags=self.findTagsFromMapping(self.contentType) + tags=self.findTagsFromMapping(normalizeCt(self.contentType)) self.OSAS_meta={} for field in tags[1]: try: @@ -1267,6 +1278,7 @@ class ECHO_resource(CatalogAware,Folder, if generic: if self.contentType: ct=self.contentType.replace(" ","_").lower() + ct=self.contentType.replace("-","_").lower() else: zLOG.LOG("ECHO_collection (getMDValue)", zLOG.INFO, "no_content type for %s"%self.getId()) ct="" @@ -1274,13 +1286,16 @@ class ECHO_resource(CatalogAware,Folder, #caching if not hasattr(self,'_v_mapHash'): #noch keine cachevariable self._v_mapHash={} - + + + tmp=self._v_mapHash.get(ct,None) if tmp: #teste ob type schon existiert fieldName=tmp.get(fieldNameTest,None) else: self._v_mapHash[ct]={} + #noch nicht gecached if not fieldName and hasattr(self.standardMD,ct): fieldName=getattr(self.standardMD,ct).generateMappingHash()[fieldNameTest][0] @@ -1291,7 +1306,7 @@ class ECHO_resource(CatalogAware,Folder, #FIXME: warum gibt es manchmal kein metadatahas try: - ret =self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) + ret =self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%normalizeCt(self.contentType)) except: zLOG.LOG("ECHO (line 1069)",zLOG.ERROR,"no md hash for %s"%self.getId()) return "" @@ -1457,11 +1472,12 @@ class ECHO_resource(CatalogAware,Folder, fields=[] fieldlist=self.standardMD.fieldList - tags=self.findTagsFromMapping(self.contentType) + tags=self.findTagsFromMapping(normalizeCt(self.contentType)) self.referencetypes=tags[2] for referenceTypeF in self.referencetypes: - - if referenceTypeF[1].title.lower() == referenceType.lower(): + + + if normalizeCt(referenceTypeF[1].title) == normalizeCt(referenceType.lower()): try: bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields @@ -1499,7 +1515,7 @@ class ECHO_resource(CatalogAware,Folder, for referenceTypeF in temp: #print referenceType - if referenceTypeF[1].title.lower() == referenceType.lower(): + if normalizeCt(referenceTypeF[1].title) == normalizeCt(referenceType.lower()): try: bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields referenceType=referenceTypeF[1].title @@ -1526,10 +1542,10 @@ class ECHO_resource(CatalogAware,Folder, return "ERROR:",error,self.absolute_url() - self.contentType=metadict['bib_type'][0:] - fields=self.findTagsFromMapping(self.contentType) + self.contentType=normalizeCt(metadict['bib_type'])[0:] + fields=self.findTagsFromMapping(normalizeCt(self.contentType)) - #fields=self.findLabelsFromMapping(self.contentType) + #fields=self.findLabelsFromMapping(normalizeCt(self.contentType)) for field in fields[1]: if self.isDefinedInThisSet(fields,field): @@ -1541,7 +1557,7 @@ class ECHO_resource(CatalogAware,Folder, if RESPONSE: return RESPONSE.redirect('manage_main') - return "OK:",self.absolute_url(),self.contentType + return "OK:",self.absolute_url(),normalizeCt(self.contentType) def ECHO_getResourceMD(self,template="yes",back=None,overwrite="no"): """Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource""" @@ -1554,11 +1570,11 @@ class ECHO_resource(CatalogAware,Folder, return "ERROR:",error if (not self.contentType) or (overwrite=="yes"): - self.contentType=metadict['bib_type'].lower() + self.contentType=normalizeCt(normalizeCt(metadict['bib_type']).lower()) - if not (metadict['bib_type'].lower()==self.contentType.lower()): - self.REQUEST.SESSION['contentStorage']=metadict['bib_type'] - self.REQUEST.SESSION['contentZope']=self.contentType + if not (normalizeCt(metadict['bib_type']).lower()==normalizeCt(self.contentType).lower()): + self.REQUEST.SESSION['contentStorage']=normalizeCt(metadict['bib_type']) + self.REQUEST.SESSION['contentZope']=normalizeCt(self.contentType) return zptFile(self, 'zpt/ECHO_getResourceMDErrorContentType.zpt')() @@ -1639,7 +1655,7 @@ class ECHO_resource(CatalogAware,Folder, def generate_label(self): """Erzeugt_standard_Label aus Template""" - pt=getattr(self,"label_template_"+self.contentType.lower()) + pt=getattr(self,"label_template_"+normalizeCt(self.contentType).lower()) self.label=pt()[0:] return pt() @@ -1648,7 +1664,7 @@ class ECHO_resource(CatalogAware,Folder, def generate_title(self,RESPONSE=None): """Erzeugt_standard_Label aus Template""" - pt=getattr(self,"label_template_"+self.contentType.lower()) + pt=getattr(self,"label_template_"+normalizeCt(self.contentType).lower()) self.title=pt()[0:] @@ -2414,12 +2430,13 @@ class ECHO_collection(CatalogAware, Fold for resource in dom.getElementsByTagName('resource'): link=getText(resource.getElementsByTagName('link')[0].childNodes) label=getText(resource.getElementsByTagName('label')[0].childNodes) + pageimglink=getText(resource.getElementsByTagName('pageimglink')[0].childNodes) #splitted=link.split("?")[0].split("/") #id=splitted[len(splitted)-1].encode('ascii') id=re.sub(" ","_",label).encode('ascii') ret+="

"+label+"

" - manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","") + manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","",pageimglink.encode('ascii'),link.encode('ascii'),"","") return ret security.declarePublic('getImageTag') @@ -3984,7 +4001,7 @@ class ECHO_linkList(ZopePageTemplate,ECH def getcontentType(self): """get contentType""" if hasattr(self,'contentType'): - return self.contentType + return normalizeCt(self.contentType) else: return 0