--- ECHO_content/ECHO_collection.py 2004/08/28 01:06:03 1.166 +++ ECHO_content/ECHO_collection.py 2004/08/31 17:20:31 1.167 @@ -520,6 +520,7 @@ class ECHO_copyright(Folder): {'label':'Main Config','action':'ECHO_copyright_configForm'}, ) + def ECHO_copyright_configForm(self): """change form""" pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_copyright').__of__(self) @@ -2941,51 +2942,13 @@ def manage_addECHO_userFolderForm(self): """add a user folder form""" return manage_addECHO_userFolder(self) -def getEdges(seqs,urn): - """edges""" - ret=[] - #print urn,seqs - for seqsList in seqs[urn]: - - try: - for seq in seqsList: - ret+=seq.getElementsByTagName("RDF:li") - except: - ret+=seqsList.getElementsByTagName("RDF:li") - return ret -def createSubs(self,seqs,descrs,urn): - """create subs""" - for edge in getEdges(seqs,urn): - cn=createNode(self,descrs[edge.getAttribute('RDF:resource')]) - if cn[0]=="CDLI_group": - #print "HHHHHH",cn[1],seqs,descrs,cn[2] - createSubs(cn[1],seqs,descrs,cn[2]) -def getEdges2(seqs,urn): - """edges""" - ret=[] - #print urn,seqs - - return seqs[urn] - -def createSubs2(self,seqs,descrs,urn,level=0): - """create subs""" - - for edge in getEdges2(seqs,urn): - print "urnXX",urn.encode('utf-8'),level - cn=createNode2(self,descrs,edge) - if cn[0]=="CDLI_group": - - createSubs2(cn[1],seqs,descrs,cn[2],level+1) - print "urnddonesubs",urn.encode('utf-8') - print "urndonenode",urn.encode('utf-8') - return -def createNode2(self,descrs,node): +def createNode(self,descrs,node): name=descrs[node]['name'] type=descrs[node]['type'] urn=node - print " will create",node.encode('utf-8') + #print " will create",node.encode('utf-8') id=re.sub('[^a-zA-Z0-9]','',name).encode('ascii','ignore') #print "id",id #print type @@ -3012,28 +2975,6 @@ def createNode2(self,descrs,node): return "XX" -def createNode(self,nodes): - for node in nodes: - name=getTextFromNode(node.getElementsByTagName("ECHONAVIGATION:name")[0]) - type=getTextFromNode(node.getElementsByTagName("ECHONAVIGATION:type")[0]) - urn=node.getAttribute("RDF:about") - - id=re.sub('[^a-zA-Z0-9]','',name).encode('ascii','ignore') - #print "id",id - #print type - self.REQUEST.RESPONSE.write("

%s

\n"%id) - if type=="CDLI_group": - print self.getId() - - manage_addECHO_collection(self,id,name,name,"","","","","") - print "done::::",getattr(self,id) - return type,getattr(self,id),urn - - if type=="CDLI_item": - manage_addECHO_resource(self,id,name,name,"","",urn,"","") - return "XX" - - class ECHO_root(Folder,Persistent,Implicit): """ECHO Root Folder""" @@ -3042,16 +2983,29 @@ class ECHO_root(Folder,Persistent,Implic meta_type="ECHO_root" + ###CDLI adds -> have to be removed def getTablet(self,item): - print "getTablet" - read=urllib.urlopen("http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"%item).read() - print "gotTablet" - read=re.sub("\[search\]","search",read) - print "reggotTablet" - return read[read.find("")+6:read.rfind("")] + #print "getTablet" + try: + read=urllib.urlopen("http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"%item).read() + read=re.sub("\[search\]","search",read) + return read[read.find("")+6:read.rfind("")] + except: + return "

Sorry no connection to the data server enlil.museum.upenn.edu

" + #return "http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl" + ###END CDLI add + + + def generateFromRDFForm(self): + """change form""" + pt=PageTemplateFile('Products/ECHO_content/zpt/generateFromRDFForm').__of__(self) + pt.content_type="text/html" + return pt() + + def generateFromRDF(self,file,startNode="/Cuneiform Corpus"): + + """generate from RDF""" - def generateFromRDF2(self): - """generate from RDF2""" global seqs seqs={} global descrs @@ -3060,6 +3014,20 @@ class ECHO_root(Folder,Persistent,Implic key="" global value value="" + + def getEdges(seqs,urn): + """edges""" + ret=[] + return seqs[urn] + + def createSubs(self,seqs,descrs,urn,level=0): + """create subs""" + for edge in getEdges(seqs,urn): + cn=createNode(self,descrs,edge) + if cn[0]=="CDLI_group": + createSubs(cn[1],seqs,descrs,cn[2],level+1) + return + def start_element(name,attrs): global seqs @@ -3116,40 +3084,20 @@ class ECHO_root(Folder,Persistent,Implic p.StartElementHandler = start_element p.EndElementHandler = end_element p.CharacterDataHandler = char_data - fileName="/Users/dwinter/Documents/Projekte/CDLI/test11.rdf" - p.ParseFile(file(fileName)) + + p.ParseFile(file) self.REQUEST.RESPONSE.write("

Start

") - createSubs2(self,seqs,descrs,"/Cuneiform Corpus") + createSubs(self,seqs,descrs,startNode) self.REQUEST.RESPONSE.write("

done

") - print "done" + #print "done" return "done" - def generateFromRDF(self): - """generate Structure from rdf""" - dom=xml.dom.minidom.parse("/Users/dwinter/Documents/Projekte/CDLI/test10.rdf") - seqs={} - descrs={} - for seq in dom.getElementsByTagName("RDF:Seq"): - key=seq.getAttribute('RDF:about') - try: - seqs[key].append(seq) - except: - seqs[key]=[seq] - - - for descr in dom.getElementsByTagName("RDF:Description"): - key=descr.getAttribute('RDF:about') - try: - descrs[key].append(descr) - except: - descrs[key]=[descr] - createSubs(self,seqs,descrs,"echo:collectionroot") - - + + def changeWeightsInCollection(self): """change all lables of a collection""" ret="" @@ -3176,7 +3124,9 @@ class ECHO_root(Folder,Persistent,Implic {'label':'Main Config','action':'ECHO_copyright_configForm'}, {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, {'label':'Change Weights','action':'changeWeights'}, - ) + {'label':'Generate from RDF','action':'generateFromRDFForm'}, + +) def showRDF(self): @@ -3441,23 +3391,26 @@ class ECHO_root(Folder,Persistent,Implic return "changed all contenttypes in: "+self.title - - def setCache(self,obj=None,RESPONSE=None): + def deleteCache(self,obj=None,RESPONSE=None): """setze alle collections auf cache = CacheManager""" - + if not obj: obj = self - entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_collection'],search_sub=1) + entries=obj.ZopeFind(obj,search_sub=1) for entry in entries: - print entry[0] - entry[1].ZCacheable_setManagerId('CacheManager') + if hasattr(entry[1],'_v_hash'): + entry[1]._v_hash=None + + return "changed all CM in: "+self.title + + def ECHO_newViewerLink(self,obj=None): """change links (:86 faellt weg)""" @@ -3539,7 +3492,7 @@ class ECHO_root(Folder,Persistent,Implic def xml2html(self,str,quote="yes"): """link2html fuer VLP muss hier noch raus""" - print str + #print str if str: if quote=="yes2": str=re.sub("\&","&",str)