--- MPIWGWeb/MPIWGProjects.py 2008/08/18 13:27:56 1.47.2.86 +++ MPIWGWeb/MPIWGProjects.py 2008/08/26 15:01:41 1.47.2.90 @@ -7,11 +7,12 @@ $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 @@ -256,7 +257,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): @@ -560,32 +584,56 @@ class MPIWGProject(CatalogAware,Folder): else: return False; + def setStartedAt(self,date): + """set the date of start, date should be in the form DD.MM.YYYY or MM.YYYY or YYYY""" + logging.info("DATE:"+repr(date)) + transformedDate=self.transformDate(date); + logging.info("transformed"+repr(transformedDate)) + if transformedDate is not None: + setattr(self,"startedAt",transformedDate) + return True; + else: + return False; def getCompletedAt(self): - """gibt das transformierte Datum zurŸck""" + """gibt das transformierte Datum zurueck, an dem das Projekt beendet wurde.""" date=getattr(self,'completedAt','') if date: return self.reTransformDate(date); else: return ''; + def getStartedAt(self): + """gibt das transformierte Datum zurŸck, an dem Projekt begonnen wurde.""" + date=getattr(self,'startedAt','') + if date: + return self.reTransformDate(date); + else: + return ''; + def reTransformDate(self,date): """transformiert , transformdate zurueck""" year=int(date/10000) month=int((date-year*10000)/100) day=int((date-year*10000-month*100)) + if (day==0) and (month==0): + return """%s"""%year; + if day==0 : + return """%s.%s"""%(month,year); + return """%s.%s.%s"""%(day,month,year); def transformDate(self,date): """transformiert ein Datum von DD.MM.YYYY, MM.YYYY,YYYY nach YYYYMMDD, alle nicht angebebenn Werte werden auf 0 gesetzt, es wird null zurŸckgegeben falls das Datum ungueltig ist""" - - if (date=="" ) : - return ""; - + if (date==None): return None; + + if (date.lstrip().rstrip()=="" ) : + return ""; + splitted=date.split(".") length=len(splitted) year=0 @@ -1028,6 +1076,8 @@ class MPIWGProject(CatalogAware,Folder): #finde Mitarbeiter mit den entsprechenden Name logging.info("Search: %s %s %s"%(name,firstname,lastname)) + firstname=firstname.capitalize() + lastname=lastname.capitalize() cataloggedNames=self.MembersCatalog(firstName=firstname,lastName=lastname) #Teste ob die ensprechenden Namen schon der Liste zu geordnet sind @@ -1060,6 +1110,10 @@ class MPIWGProject(CatalogAware,Folder): completedAt = self.REQUEST.get('completedAt') if not self.setCompletedAt(completedAt): RESPONSE.redirect('./editMPIWGBasisEditor?error="dateWrong') + + startedAt = self.REQUEST.get('startedAt') + if not self.setStartedAt(startedAt): + RESPONSE.redirect('./editMPIWGBasisEditor?error="dateWrong') if self.REQUEST.has_key('historicalNames'): self.en.changeHistoricalNames(self.getId(),self.REQUEST['historicalNames'].split("\n"))