--- MPIWGWeb/MPIWGProjects.py 2005/10/13 18:00:36 1.47.2.29
+++ MPIWGWeb/MPIWGProjects.py 2005/10/24 19:41:33 1.47.2.38
@@ -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
@@ -296,12 +297,12 @@ class MPIWGRoot(ZSQLExtendFolder):
ids=[int(x.id[1:]) for x in founds]
maximum=max(ids)
- id_raw=self.ZSQLQuery("select nextval('id_raw_test')",debug=debug)
+ id_raw=self.ZSQLQuery("select nextval('id_raw')",debug=debug)
if id_raw:
- self.ZSQLQuery("drop sequence id_raw_test",debug=debug)
+ self.ZSQLQuery("drop sequence id_raw",debug=debug)
- self.ZSQLQuery("create sequence id_raw_test start %i"%(maximum+1),debug=debug)
+ self.ZSQLQuery("create sequence id_raw start %i"%(maximum+1),debug=debug)
def queryLink(self,link):
@@ -536,7 +537,7 @@ class MPIWGRoot(ZSQLExtendFolder):
list[urllib.quote(personNormal)]=(personNormal,[project[1]])
except:
- zLOG.LOG("MPIWG Web (harvestHistoricalPerson)",zLOG.ERROR,"cannot annalyize: %s"%repr(project))
+ zLOG.LOG("MPIWG Web (harvestHistoricalPerson)",zLOG.ERROR,"cannot analyize: %s"%repr(project))
return list
@@ -700,10 +701,11 @@ class MPIWGRoot(ZSQLExtendFolder):
manage_options = Folder.manage_options+(
- {'label':'Update Personal Homepages','action':'updateHomepages'},
+ {'label':'Update personal homepages','action':'updateHomepages'},
+ {'label':'Reindex catalogs','action':'reindexCatalogs'},
{'label':'Main config','action':'changeMPIWGRootForm'},
- {'label':'Edit Historical Persons','action':'editHistoricalPersonsForm'},
- {'label':'Store Historical Persons','action':'storeHistoricalPersons'},
+ #{'label':'Edit Historical Persons','action':'editHistoricalPersonsForm'},
+ #{'label':'Store Historical Persons','action':'storeHistoricalPersons'},
)
def importNamesForm(self):
@@ -744,8 +746,9 @@ class MPIWGRoot(ZSQLExtendFolder):
founds = self.ZSQLInlineSearch(_table="publications")
for found in founds:
-
- if found.id_institutsbibliographie and (not found.id_institutsbibliographie ==""):
+
+ if found.id_institutsbibliographie and (not found.id_institutsbibliographie =="") and (not found.id_institutsbibliographie =="0"):
+
entries = self.ZSQLInlineSearch(_table="institutsbiblio",id=found.id_institutsbibliographie)
for entry in entries:
self.ZSQLChange(_table='publications',_identify='oid=%s' % found.oid,year=entry.year,referencetype=entry.reference_type)
@@ -757,14 +760,16 @@ class MPIWGRoot(ZSQLExtendFolder):
return True
- def updateHomepage_neu(self,RESPONSE=None):
+ 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"
dom = NonvalidatingReader.parseUri(url)
#fh=urllib.urlopen(url)
#dom=xml.dom.minidom.parse(fh)
-
+ RESPONSE.write("got_xml_File\n")
memberFolder=getattr(self,'members')
@@ -810,8 +815,9 @@ class MPIWGRoot(ZSQLExtendFolder):
project=getattr(self,'members')
if not (username in memberList):#neuer eintrag
+
try:
- newObj=MPIWGStaff.MPIWGStaff(str(username),name,vorname)
+ newObj=MPIWGStaff.MPIWGStaff(str(username),name.encode('utf-8'),vorname.encode('utf-8'))
memberFolder._setObject(str(username),newObj)
RESPONSE.write("new:%s
\n"%username.encode('utf-8'))
obj=getattr(memberFolder,username)
@@ -820,7 +826,7 @@ class MPIWGRoot(ZSQLExtendFolder):
e_mail_p,date_from,date_to,
abteilung,heimat_inst,funded_by,
e_mail2,txt,txt_p)
- RESPONSE.write("""%s
"""%ret[1])
+ RESPONSE.write("""%s
"""%ret[1].encode('utf-8'))
except:
RESPONSE.write("ERROR:%s %s %s
\n"%(username.encode('utf-8'),name.encode('utf-8'),vorname.encode('utf-8')))
RESPONSE.write(" : %s %s"%sys.exc_info()[:2])
@@ -847,11 +853,34 @@ class MPIWGRoot(ZSQLExtendFolder):
date_from=date_from,
date_to=date_to)
+ #self.reindexCatalogs(RESPONSE)
+
+ #self.updatePublicationDB()
+
+ RESPONSE.write("
Done
")
+
+
+
+ def reindexCatalogs(self,RESPONSE=None):
+ """reindex members and project catalog"""
+
+
+ try:
+ self.MembersCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
+ self.ProjectCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
+ except:
+ zLOG.LOG("MPIWG Root (updatehomepage)",zLOG.WARNING," %s %s"%sys.exc_info()[:2])
+
+
+
- return True
+ if RESPONSE:
+ RESPONSE.redirect('manage_main')
+
- def updateHomepages(self,RESPONSE):
- """lege members an"""
+
+ def updateHomepages_old(self,RESPONSE):
+ """lege members an, alte version vollstaendige kopie aller fm-dateien per fm.jar"""
self.upDateSQL('personalwww.xml')
founds=self.ZSQLInlineSearch(_table='personal_www',publish_the_data='yes')
project=getattr(self,'members')
@@ -898,6 +927,7 @@ class MPIWGRoot(ZSQLExtendFolder):
# ret.append(x.title.decode('utf-8'))
for x in self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff']):
+ if x[1].isPublished():
ret.append(x[1].title.decode('utf-8'))
ret.sort()
@@ -985,7 +1015,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])
@@ -1003,6 +1033,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'))
@@ -1125,7 +1157,7 @@ class MPIWGRoot(ZSQLExtendFolder):
except:
proj=None
- if proj:
+ if proj and (proj[0].getObject().isPublished()):
if person =="Otto Sibum" : person="H. Otto Sibum"
if person =="Norton Wise" : person="M. Norton Wise"
#ret.append("%s"%(proj[0].absolute_url,person.encode('utf-8')))
@@ -1366,6 +1398,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')
@@ -1378,8 +1411,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)
@@ -1876,7 +1918,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:
@@ -1885,6 +1927,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"""
@@ -1895,7 +1947,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()
@@ -2003,6 +2055,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
@@ -2013,13 +2066,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)