Diff for /MPIWGWeb/MPIWGProjects.py between versions 1.47.2.27 and 1.47.2.28

version 1.47.2.27, 2005/10/11 13:14:01 version 1.47.2.28, 2005/10/12 19:35:38
Line 2 Line 2
 for organizing and maintaining the different project pages  for organizing and maintaining the different project pages
   
 """  """
   #TODO: mechanismus fur links to personen ueberarbeiten, da jetzt alle e_mails als members auftauchen unabhaengig vom status publish_the_data
   
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
Line 23  from Products.ZSQLMethods.SQL import SQL Line 25  from Products.ZSQLMethods.SQL import SQL
 from AccessControl import ClassSecurityInfo  from AccessControl import ClassSecurityInfo
 from bibliography import *  from bibliography import *
 import time  import time
   import xml.dom.minidom
   import sys
   
 definedFields=['WEB_title','xdata_01','xdata_02','xdata_03','xdata_04','xdata_05','xdata_06','xdata_07','xdata_08','xdata_09','xdata_10','xdata_11','xdata_12','xdata_13','WEB_project_header','WEB_project_description','WEB_related_pub']  definedFields=['WEB_title','xdata_01','xdata_02','xdata_03','xdata_04','xdata_05','xdata_06','xdata_07','xdata_08','xdata_09','xdata_10','xdata_11','xdata_12','xdata_13','WEB_project_header','WEB_project_description','WEB_related_pub']
   
 checkFields = ['xdata_01']  checkFields = ['xdata_01']
   
   
   def getTextFromNode(nodename):
       nodelist=nodename.childNodes
       rc = ""
       for node in nodelist:
           if node.nodeType == node.TEXT_NODE:
              rc = rc + node.data
       return rc
   
 def sortF(x,y):  def sortF(x,y):
     try:      try:
Line 269  class MPIWGRoot(ZSQLExtendFolder): Line 280  class MPIWGRoot(ZSQLExtendFolder):
             txt="""<h2>Auf dieser Seite finden Sie die Projekte mit Stand vom %s</h2>"""%str(date)              txt="""<h2>Auf dieser Seite finden Sie die Projekte mit Stand vom %s</h2>"""%str(date)
         return ""          return ""
           
           
       def createOrUpdateId_raw(self):
           """create sequence to create ids for bibliography"""
           debug=None
           #suche groesste existierende id
           founds=self.ZSQLQuery("select id from bibliography")
           
           if founds:
               ids=[int(x.id[1:]) for x in founds]
               maximum=max(ids)
               
               id_raw=self.ZSQLQuery("select nextval('id_raw_test')",debug=debug)
               
               if id_raw:
                   self.ZSQLQuery("drop sequence id_raw_test",debug=debug)
               
               self.ZSQLQuery("create sequence id_raw_test start %i"%(maximum+1),debug=debug)
           
       
     def queryLink(self,link):      def queryLink(self,link):
         """append querystring to the link"""          """append querystring to the link"""
         return "%s?%s"%(link,self.REQUEST.get('QUERY_STRING',''))          return "%s?%s"%(link,self.REQUEST.get('QUERY_STRING',''))
Line 709  class MPIWGRoot(ZSQLExtendFolder): Line 739  class MPIWGRoot(ZSQLExtendFolder):
             founds = self.ZSQLInlineSearch(_table="publications")              founds = self.ZSQLInlineSearch(_table="publications")
                           
         for found in founds:          for found in founds:
             print found  
             if found.id_institutsbibliographie and (not found.id_institutsbibliographie ==""):              if found.id_institutsbibliographie and (not found.id_institutsbibliographie ==""):
                 entries = self.ZSQLInlineSearch(_table="institutsbiblio",id=found.id_institutsbibliographie)                  entries = self.ZSQLInlineSearch(_table="institutsbiblio",id=found.id_institutsbibliographie)
                 for entry in entries:                  for entry in entries:
Line 722  class MPIWGRoot(ZSQLExtendFolder): Line 752  class MPIWGRoot(ZSQLExtendFolder):
                                           
         return True                  return True        
                   
       def updateHomepage_neu(self,RESPONSE=None):
           """ update"""
           RESPONSE.write("<html><body>\n")
           url="http://itgroup.mpiwg-berlin.mpg.de:8050/FMPro?-db=personal-www&-format=-dso_xml&-lay=sql_export&-max=10000&-findall"
           fh=urllib.urlopen(url)
           dom=xml.dom.minidom.parse(fh)
           
           
           memberFolder=getattr(self,'members')
           members=memberFolder.ZopeFind(memberFolder,obj_metatypes=["MPIWGStaff"])
           
           memberList=[x[0] for x in members]
           
           for row in dom.getElementsByTagName('ROW'):
               username=getTextFromNode(row.getElementsByTagName('username')[0])
               id=getTextFromNode(row.getElementsByTagName('ID')[0])
               name=getTextFromNode(row.getElementsByTagName('Name')[0])
               vorname=getTextFromNode(row.getElementsByTagName('Vorname')[0])
               title=getTextFromNode(row.getElementsByTagName('Title')[0])
               e_mail=getTextFromNode(row.getElementsByTagName('e_mail')[0])
               e_mail_p=getTextFromNode(row.getElementsByTagName('e_mail_p')[0])
               date_from=getTextFromNode(row.getElementsByTagName('Date_from')[0])
               date_to=getTextFromNode(row.getElementsByTagName('Date_to')[0])
               abteilung=getTextFromNode(row.getElementsByTagName('Abteilung')[0])
               heimat_inst=getTextFromNode(row.getElementsByTagName('heimat_inst')[0])
               funded_by=getTextFromNode(row.getElementsByTagName('funded_by')[0])
               e_mail2=getTextFromNode(row.getElementsByTagName('e_mail2')[0])
               publish_the_data=getTextFromNode(row.getElementsByTagName('publish_the_data')[0])
              
               cwNode=row.getElementsByTagName('current_work.current')[0]
               cw=cwNode.getElementsByTagName('DATA')
               if cw:
                   txt=getTextFromNode(cw[0])
               else:
                   txt=""
              
               cwNode=row.getElementsByTagName('current_work.publish')[0]
               cw=cwNode.getElementsByTagName('DATA')
               if cw:
                   txt_p=getTextFromNode(cw[0])
               else:
                   txt_p=""
             
               project=getattr(self,'members')
               
               if not (username in memberList):#neuer eintrag
                   try:
                       newObj=MPIWGStaff.MPIWGStaff(str(username),name,vorname)
                       memberFolder._setObject(str(username),newObj)
                       RESPONSE.write("<p>new:%s</p>\n"%username.encode('utf-8'))
                       obj=getattr(memberFolder,username)
                       obj.createNewDBEntry(publish_the_data,id,name,
                                             vorname,title,e_mail,
                                             e_mail_p,date_from,date_to,
                                             abteilung,heimat_inst,funded_by,
                                             e_mail2,txt,txt_p)
                   except:
                       RESPONSE.write("<p>ERROR:%s %s %s</p>\n"%(username.encode('utf-8'),name.encode('utf-8'),vorname.encode('utf-8')))
                       RESPONSE.write("<p>      : %s %s"%sys.exc_info()[:2])
               else:
                   RESPONSE.write("<p>update:%s</p>\n"%username.encode('utf-8'))
                   self.ZSQLChange(_table="personal_www",_identify="id=%s"%id,publish_the_data=publish_the_data,
                                      date_from=date_from,
                                      date_to=date_to)
                     
             
              
           return True
                   
     def updateHomepages(self,RESPONSE):      def updateHomepages(self,RESPONSE):
         """lege members an"""          """lege members an"""
Line 1145  class MPIWGRoot(ZSQLExtendFolder): Line 1242  class MPIWGRoot(ZSQLExtendFolder):
         return (fieldname in checkFields)          return (fieldname in checkFields)
   
   
       
       
           
 def manage_addMPIWGRootForm(self):  def manage_addMPIWGRootForm(self):
     """form for adding the root"""      """form for adding the root"""
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGRootForm.zpt')).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGRootForm.zpt')).__of__(self)

Removed from v.1.47.2.27  
changed lines
  Added in v.1.47.2.28


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