--- MPIWGWeb/MPIWGProjects.py 2008/08/22 06:09:28 1.47.2.87 +++ MPIWGWeb/MPIWGProjects.py 2008/08/27 12:12:48 1.47.2.91 @@ -7,17 +7,18 @@ $author dwinter - last change 26.06.2 from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from Products.ZCatalog.CatalogPathAwareness import CatalogAware +from Products.MPIWGBibliography.BibliographyManager import BibliographyManager from OFS.Image import Image from Globals import package_home import urllib import re -import os +import os from types import * import logging import xmlhelper # Methoden zur Verwaltung der projekt xml from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder - +from OFS.Image import Image from AccessControl import ClassSecurityInfo from bibliography import * import time @@ -50,21 +51,37 @@ class MPIWGLink(MPIWGLink.MPIWGLink): class MPIWGTemplate(MPIWGTemplate.MPIWGTemplate): """depricated""" -class MPIWGProject_publication(SimpleItem): +class MPIWGProject_publication(Folder): """publications object fuer project""" meta_type="MPIWGProject_publication" - def editPublication(self,text=None,RESPONSE=None): + def editPublication(self,text=None,image1=None,image2=None,description=None,RESPONSE=None): """edit a publication""" - if (not text): + if (not text) and (not description): pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_publicationForm.zpt')).__of__(self) return pt() self.text=text[0:] - + self.description=description + + if image1: + if hasattr(self,'publicationImage1'): + self.publicationImage1.manage_upload(image1) + else: + nO = Image('publicationImage1','',image1) + self._setObject('publicationImage1',nO) + + if image2: + if hasattr(self,'publicationImage2'): + self.publicationImage2.manage_upload(image2) + else: + nO = Image('publicationImage2','',image2) + self._setObject('publicationImage2',nO) + + if RESPONSE: RESPONSE.redirect("../managePublications") @@ -256,7 +273,30 @@ class MPIWGProject(CatalogAware,Folder): pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGProject_managePublicationsForm.zpt')).__of__(self) return pt() + def hasExtendedPublicationList(self): + """test if extended publication list exists""" + if not hasattr(self,"publicationList"): + return False + else: + return True + + def createExtendedPublicationList(self,RESPONSE=None): + """erzeuge erweiterte publications liste""" + pl = BibliographyManager("publicationList","","institutsbiblio",self.connection_id) + self._setObject("publicationList", pl) + + + zt=ZopePageTemplate('index.html') + pl._setObject('index.html',zt) + default_content_fn = os.path.join(package_home(globals()), + 'zpt/showExtendedProjectBibliography.zpt') + text = open(default_content_fn).read() + zt.pt_edit(text, 'text/html') + + if RESPONSE: + RESPONSE.redirect("managePublications") + def getPublications(self): """get all Publications""" def sort_images(x,y): @@ -900,8 +940,8 @@ class MPIWGProject(CatalogAware,Folder): text5="" logging.debug("getcontent: field=%s filter=%s -> %s"%(field,filter,repr(text5))) - #return unicodify(text5) - return utf8ify(text5) # return as utf-8 byte string + return unicodify(text5) + #return utf8ify(text5) # return as utf-8 byte string def showImagesOfPage(self,imageUrl=None): @@ -1054,8 +1094,10 @@ class MPIWGProject(CatalogAware,Folder): logging.info("Search: %s %s %s"%(name,firstname,lastname)) firstname=firstname.capitalize() lastname=lastname.capitalize() - cataloggedNames=self.MembersCatalog(firstName=firstname,lastName=lastname) - + try: + cataloggedNames=self.MembersCatalog(firstName=firstname,lastName=lastname) + except: + cataloggedNames=[] #Teste ob die ensprechenden Namen schon der Liste zu geordnet sind #if not hasattr(self,'responsibleScientistsList'): # self.responsibleScientistsList={}