Diff for /ECHO_content/ECHO_collection.py between versions 1.220 and 1.232

version 1.220, 2005/03/17 19:27:34 version 1.232, 2005/08/15 13:34:04
Line 1 Line 1
   
   
 """New version of the product started February, 8th. Without scientific classification, use content-type for further classification."""  """New version of the product started February, 8th. Without scientific classification, use content-type for further classification."""
 """Echo collection provides the classes for the ECHO content web-site.  """Echo collection provides the classes for the ECHO content web-site.
   
Line 39  from Globals import Persistent, package_ Line 41  from Globals import Persistent, package_
 from Acquisition import Implicit  from Acquisition import Implicit
   
 import urllib  import urllib
   import cgi
 import smtplib  import smtplib
 import time  import time
 from Ft.Xml.Domlette import NonvalidatingReader  from Ft.Xml.Domlette import NonvalidatingReader
Line 86  def setECHO_collectionInformation(self,t Line 89  def setECHO_collectionInformation(self,t
         self.credits=toList(credits)          self.credits=toList(credits)
         self.weight=weight          self.weight=weight
   
   class ECHO_locale(ZopePageTemplate):
       """localisierung"""
   
       meta_type="ECHO_locale"
   
       def __init__(self,id,lang,title,label,text=None,content_type=None):
           self.lang=lang
           self.title=title
           self.label=label
           if text:
               self.pt_edit(text, content_type)
           self.id=id
   
       manage_options = ZopePageTemplate.manage_options+(
           {'label':'Main Config','action':'change_ECHO_localeForm'},
           )
   
       def change_ECHO_localeForm(self):
           """change form"""
           pt=zptFile(self, 'zpt/ChangeECHO_localeForm.zpt')
           return pt()
       
       def change_ECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None):
           """change echo locale"""
           self.lang=lang
           self.title=title
           self.label=label
           if not text is None:
               self.pt_edit(text, content_type)
   
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
           
   def manage_addECHO_localeForm(self):
        """Form for adding"""
        pt=zptFile(self, 'zpt/AddECHO_localeForm.zpt')
        return pt()
   
   def manage_addECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None):
       """add echo locale"""
   
       id="locale_"+lang
       
       self._setObject(id, ECHO_locale(id,lang,title,label,text,content_type))
       if RESPONSE is not None:
           RESPONSE.redirect('manage_main')
   
                           
 class ECHO_copyright(Folder,ECHO_basis):  class ECHO_copyright(Folder,ECHO_basis):
     """Copyright informationen"""      """Copyright informationen"""
Line 262  class ECHO_resource(Folder,Persistent,EC Line 313  class ECHO_resource(Folder,Persistent,EC
   
     getSubCols = ECHO_helpers.getSubCols      getSubCols = ECHO_helpers.getSubCols
   
     security.declareProtected('View','index_html')  
   
       
       
     security.declareProtected('View','createPDF')      security.declareProtected('View','createPDF')
     def createPDF(self,RESPONSE=None,local=None,dpi=150):      def createPDF(self,RESPONSE=None,local=None,dpi=150):
Line 1200  class ECHO_resource(Folder,Persistent,EC Line 1248  class ECHO_resource(Folder,Persistent,EC
         if not error=="": #Fehler beim Auslesen des Metafiles          if not error=="": #Fehler beim Auslesen des Metafiles
         return "ERROR:",error          return "ERROR:",error
           
       if not self.contentType:
           self.contentType=metadict['bib_type'].lower()
   
     if not (metadict['bib_type'].lower()==self.contentType.lower()):      if not (metadict['bib_type'].lower()==self.contentType.lower()):
         self.REQUEST.SESSION['contentStorage']=metadict['bib_type']          self.REQUEST.SESSION['contentStorage']=metadict['bib_type']
Line 1238  class ECHO_resource(Folder,Persistent,EC Line 1288  class ECHO_resource(Folder,Persistent,EC
             return None              return None
                   
                   
       security.declareProtected('View','index_html')
     def index_html(self):      def index_html(self):
         """standard page"""          """standard page"""
         pdf=self.checkRDF(self.link)          pdf=self.checkRDF(self.link)
Line 1306  def manage_addECHO_resourceForm(self): Line 1357  def manage_addECHO_resourceForm(self):
   
   
 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):  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"""      """addresource"""
   
     newObj=ECHO_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords)      newObj=ECHO_resource(id,link,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords)
   
Line 1367  class ECHO_externalLink(Folder,ECHO_basi Line 1418  class ECHO_externalLink(Folder,ECHO_basi
                           
     manage_options = Folder.manage_options+(      manage_options = Folder.manage_options+(
         {'label':'Main Config','action':'ECHO_externalLink_config'},          {'label':'Main Config','action':'ECHO_externalLink_config'},
       {'label':'Graphic Coords','action':'ECHO_graphicEntry'},
         )          )
   
                   
Line 1405  class ECHO_link(ECHO_externalLink): Line 1457  class ECHO_link(ECHO_externalLink):
         else:          else:
             return ECHO_basis.content_html(self,'collection')              return ECHO_basis.content_html(self,'collection')
           
       def index_html(self):
           """standard link"""
           if self.link:
            splitted=self.link.split("?")
            if len(splitted)>1:
               params=cgi.parse_qs(splitted[1])
   
               for x in params.keys():
                   if type(params[x]) is ListType:
                       params[x]=params[x][0]
           
   
            else:
               params={}
           
            params['backLink']=self.aq_parent.absolute_url()
            params['startLink']=splitted[0]+"?"+urllib.urlencode(params)
           
           
            return self.REQUEST.RESPONSE.redirect(splitted[0]+"?"+urllib.urlencode(params))
           else:
            return ""
   
 def manage_addECHO_linkForm(self):  def manage_addECHO_linkForm(self):
         """Form for external Links"""          """Form for external Links"""
         pt=zptFile(self, 'zpt/AddECHO_linkForm.zpt')          pt=zptFile(self, 'zpt/AddECHO_linkForm.zpt')
Line 1432  class ECHO_collection(Folder, Persistent Line 1507  class ECHO_collection(Folder, Persistent
   
     path="/mpiwg/online/permanent/shipbuilding"      path="/mpiwg/online/permanent/shipbuilding"
   
       def localizeObjects(self):
           """localize all objects"""
           contents=self.ZopeFind(self,obj_metatypes=['ECHO_link','ECHO_mapText'])
           find=self.ZopeFind(self,obj_ids=('locale_en'))
           if not find:
           self.manage_addECHO_locale("en",'','')
           for content in contents:
               if content[1].meta_type=='ECHO_link':
                   find=content[1].ZopeFind(content[1],obj_metatypes=('ECHO_mapText'))
                   if find:
                       root=find[0][1]
   
                       locale=find[0][1].ZopeFind(find[0][1],obj_ids=('locale_en'))
                   else:
                       root=None
               else:
                   root=content[1]
                   locale=content[1].ZopeFind(content[1],obj_ids=('locale_en'))
               if root and not locale:
                   root.manage_addECHO_locale("en",'','')
               
           pt=zptFile(self, 'zpt/localizeObjects.zpt')
           return pt()
   
   
       def localize(self,REQUEST,RESPONSE):
           """localize"""
           for key in REQUEST.form.keys():
               splitted=key.split("!")
   
               if splitted[0]=="" or splitted[0]=="en" or splitted[0]=="title" or splitted[0]=="label":
                   if splitted[0]=="en":
                       setattr(self.locale_en,splitted[1],REQUEST.form[key])
                   else:
                       setattr(self,splitted[0],REQUEST.form[key])
               else:
                   obj=getattr(self,splitted[0])
   
                   if obj.meta_type=="ECHO_mapText":
                       if splitted[1]=="en":
                           obj.locale_en.pt_edit(REQUEST.form[key],None)
                       else:
                           obj.pt_edit(REQUEST.form[key],None)
                   else:
                       text=obj.ZopeFind(obj,obj_metatypes=['ECHO_mapText'])
                       if splitted[1]=="en":
                           
                           text[0][1].locale_en.pt_edit(REQUEST.form[key],None)
                       else:
                           text[0][1].pt_edit(REQUEST.form[key],None)
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
   
     def getRDF(self,urn=None):      def getRDF(self,urn=None):
         """rdf of the collection"""          """rdf of the collection"""
                   
Line 1790  class ECHO_collection(Folder, Persistent Line 1919  class ECHO_collection(Folder, Persistent
             return ""              return ""
   
   
     def addMovie(self,id,title,label,description,contentType,responsible,link,thumbUrl,rawFile,metalink,weight,credits=None,coords=None,RESPONSE=None):      def addMovie(self,id,title,label,description,contentType,responsible,link,thumbUrl,rawFile,lowresFile,metalink,weight,credits=None,coords=None,RESPONSE=None):
         """SSS"""          """SSS"""
     print "we are here"  
     #manage_addECHO_movie(self,id,title,label,description,responsible,link,thumbUrl,rawFile,metalink,weight,credits=None,coords=None,RESPONSE=None)      #manage_addECHO_movie(self,id,title,label,description,responsible,link,thumbUrl,rawFile,metalink,weight,credits=None,coords=None,RESPONSE=None)
     if not hasattr(self,id):      if not hasattr(self,id):
         try:          try:
             manage_addECHO_movie(self,id,title,label,description,responsible,link,thumbUrl,rawFile,metalink,weight,credits=None,coords=None,RESPONSE=None)              manage_addECHO_movie(self,id,title,label,description,responsible,link,thumbUrl,rawFile,lowresFile,metalink,weight,credits=None,coords=None,RESPONSE=None)
             return "done"              return "done"
         except:          except:
             return None              return None
     else:      else:
         obj=getattr(self,id)          obj=getattr(self,id)
         obj.changeECHO_movie_main(metalink,link,rawFile,thumbUrl,title,label,description,contentType,weight=weight)          obj.changeECHO_movie_main(metalink,link,rawFile,lowresFile,thumbUrl,title,label,description,contentType,weight=weight)
   
     return "changed"      return "changed"
   
Line 1926  class ECHO_collection(Folder, Persistent Line 2055  class ECHO_collection(Folder, Persistent
         {'label':'Main Config','action':'ECHO_collection_config'},          {'label':'Main Config','action':'ECHO_collection_config'},
         {'label':'Change Labels','action':'changeLabels'},          {'label':'Change Labels','action':'changeLabels'},
         {'label':'Change Titles','action':'changeTitles'},          {'label':'Change Titles','action':'changeTitles'},
       {'label':'Localize','action':'localizeObjects'},
     {'label':'Change Weights','action':'changeWeights'},      {'label':'Change Weights','action':'changeWeights'},
         {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMDWarning'},          {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMDWarning'},
         {'label':'Graphic Coords','action':'ECHO_graphicEntry'},          {'label':'Graphic Coords','action':'ECHO_graphicEntry'},
Line 1961  class ECHO_collection(Folder, Persistent Line 2091  class ECHO_collection(Folder, Persistent
   
                   
     security.declarePublic('changeECHO_collection')           security.declarePublic('changeECHO_collection')     
     def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None):      def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None,prefix="",suffix=""):
         """Aenderung der Properties"""          """Aenderung der Properties"""
   
         self.secondaryLink=secondaryLink          self.secondaryLink=secondaryLink
Line 1970  class ECHO_collection(Folder, Persistent Line 2100  class ECHO_collection(Folder, Persistent
     self.bgcolour=bgcolour      self.bgcolour=bgcolour
         self.location=location          self.location=location
     self.isAlwaysClickable=isAlwaysClickable      self.isAlwaysClickable=isAlwaysClickable
       self.prefix=prefix[0:]
       self.suffix=suffix[0:]
                           
         setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)          setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)
                   
Line 1994  class ECHO_collection(Folder, Persistent Line 2126  class ECHO_collection(Folder, Persistent
         pt=zptFile(self, 'zpt/ECHO_content_overview.zpt')          pt=zptFile(self, 'zpt/ECHO_content_overview.zpt')
         return pt()          return pt()
   
     security.declareProtected('View','index_html')  
           
       security.declareProtected('View','index_html')
     def index_html(self):      def index_html(self):
         """standard page"""          """standard page"""
         if self.ZCacheable_isCachingEnabled():          if self.ZCacheable_isCachingEnabled():
Line 2064  class ECHO_collection(Folder, Persistent Line 2196  class ECHO_collection(Folder, Persistent
         """javascript"""          """javascript"""
         return sendFile(self, 'js/hl_add.js', 'text/plain')          return sendFile(self, 'js/hl_add.js', 'text/plain')
   
     def getAllMapAreas(self):      def getAllMapAreas(self,mapColTypes=['ECHO_collection','ECHO_resource','ECHO_link','ECHO_externalLink']):
         """Give list of coordinates"""          """Give list of coordinates"""
         mapColTypes=['ECHO_collection','ECHO_resource']          
         areas=[]          areas=[]
         for entry in self.getSubCols(subColTypes=mapColTypes):          for entry in self.getSubCols(subColTypes=mapColTypes):
             object=entry              object=entry
Line 2399  class ECHO_root(Folder,Persistent,Implic Line 2531  class ECHO_root(Folder,Persistent,Implic
     def item2(self,txt):      def item2(self,txt):
         return txt[2]          return txt[2]
                   
       def setLanguage(self,lang):
           """Set language cookie"""
           self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="")
   
       def switchLanguage(self):
           """Set language cookie"""
           if self.getLanguage()=="en":
               lang="de"
           else:
               lang="en"
           
           self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="")
           self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1'])
       def getLanguage(self):
           """get language cookie"""
           lang= self.REQUEST.cookies.get('lang_exhibition','de')
           if lang == '':
               lang="de"
           return lang
       
     def getContentOverviewTemplate(self):      def getContentOverviewTemplate(self):
     """produces overview template with macro"""      """produces overview template with macro"""
     pt = zptObjectOrFile(self, 'content_overview_template')      pt = zptObjectOrFile(self, 'content_overview_template')
     return pt      return pt
   
       def mapstyle_css(self):
           """send mapstyle.css"""
           sendFile(self, 'html/ECHO_mapstyle.css', 'text/css')
   
   
     ###Cdli adds -> have to be removed      ###Cdli adds -> have to be removed
     def getTablet(self,item):      def getTablet(self,item):
         #print "getTablet"          #print "getTablet"
Line 2704  class ECHO_root(Folder,Persistent,Implic Line 2861  class ECHO_root(Folder,Persistent,Implic
          """nothing"""           """nothing"""
      return retStr       return retStr
   
     def renderingTypeSelector_HTML(self,selected=None):  
          """give type selector"""  
      if not selected:  
          retStr="<option selected>\n"  
      else:  
          retStr="<option>\n"  
            
      try: # erste version renderingTypes exists  
          for renderingType in self.ZopeFind(self.renderingTypes,obj_metatypes=["ECHO_renderingType"]):  
              if selected and (renderingType[0]==selected):  
                  retStr+="""<option selected value="%s">%s\n"""%(renderingType[0],renderingType[0])  
              else:                  
                  retStr+="""<option value="%s">%s\n"""%(renderingType[0],renderingType[0])  
      except:  
          """nothing"""  
      return retStr  
   
   
     def copyrightTypeSelector_HTML(self, object=None, selected=None,first=None):      def copyrightTypeSelector_HTML(self, object=None, selected=None,first=None):
          """give type selector"""           """give type selector"""
Line 2979  class ECHO_root(Folder,Persistent,Implic Line 3119  class ECHO_root(Folder,Persistent,Implic
   
             #str= dom.toxml('utf-8')              #str= dom.toxml('utf-8')
         buf = cStringIO.StringIO()          buf = cStringIO.StringIO()
         PrettyPrint(dom, stream=buf, encoding='UTF-8')          PrettyPrint(dom, stream=buf)
         str = buf.getvalue()          str = buf.getvalue()
         buf.close()          buf.close()
         #str=PrettyPrint(dom.documentElement,encoding='UTF-8')          #str=PrettyPrint(dom.documentElement,encoding='UTF-8')
         #print link.toxml('utf-8')          #print link.toxml('utf-8')
         #print type(str)          #print type(str)
         retStr=regexpPage.search(str)          retStr=regexpPage.search(str)
           
         try: # hack warum fehtl manchmal page??          try: # hack warum fehtl manchmal page??
             return retStr.group(1)              return retStr.group(1)
         except:          except:
Line 3002  class ECHO_root(Folder,Persistent,Implic Line 3143  class ECHO_root(Folder,Persistent,Implic
         except:          except:
             """nothing"""              """nothing"""
                           
         dbs={'vl_technology':'','vl_people':'','vl_sites':''}          dbs={'vl_technology':'','vl_people':" AND complete='yes'",'vl_sites':''}
         res=None          res=None
         for db in dbs.keys():          for db in dbs.keys():
             res=res or self.search(var=str("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])))

Removed from v.1.220  
changed lines
  Added in v.1.232


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