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): |