Diff for /ECHO_content/ECHO_collection.py between versions 1.165 and 1.168

version 1.165, 2004/08/27 22:57:57 version 1.168, 2004/09/01 14:32:32
Line 520  class ECHO_copyright(Folder): Line 520  class ECHO_copyright(Folder):
         {'label':'Main Config','action':'ECHO_copyright_configForm'},          {'label':'Main Config','action':'ECHO_copyright_configForm'},
         )          )
   
   
     def ECHO_copyright_configForm(self):      def ECHO_copyright_configForm(self):
         """change form"""          """change form"""
         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_copyright').__of__(self)          pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_copyright').__of__(self)
Line 2541  class ECHO_collection(Folder, Persistent Line 2542  class ECHO_collection(Folder, Persistent
         else:          else:
             return "#dddddd"              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"""          """Aenderung der Properties"""
   
         self.secondaryLink=secondaryLink          self.secondaryLink=secondaryLink
Line 2550  class ECHO_collection(Folder, Persistent Line 2551  class ECHO_collection(Folder, Persistent
     self.bgcolour=bgcolour      self.bgcolour=bgcolour
         self.viewClassification=viewClassification          self.viewClassification=viewClassification
         self.location=location          self.location=location
       self.isAlwaysClickable=isAlwaysClickable
           
         if coords:          if coords:
             coordsnew=[ string.split(x,",") for x in coords]              coordsnew=[ string.split(x,",") for x in coords]
Line 2941  def manage_addECHO_userFolderForm(self): Line 2943  def manage_addECHO_userFolderForm(self):
     """add a user folder form"""      """add a user folder form"""
     return manage_addECHO_userFolder(self)      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):  def createNode(self,descrs,node):
         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):  
     name=descrs[node]['name']      name=descrs[node]['name']
     type=descrs[node]['type']      type=descrs[node]['type']
     urn=node      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')      id=re.sub('[^a-zA-Z0-9]','',name).encode('ascii','ignore')
     #print "id",id      #print "id",id
     #print type      #print type
Line 3012  def createNode2(self,descrs,node): Line 2976  def createNode2(self,descrs,node):
                   
     return "XX"      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("<p>%s</p>\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):  class ECHO_root(Folder,Persistent,Implicit):
     """ECHO Root Folder"""      """ECHO Root Folder"""
Line 3042  class ECHO_root(Folder,Persistent,Implic Line 2984  class ECHO_root(Folder,Persistent,Implic
           
     meta_type="ECHO_root"      meta_type="ECHO_root"
   
       ###CDLI adds -> have to be removed
     def getTablet(self,item):      def getTablet(self,item):
           #print "getTablet"
       try:
         read=urllib.urlopen("http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"%item).read()          read=urllib.urlopen("http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"%item).read()
           
             read=re.sub("\[search\]","search",read)              read=re.sub("\[search\]","search",read)
           
         return read[read.find("<body>")+6:read.rfind("</body>")]          return read[read.find("<body>")+6:read.rfind("</body>")]
       except:
           return "<h1>Sorry no connection to the data server enlil.museum.upenn.edu</h1>"
       #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          global seqs
         seqs={}          seqs={}
         global descrs          global descrs
Line 3059  class ECHO_root(Folder,Persistent,Implic Line 3015  class ECHO_root(Folder,Persistent,Implic
         key=""          key=""
         global value          global value
         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):          def start_element(name,attrs):
   
             global seqs              global seqs
Line 3115  class ECHO_root(Folder,Persistent,Implic Line 3085  class ECHO_root(Folder,Persistent,Implic
         p.StartElementHandler = start_element          p.StartElementHandler = start_element
         p.EndElementHandler = end_element          p.EndElementHandler = end_element
         p.CharacterDataHandler = char_data          p.CharacterDataHandler = char_data
         fileName="/Users/dwinter/Documents/Projekte/CDLI/test11.rdf"  
                   
         p.ParseFile(file(fileName))          
           p.ParseFile(file)
         self.REQUEST.RESPONSE.write("<html><body><h1>Start</h1>")          self.REQUEST.RESPONSE.write("<html><body><h1>Start</h1>")
         createSubs2(self,seqs,descrs,"/Cuneiform Corpus")          createSubs(self,seqs,descrs,startNode)
         self.REQUEST.RESPONSE.write("<h1>done</h1></body></html>")          self.REQUEST.RESPONSE.write("<h1>done</h1></body></html>")
         print "done"          #print "done"
   
                   
         return "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")  
                   
                   
                   
Line 3175  class ECHO_root(Folder,Persistent,Implic Line 3125  class ECHO_root(Folder,Persistent,Implic
         {'label':'Main Config','action':'ECHO_copyright_configForm'},          {'label':'Main Config','action':'ECHO_copyright_configForm'},
         {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'},          {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'},
         {'label':'Change Weights','action':'changeWeights'},          {'label':'Change Weights','action':'changeWeights'},
           {'label':'Generate from RDF','action':'generateFromRDFForm'},
   
         )          )
   
           
Line 3441  class ECHO_root(Folder,Persistent,Implic Line 3393  class ECHO_root(Folder,Persistent,Implic
                                   
         return "changed all contenttypes in: "+self.title          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):      def ECHO_newViewerLink(self,obj=None):
         """change links (:86 faellt weg)"""          """change links (:86 faellt weg)"""
   
Line 3507  class ECHO_root(Folder,Persistent,Implic Line 3479  class ECHO_root(Folder,Persistent,Implic
             for link in links:              for link in links:
                 link.tagName="a"                  link.tagName="a"
                 ref=link.getAttribute("ref")                  ref=link.getAttribute("ref")
           pn=link.getAttribute("page")
               
                 if self.checkRef(ref):                  if self.checkRef(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)                      link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)
   
   
             newxml=dom.toxml('utf-8')              newxml=dom.toxml('utf-8')
               
         retStr=regexpTXT.search(newxml)          retStr=regexpTXT.search(newxml)
Line 3521  class ECHO_root(Folder,Persistent,Implic Line 3499  class ECHO_root(Folder,Persistent,Implic
   
     def xml2html(self,str,quote="yes"):      def xml2html(self,str,quote="yes"):
         """link2html fuer VLP muss hier noch raus"""          """link2html fuer VLP muss hier noch raus"""
     print str      #print str
   
         if str:          if str:
             if quote=="yes2":              if quote=="yes2":
                 str=re.sub("\&","&amp;",str)                  str=re.sub("\&","&amp;",str)
             dom=xml.dom.minidom.parseString(str)              dom=xml.dom.minidom.parseString(str)
             links=dom.getElementsByTagName("link")              links=dom.getElementsByTagName("link")
                           
   
             for link in links:              for link in links:
                 link.tagName="a"                  link.tagName="a"
                 ref=link.getAttribute("ref")                  ref=link.getAttribute("ref")
           pn=link.getAttribute("page")
   
                 if self.checkRef(ref):                  if self.checkRef(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)                      link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref)
   
             str= dom.toxml()              str= dom.toxml()
Line 3544  class ECHO_root(Folder,Persistent,Implic Line 3527  class ECHO_root(Folder,Persistent,Implic
         return ""          return ""
   
     def checkRef(self,ref):      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          res=None
         for db in dbs.keys():          for db in dbs.keys():
   

Removed from v.1.165  
changed lines
  Added in v.1.168


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>