--- MPIWGWeb/MPIWGProjects.py 2008/06/24 11:16:26 1.47.2.84 +++ MPIWGWeb/MPIWGProjects.py 2008/08/22 06:09:28 1.47.2.87 @@ -1,17 +1,15 @@ """This contains the class MPIWG Projects for organizing and maintaining the different project pages +$author dwinter - last change 26.06.2008 + """ from Products.PageTemplates.PageTemplateFile import PageTemplateFile -from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate -from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder from Products.ZCatalog.CatalogPathAwareness import CatalogAware from OFS.Image import Image from Globals import package_home import urllib -import MPIWGStaff -import string import re import os from types import * @@ -19,19 +17,20 @@ import logging import xmlhelper # Methoden zur Verwaltung der projekt xml from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder -from Products.ZSQLMethods.SQL import SQLConnectionIDs + from AccessControl import ClassSecurityInfo from bibliography import * import time -import xml.dom.minidom +#import xml.dom.minidom import sys -from Ft.Xml.XPath import Evaluate -from Ft.Xml.XPath.Context import Context -from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print -from Ft.Xml import EMPTY_NAMESPACE -import copy -import updatePersonalWWW -import MPIWGStaff +#from Ft.Xml.XPath import Evaluate +#from Ft.Xml.XPath.Context import Context +#from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print +#from Ft.Xml import EMPTY_NAMESPACE +#import copy +#import updatePersonalWWW + +#import MPIWGStaff from MPIWGHelper import * @@ -39,6 +38,9 @@ import MPIWGRoot import MPIWGLink import MPIWGTemplate +# die folgenden Klassen sind jetzt in einzelne Files ausgelagert aus KompatibilitŠtsgrŸnden, bleiben die Klassen hier noch drin. +# Sonst funktionieren die alten Webseiten nicht mehr. + class MPIWGRoot(MPIWGRoot.MPIWGRoot): """depricated""" @@ -475,7 +477,7 @@ class MPIWGProject(CatalogAware,Folder): new.append(split) except: new.append(split) - return string.join(new) + return " ".join(new) @@ -558,32 +560,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 @@ -1026,6 +1052,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 @@ -1058,6 +1086,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")) @@ -1115,14 +1147,14 @@ class MPIWGProject(CatalogAware,Folder): if type(disciplines) is StringType: self.xdata_09=disciplines else: - self.xdata_09=string.join(disciplines,";") + self.xdata_09=";".join(disciplines) else: self.xdata_09="" if themes: if type(themes) is StringType: self.xdata_10=themes else: - self.xdata_10=string.join(themes,";") + self.xdata_10=";".join(themes) else: self.xdata_10=""