--- MPIWGWeb/MPIWGProjects.py 2005/10/14 16:41:27 1.47.2.32
+++ MPIWGWeb/MPIWGProjects.py 2005/12/22 20:33:45 1.47.2.43
@@ -4,6 +4,7 @@ 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: was passiert wenn aenderungen von jochen im filemaker nicht mit den aenderungen im sql uebereinstimmen
+#TODO: in einzelnen projecte steht als pfad auf die bilder noch wwwneu statt www
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PageTemplates.PageTemplate import PageTemplate
@@ -761,10 +762,10 @@ class MPIWGRoot(ZSQLExtendFolder):
def updateHomepages(self,RESPONSE=None):
""" update"""
- #FIXME: seite wird hinter apache mehrfach ausgefŸhrt
+
RESPONSE.setHeader('Content-type', 'text/html')
RESPONSE.write("
\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=20000&name=Laubichler&-find"
dom = NonvalidatingReader.parseUri(url)
#fh=urllib.urlopen(url)
#dom=xml.dom.minidom.parse(fh)
@@ -786,6 +787,7 @@ class MPIWGRoot(ZSQLExtendFolder):
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])
+ position=getTextFromNode(row.xpath('./dn:Position',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])
@@ -795,7 +797,7 @@ class MPIWGRoot(ZSQLExtendFolder):
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])
-
+ stay_at_mpiwg=getTextFromNode(row.xpath('./dn:stay_at_mpiwg',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
#cwNode=row.xpath('./dn:current_work.current',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0]
cw=row.xpath('./dn:current_work/dn:DATA',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
if cw:
@@ -821,7 +823,7 @@ class MPIWGRoot(ZSQLExtendFolder):
RESPONSE.write("new:%s
\n"%username.encode('utf-8'))
obj=getattr(memberFolder,username)
ret=obj.createNewDBEntry(publish_the_data,id,name,
- vorname,username,title,e_mail,
+ vorname,username,title,position,e_mail,
e_mail_p,date_from,date_to,
abteilung,heimat_inst,funded_by,
e_mail2,txt,txt_p)
@@ -848,17 +850,30 @@ class MPIWGRoot(ZSQLExtendFolder):
obj=getattr(memberFolder,username)
- obj.updateDBEntry(DBid=id,publish_the_data=publish_the_data,
+ done= obj.updateDBEntry(DBid=id,publish_the_data=publish_the_data,
date_from=date_from,
- date_to=date_to)
+ date_to=date_to,stay_at_mpiwg=stay_at_mpiwg,position=position)
+ if not done and (publish_the_data=='yes'):
+
+ ret=obj.createNewDBEntry(publish_the_data,id,name,
+ vorname,username,title,position,e_mail,
+ e_mail_p,date_from,date_to,
+ abteilung,heimat_inst,funded_by,
+ e_mail2,txt,txt_p)
+ if not ret[0]:
- self.reindexCatalogs(RESPONSE)
+ RESPONSE.write("Error: %s
\n"%repr(ret[1]))
+ else:
+ RESPONSE.write("New: %s
\n"%repr(ret[1]))
+
+ #TODO: reindexCatlogs and updatePublications wieder einbaue
+ #self.reindexCatalogs(RESPONSE)
- self.updatePublicationDB()
+ #self.updatePublicationDB()
RESPONSE.write("Done
")
-
+ return True
def reindexCatalogs(self,RESPONSE=None):
"""reindex members and project catalog"""
@@ -1014,7 +1029,7 @@ class MPIWGRoot(ZSQLExtendFolder):
ret+="""\n"""
if actualDepth==1:
- departmentName={'1':'Department I','2':'Department II','3':'Department III', '4':'Ind. Research Group','5':'Ind. Research Group'}
+ departmentName={'1':'Department I','2':'Department II','3':'Department III', '4':'Ind. Research Group','5':'Ind. Research Group','6':'Research Network'}
department=element[3].getContent('xdata_05')
ret+="""
%s: """%(department,departmentName[department])
@@ -1032,6 +1047,8 @@ class MPIWGRoot(ZSQLExtendFolder):
return """"""%(element[3].absolute_url()+"/index.html",element[3].getContent('WEB_title'))
if element[3].getContent('xdata_05') == "5":
return """"""%(element[3].absolute_url()+"/index.html",element[3].getContent('WEB_title'))
+ if element[3].getContent('xdata_05') == "6":
+ return """"""%(element[3].absolute_url()+"/index.html",element[3].getContent('WEB_title'))
return """"""%(element[3].absolute_url()+"/index.html",element[3].getContent('xdata_05'),element[3].getContent('WEB_title'))
@@ -1395,6 +1412,7 @@ class MPIWGProject(CatalogAware,Folder):
def copyImageToMargin(self,RESPONSE=None):
+ #TODO: copy more than one image
"""copy inline images to marginal images"""
self.getContent('WEB_project_description',filter='yes')
@@ -1407,8 +1425,17 @@ class MPIWGProject(CatalogAware,Folder):
self.addImage(None,self.imagecap,filename=filename)
#hole die bilddaten aus der url
- data=urllib.urlopen(self.absolute_url()+"/"+self.imageURL).read()
-
+ url=self.absolute_url()+"/"+self.imageURL
+ #url=self.absolute_url()+"/"+filename
+
+ try:#relative url
+ data=urllib.urlopen(url).read()
+ except:
+ try:#absolute
+ data=urllib.urlopen(self.imageURL).read()
+ except:
+ zLOG.LOG("MPIWG Project",zLOG.ERROR,"can't open: %s"%url)
+
obj=getattr(self,filename)
obj.update_data(data)
@@ -1893,7 +1920,7 @@ class MPIWGProject(CatalogAware,Folder):
start=kupu.find("")
end=kupu.find("")
newcontent= kupu[start+6:end]
-
+
if preview:
return self.preview(newcontent)
@@ -1905,7 +1932,7 @@ class MPIWGProject(CatalogAware,Folder):
return True
- security.declareProtected('View managment screens','edit')
+ security.declareProtected('View management screens','edit')
def edit(self,western=None):
"""Edit pages"""
if western:
@@ -1914,6 +1941,16 @@ class MPIWGProject(CatalogAware,Folder):
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGProjectNeu.zpt')).__of__(self)
return pt()
+
+ edit_MPIWGProject_main = PageTemplateFile('zpt/edit_MPIWGProject_main', globals())
+
+ def getPathStyle(self, path, selected, style=""):
+ """returns a string with the given style + 'sel' if path == selected."""
+
+ if path == selected:
+ return style + 'sel'
+ else:
+ return style
def preview(self,description):
"""preview"""
@@ -1924,7 +1961,7 @@ class MPIWGProject(CatalogAware,Folder):
for field in definedFields:
setattr(tmpPro,field,getattr(self,field))
tmpPro.WEB_project_description=description[0:]
-
+ tmpPro.invisible=True
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','previewFrame.zpt')).__of__(self)
return pt()
@@ -2032,6 +2069,7 @@ class MPIWGProject(CatalogAware,Folder):
splitted=[y.rstrip().lstrip() for y in splitted]
for x in splitted:
+ x=re.sub(r"[^A-z ]","",x)
if (not x==u'') and x in wert:
return 1
return 0
@@ -2042,13 +2080,13 @@ class MPIWGProject(CatalogAware,Folder):
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasisNeu.zpt')).__of__(self)
return pt()
-
+ security.declareProtected('View management screens','editMPIWGBasisForm')
def editMPIWGBasisForm(self):
"""editform"""
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasis.zpt')).__of__(self)
return pt()
-
+ security.declareProtected('View management screens','editMPIWGRelatedPublicationsForm')
def editMPIWGRelatedPublicationsForm(self):
"""Edit related Publications"""
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGRelatedPublications.zpt')).__of__(self)