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