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

version 1.47.2.28, 2005/10/12 19:35:38 version 1.47.2.29, 2005/10/13 18:00:36
Line 3  for organizing and maintaining the diffe Line 3  for organizing and maintaining the diffe
   
 """  """
 #TODO: mechanismus fur links to personen ueberarbeiten, da jetzt alle e_mails als members auftauchen unabhaengig vom status publish_the_data  #TODO: mechanismus fur links to personen ueberarbeiten, da jetzt alle e_mails als members auftauchen unabhaengig vom status publish_the_data
   #TODO: was passiert wenn aenderungen von jochen im filemaker nicht mit den aenderungen im sql uebereinstimmen
   
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
Line 27  from bibliography import * Line 28  from bibliography import *
 import time  import time
 import xml.dom.minidom  import xml.dom.minidom
 import sys  import sys
   from Ft.Xml.XPath import Evaluate
   from Ft.Xml.XPath.Context import Context
   from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print
   from Ft.Xml import EMPTY_NAMESPACE
   
 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']
   
Line 756  class MPIWGRoot(ZSQLExtendFolder): Line 761  class MPIWGRoot(ZSQLExtendFolder):
         """ update"""          """ update"""
         RESPONSE.write("<html><body>\n")          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"          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 = NonvalidatingReader.parseUri(url)
         dom=xml.dom.minidom.parse(fh)          #fh=urllib.urlopen(url)
           #dom=xml.dom.minidom.parse(fh)
   
                   
                   
         memberFolder=getattr(self,'members')          memberFolder=getattr(self,'members')
         members=memberFolder.ZopeFind(memberFolder,obj_metatypes=["MPIWGStaff"])          members=memberFolder.ZopeFind(memberFolder,obj_metatypes=["MPIWGStaff"])
                   
         memberList=[x[0] for x in members]          memberList=[x[0] for x in members]
           #print dom
           #ctx=Context(dom,processorNss={EMPTY_NAMESPACE:'http://www.filemaker.com/fmpdsoresult'})
           # Evaluate(u".//dn:ROW",contextNode=dom,explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
           #print dom.xpath(u'.//dn:ROW',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
           for row in dom.xpath(u'.//dn:ROW',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'}):
           
               username=getTextFromNode(row.xpath('./dn:username',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               id=getTextFromNode(row.xpath('./dn:ID',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               name=getTextFromNode(row.xpath('./dn:Name',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               vorname=getTextFromNode(row.xpath('./dn:Vorname',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               title=getTextFromNode(row.xpath('./dn:Title',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               e_mail=getTextFromNode(row.xpath('./dn:e_mail',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               e_mail_p=getTextFromNode(row.xpath('./dn:e_mail_p',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               date_from=getTextFromNode(row.xpath('./dn:Date_from',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               date_to=getTextFromNode(row.xpath('./dn:Date_to',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               abteilung=getTextFromNode(row.xpath('./dn:Abteilung',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               heimat_inst=getTextFromNode(row.xpath('./dn:heimat_inst',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               funded_by=getTextFromNode(row.xpath('./dn:funded_by',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               e_mail2=getTextFromNode(row.xpath('./dn:e_mail2',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               publish_the_data=getTextFromNode(row.xpath('./dn:publish_the_data',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
                   
         for row in dom.getElementsByTagName('ROW'):              #cwNode=row.xpath('./dn:current_work.current',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0]
             username=getTextFromNode(row.getElementsByTagName('username')[0])              cw=row.xpath('./dn:current_work/dn:DATA',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
             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:              if cw:
                 txt=getTextFromNode(cw[0])                  txt=getTextFromNode(cw[0])
             else:              else:
                 txt=""                  txt=""
                         
             cwNode=row.getElementsByTagName('current_work.publish')[0]              #cwNode=row.xpath('.//dn:current_work.publish',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0]
             cw=cwNode.getElementsByTagName('DATA')              cw=row.xpath('./dn:current_work/dn:DATA',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
   
             if cw:              if cw:
                 txt_p=getTextFromNode(cw[0])                  txt_p=getTextFromNode(cw[0])
             else:              else:
Line 803  class MPIWGRoot(ZSQLExtendFolder): Line 815  class MPIWGRoot(ZSQLExtendFolder):
                     memberFolder._setObject(str(username),newObj)                      memberFolder._setObject(str(username),newObj)
                     RESPONSE.write("<p>new:%s</p>\n"%username.encode('utf-8'))                      RESPONSE.write("<p>new:%s</p>\n"%username.encode('utf-8'))
                     obj=getattr(memberFolder,username)                      obj=getattr(memberFolder,username)
                     obj.createNewDBEntry(publish_the_data,id,name,                      ret=obj.createNewDBEntry(publish_the_data,id,name,
                                           vorname,title,e_mail,                                            vorname,username,title,e_mail,
                                           e_mail_p,date_from,date_to,                                            e_mail_p,date_from,date_to,
                                           abteilung,heimat_inst,funded_by,                                            abteilung,heimat_inst,funded_by,
                                           e_mail2,txt,txt_p)                                            e_mail2,txt,txt_p)
                       RESPONSE.write("""<p>%s</p>"""%ret[1])
                 except:                  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>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])                      RESPONSE.write("<p>      : %s %s"%sys.exc_info()[:2])
             else:              else:
                 RESPONSE.write("<p>update:%s</p>\n"%username.encode('utf-8'))                  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,                  
                   xquery=".//dn:ROW[dn:username='%s']"%username
                   results=dom.xpath(xquery,explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
                   if len(results)>1:
                       RESPONSE.write("<p>WARNING (update): username %s not unique</p>\n"%username.encode('utf-8'))
                       xquery=".//dn:ROW[dn:publish_the_data='yes' and dn:username='%s']"%username
                       rd=dom.xpath(xquery,explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'}) 
                       if len(rd)>1:#mehrere published
                           RESPONSE.write("<p>ERROR (update): username %s not unique and more then one date  set to be published</p>\n"%username.encode('utf-8'))
   #                    elif len(rd)==1:#nur einer published, kein published dann mache nichts
   #                        publish_the_data=getTextFromNode(rd[0].xpath('./dn:publish_the_data',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
   #                        date_from=getTextFromNode(rd[0].xpath('./dn:Date_from',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
   #                        date_to=getTextFromNode(rd[0].xpath('./dn:Date_to',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
   #              
   
                   obj=getattr(memberFolder,username)
                   
                   obj.updateDBEntry(DBid=id,publish_the_data=publish_the_data,
                                    date_from=date_from,                                     date_from=date_from,
                                    date_to=date_to)                                     date_to=date_to)
                                       
                       
              
         return True          return True
                   
     def updateHomepages(self,RESPONSE):      def updateHomepages(self,RESPONSE):

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


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