--- ECHO_content/ECHO_collection.py 2004/05/26 07:39:36 1.90 +++ ECHO_content/ECHO_collection.py 2004/05/28 15:01:43 1.95 @@ -75,11 +75,11 @@ def checkDiffs(self,metadict): if (NoneToEmpty(self.getFieldValue(self.getFieldTag(tags,field)))==metadict[self.getFieldTag(tags,field)]): diffs[self.getFieldTag(tags,field)]=1 else: - #print "DIFF",field,self.getFieldValue(self.getFieldTag(tags,field)),metadict[self.getFieldTag(tags,field)] + diffs[self.getFieldTag(tags,field)]=0 except: diffs[self.getFieldTag(tags,field)]=0 - #print "EX",field + return diffs def content_html(self,type): @@ -231,7 +231,7 @@ def readMetadata(url): if len(metanode)==0: metanode=dom.getElementsByTagName('archimedes') metadict['bib_type']='Archimedes' - #print "HELLO" + if not len(metanode)==0: metacontent=metanode[0].childNodes @@ -243,7 +243,8 @@ def readMetadata(url): for node in metacontent: try: - metadict[re.sub('-','_',node.tagName.lower())]=urllib.unquote(getText(node.childNodes)) + #print urllib.unquote(getText(node.childNodes)),getText(node.childNodes) + metadict[re.sub('-','_',node.tagName.lower())]=urllib.unquote(getText(node.childNodes)) except: """nothing""" @@ -268,15 +269,15 @@ def setECHO_collectionInformation(self,t coords=[] #coordinates of for rectangles - #print "cs", coordstrs + if coordstrs: for coordstr in coordstrs: - #print "cs", coordstr + try: temco=coordstr.split(",") except: temco=[] - #temco.append(angle) + coords.append(temco) @@ -441,6 +442,18 @@ class ECHO_resource(Folder,Persistent): self.REQUEST.RESPONSE.write("no fulltext available") else: return "no fulltext available" + + def getCopyright(self): + """gib link auf copyright notiz aus""" + if hasattr(self,'copyrightType'): + obj=getattr(self.copyrightTypes,'copyrightType') + else: + obj=getattr(self.copyrightTypes,'generic') + + label=obj.label + link="copyrightTypes/"+obj.getId()+'/copyright.html' + + return """%s"""%(link,label) def getCredits(self): """Ausgabe der credits""" @@ -449,7 +462,7 @@ class ECHO_resource(Folder,Persistent): else: return [] - def __init__(self,id,link,metalink,resourceID,title,label,description,contentType,renderingType,responsible,credits,weight,coords): + def __init__(self,id,link,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords): self.id = id """Festlegen der ID""" @@ -462,6 +475,7 @@ class ECHO_resource(Folder,Persistent): self.credits=toList(credits) self.description=description self.contentType=contentType + self.copyrightType=copyrightType self.renderingType=renderingType self.responsible=responsible self.resourceID=resourceID @@ -543,8 +557,7 @@ class ECHO_resource(Folder,Persistent): for data in self.metadata: data_neu=re.sub('-','_',data) self.metaDataHash[data_neu]=getattr(self,data) - #print data_neu, getattr(self,data) - #print self.metaDataHash,self.metadata + pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_metadata.zpt').__of__(self) return pt() @@ -659,7 +672,7 @@ class ECHO_resource(Folder,Persistent): manage_options = Folder.manage_options+( {'label':'Main Config','action':'ECHO_resource_config_main'}, - {'label':'Change Credits & Copyright','action':'ECHO_resource_config_credits'}, + {'label':'Change Partners & Copyright','action':'ECHO_resource_config_credits'}, {'label':'Change Metadata','action':'ECHO_resource_config_metadata'}, {'label':'Change Coords','action':'ECHO_resource_config_coords'}, {'label':'Add coords','action':'ECHO_graphicEntry'}, @@ -729,7 +742,7 @@ class ECHO_resource(Folder,Persistent): def getFieldValue(self,field): """get value""" - #print field + try: ret=self.metaDataHash[field] @@ -746,7 +759,7 @@ class ECHO_resource(Folder,Persistent): def setFieldValue(self,field,value): """get value""" - #print field + if not hasattr(self,'metaDataHash'): setattr(self,'metaDataHash',{}) self.metaDataHash[field]=value[0:] @@ -769,9 +782,9 @@ class ECHO_resource(Folder,Persistent): fieldlist=self.standardMD.fieldList for referenceTypeF in self.referencetypes: - #print referenceTypeF[1].title,referenceType + if referenceTypeF[1].title.lower() == referenceType.lower(): - #print "OK" + try: bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields referenceType=referenceTypeF[1].title @@ -783,7 +796,7 @@ class ECHO_resource(Folder,Persistent): fields=bibdata[referenceType] for field in fieldlist: retdata[field]=referenceTypeF[1].getValue(field)[1] - #print retdata,fieldlist + return retdata,fieldlist,temp,fields def findTagsFromMapping(self,referenceType): @@ -826,16 +839,19 @@ class ECHO_resource(Folder,Persistent): def copyIndex_meta2echo_resource(self,RESPONSE=None): """copy MD von Index_meta to the echo_resource""" - + (metadict, error)=readMetadata(self.metalink) self.metaDataHash={} if not error=="": #Fehler beim Auslesen des Metafiles return "ERROR:",error fields=self.findTagsFromMapping(self.contentType) + #fields=self.findLabelsFromMapping(self.contentType) for field in fields[1]: + if self.isDefinedInThisSet(fields,field): + #print urllib.unquote(metadict.get(self.getFieldTag(fields,field),'')) self.setFieldValue(self.getFieldTag(fields,field),metadict.get(self.getFieldTag(fields,field),'')) @@ -934,10 +950,10 @@ def manage_addECHO_resourceForm(self): -def manage_addECHO_resource(self,id,title,label,description,responsible,link,metalink,weight,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None): +def manage_addECHO_resource(self,id,title,label,description,responsible,link,metalink,weight,copyrightType=None,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None): """addaresource""" - newObj=ECHO_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,responsible,credits,weight,coords) + newObj=ECHO_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords) self._setObject(id,newObj) @@ -986,7 +1002,7 @@ class ECHO_externalLink(Folder): if not hasattr(self,'coords'): self.coords=[''] - #print "G",self.coords + pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_externalLink.zpt').__of__(self) return pt() @@ -1301,7 +1317,7 @@ class ECHO_collection(Folder, Persistent for entry in entries: if entry[1].meta_type == 'ECHO_resource': entry[1].ECHO_getResourceMD(template="no") - #print "rerender",entry[1].getId() + else: self.ECHO_rerenderLinksMD(entry[1]) @@ -1323,7 +1339,7 @@ class ECHO_collection(Folder, Persistent return [] def __init__(self,id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,secondaryLinkTitle,secondaryLink,imageTag="",bgcolour=""): - #print "CO",coords + self.id = id """Festlegen der ID""" @@ -1778,14 +1794,17 @@ class ECHO_root(Folder,Persistent,Implic if not content or content=="": return "" ret="<%s>"%tag - ret+=urllib.quote(content) + #ret+=urllib.quote(content) + ret+=content + ret+=""%tag return ret def getValueFromClass(self,field,found): """retattribute falss existing""" try: - return getattr(found,field) + + return getattr(found,field).decode('ascii','ignore') except: return "" @@ -1903,7 +1922,7 @@ class ECHO_root(Folder,Persistent,Implic def checkIfArrow(obj): if hasattr(obj,'coords'): for coordtemp in obj.coords: - #print obj.title,len(coordtemp) + if (len(coordtemp)>4) and not (coordtemp[4]==''): return 4 return None @@ -1975,7 +1994,7 @@ class ECHO_root(Folder,Persistent,Implic for word in words: strUrl=url%word - #print "str",strUrl + retStr+="""%s
"""%(strUrl,word) str=retStr if str: @@ -1986,12 +2005,12 @@ class ECHO_root(Folder,Persistent,Implic def link2html(self,str): """link2html fuer VLP muss hier noch raus""" if str: - #print str + str=re.sub("\&","&",str) dom=xml.dom.minidom.parseString(""+str+"") links=dom.getElementsByTagName("link") - #print "link",links + for link in links: link.tagName="a" ref=link.getAttribute("ref") @@ -2006,7 +2025,6 @@ class ECHO_root(Folder,Persistent,Implic dbs={'vl_literature':'AND CD LIKE \'%lise%\'','vl_technology':'','vl_people':''} res=None for db in dbs.keys(): - #print ref,"select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db]) res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db]))) return res @@ -2015,7 +2033,7 @@ class ECHO_root(Folder,Persistent,Implic def PgQuoteString(self,string): """Quote string""" - #print "PG",string + return libpq.PgQuoteString(string) def getPartners(self): @@ -2149,6 +2167,53 @@ def manage_addECHO_rootForm(self): """Nothing yet""" pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_root.zpt').__of__(self) return pt() + +class ECHO_copyrightType(Folder): + """copyright typ""" + + meta_type="ECHO_copyrightType" + + def __init__(self,id,title,label): + """init""" + self.id=id + self.title=title + self.label=label + + manage_options = Folder.manage_options+( + {'label':'Main Config','action':'ECHO_copyrightType_config_mainForm'}, + ) + + def ECHO_copyrightType_config_mainForm(self): + """change form""" + pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_copyrightType').__of__(self) + pt.content_type="text/html" + return pt() + + def ECHO_copyrightType_config_main(self,title,label,RESPONSE=None): + """change""" + self.title=title + self.label=label + + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + +def manage_addECHO_copyrightTypeForm(self): + """Form for adding a ressource""" + pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_copyrightTypeForm.zpt').__of__(self) + return pt() + + +def manage_addECHO_copyrightType(self,id,title,label,RESPONSE=None): + """addaresource""" + + newObj=ECHO_copyrightType(id,title,label) + + self._setObject(id,newObj) + + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + class ECHO_partner(Image,Persistent): """ECHO Partner"""