--- ECHO_content/ECHO_collection.py 2004/08/27 22:57:57 1.165
+++ ECHO_content/ECHO_collection.py 2004/09/01 14:32:32 1.168
@@ -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)
@@ -2541,7 +2542,7 @@ class ECHO_collection(Folder, Persistent
else:
return "#dddddd"
- def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",viewClassification=None,location=None):
+ def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",viewClassification=None,location=None,isAlwaysClickable=None):
"""Aenderung der Properties"""
self.secondaryLink=secondaryLink
@@ -2550,6 +2551,7 @@ class ECHO_collection(Folder, Persistent
self.bgcolour=bgcolour
self.viewClassification=viewClassification
self.location=location
+ self.isAlwaysClickable=isAlwaysClickable
if coords:
coordsnew=[ string.split(x,",") for x in coords]
@@ -2941,51 +2943,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 +2976,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,15 +2984,29 @@ class ECHO_root(Folder,Persistent,Implic
meta_type="ECHO_root"
+ ###CDLI adds -> have to be removed
def getTablet(self,item):
- 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("")]
+ #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
@@ -3059,6 +3015,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
@@ -3115,40 +3085,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=""
@@ -3175,7 +3125,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,6 +3393,26 @@ class ECHO_root(Folder,Persistent,Implic
return "changed all contenttypes in: "+self.title
+ def deleteCache(self,obj=None,RESPONSE=None):
+ """setze alle collections auf cache = CacheManager"""
+
+
+ if not obj:
+ obj = self
+
+ entries=obj.ZopeFind(obj,search_sub=1)
+
+ for entry in entries:
+ 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)"""
@@ -3506,9 +3478,15 @@ class ECHO_root(Folder,Persistent,Implic
for link in links:
link.tagName="a"
- ref=link.getAttribute("ref")
+ ref=link.getAttribute("ref")
+ pn=link.getAttribute("page")
+
if self.checkRef(ref):
- link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)
+ if pn:
+ link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref+"&p="+pn)
+ else:
+ link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)
+
newxml=dom.toxml('utf-8')
@@ -3521,19 +3499,24 @@ 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)
dom=xml.dom.minidom.parseString(str)
links=dom.getElementsByTagName("link")
-
for link in links:
link.tagName="a"
ref=link.getAttribute("ref")
+ pn=link.getAttribute("page")
+
if self.checkRef(ref):
- link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)
+ if pn:
+ link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref+"&p="+pn)
+ else:
+ link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)
str= dom.toxml()
@@ -3544,7 +3527,7 @@ class ECHO_root(Folder,Persistent,Implic
return ""
def checkRef(self,ref):
- dbs={'vl_literature':'AND CD LIKE \'%lise%\'','vl_technology':'','vl_people':''}
+ dbs={'vl_literature':'AND CD LIKE \'%lise%\'','vl_technology':'','vl_people':'','vl_sites':''}
res=None
for db in dbs.keys():