|
|
| version 1.47.2.84, 2008/06/24 11:16:26 | version 1.47.2.90, 2008/08/26 15:01:41 |
|---|---|
| Line 1 | Line 1 |
| """This contains the class MPIWG Projects | """This contains the class MPIWG Projects |
| for organizing and maintaining the different project pages | for organizing and maintaining the different project pages |
| $author dwinter - last change 26.06.2008 | |
| """ | """ |
| from Products.PageTemplates.PageTemplateFile import PageTemplateFile | from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
| from Products.PageTemplates.PageTemplate import PageTemplate | |
| from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate | from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate |
| from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder | |
| from Products.ZCatalog.CatalogPathAwareness import CatalogAware | from Products.ZCatalog.CatalogPathAwareness import CatalogAware |
| from Products.MPIWGBibliography.BibliographyManager import BibliographyManager | |
| from OFS.Image import Image | from OFS.Image import Image |
| from Globals import package_home | from Globals import package_home |
| import urllib | import urllib |
| import MPIWGStaff | |
| import string | |
| import re | import re |
| import os | import os |
| from types import * | from types import * |
| Line 19 import logging | Line 18 import logging |
| import xmlhelper # Methoden zur Verwaltung der projekt xml | import xmlhelper # Methoden zur Verwaltung der projekt xml |
| from OFS.SimpleItem import SimpleItem | from OFS.SimpleItem import SimpleItem |
| from OFS.Folder import Folder | from OFS.Folder import Folder |
| from Products.ZSQLMethods.SQL import SQLConnectionIDs | |
| from AccessControl import ClassSecurityInfo | from AccessControl import ClassSecurityInfo |
| from bibliography import * | from bibliography import * |
| import time | import time |
| import xml.dom.minidom | #import xml.dom.minidom |
| import sys | import sys |
| from Ft.Xml.XPath import Evaluate | #from Ft.Xml.XPath import Evaluate |
| from Ft.Xml.XPath.Context import Context | #from Ft.Xml.XPath.Context import Context |
| from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print | #from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print |
| from Ft.Xml import EMPTY_NAMESPACE | #from Ft.Xml import EMPTY_NAMESPACE |
| import copy | #import copy |
| import updatePersonalWWW | #import updatePersonalWWW |
| import MPIWGStaff | |
| #import MPIWGStaff | |
| from MPIWGHelper import * | from MPIWGHelper import * |
| Line 39 import MPIWGRoot | Line 39 import MPIWGRoot |
| import MPIWGLink | import MPIWGLink |
| import MPIWGTemplate | 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): | class MPIWGRoot(MPIWGRoot.MPIWGRoot): |
| """depricated""" | """depricated""" |
| Line 254 class MPIWGProject(CatalogAware,Folder): | Line 257 class MPIWGProject(CatalogAware,Folder): |
| pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGProject_managePublicationsForm.zpt')).__of__(self) | pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGProject_managePublicationsForm.zpt')).__of__(self) |
| return pt() | 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): | def getPublications(self): |
| """get all Publications""" | """get all Publications""" |
| Line 475 class MPIWGProject(CatalogAware,Folder): | Line 501 class MPIWGProject(CatalogAware,Folder): |
| new.append(split) | new.append(split) |
| except: | except: |
| new.append(split) | new.append(split) |
| return string.join(new) | return " ".join(new) |
| Line 558 class MPIWGProject(CatalogAware,Folder): | Line 584 class MPIWGProject(CatalogAware,Folder): |
| else: | else: |
| return False; | 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): | def getCompletedAt(self): |
| """gibt das transformierte Datum zurŸck""" | """gibt das transformierte Datum zurueck, an dem das Projekt beendet wurde.""" |
| date=getattr(self,'completedAt','') | date=getattr(self,'completedAt','') |
| if date: | if date: |
| return self.reTransformDate(date); | return self.reTransformDate(date); |
| else: | else: |
| return ''; | 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): | def reTransformDate(self,date): |
| """transformiert , transformdate zurueck""" | """transformiert , transformdate zurueck""" |
| year=int(date/10000) | year=int(date/10000) |
| month=int((date-year*10000)/100) | month=int((date-year*10000)/100) |
| day=int((date-year*10000-month*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); | return """%s.%s.%s"""%(day,month,year); |
| Line 578 class MPIWGProject(CatalogAware,Folder): | Line 627 class MPIWGProject(CatalogAware,Folder): |
| """transformiert ein Datum von DD.MM.YYYY, MM.YYYY,YYYY nach YYYYMMDD, alle nicht angebebenn Werte | """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""" | werden auf 0 gesetzt, es wird null zurŸckgegeben falls das Datum ungueltig ist""" |
| if (date=="" ) : | |
| return ""; | |
| if (date==None): | if (date==None): |
| return None; | return None; |
| if (date.lstrip().rstrip()=="" ) : | |
| return ""; | |
| splitted=date.split(".") | splitted=date.split(".") |
| length=len(splitted) | length=len(splitted) |
| year=0 | year=0 |
| Line 1026 class MPIWGProject(CatalogAware,Folder): | Line 1076 class MPIWGProject(CatalogAware,Folder): |
| #finde Mitarbeiter mit den entsprechenden Name | #finde Mitarbeiter mit den entsprechenden Name |
| logging.info("Search: %s %s %s"%(name,firstname,lastname)) | logging.info("Search: %s %s %s"%(name,firstname,lastname)) |
| firstname=firstname.capitalize() | |
| lastname=lastname.capitalize() | |
| cataloggedNames=self.MembersCatalog(firstName=firstname,lastName=lastname) | cataloggedNames=self.MembersCatalog(firstName=firstname,lastName=lastname) |
| #Teste ob die ensprechenden Namen schon der Liste zu geordnet sind | #Teste ob die ensprechenden Namen schon der Liste zu geordnet sind |
| Line 1059 class MPIWGProject(CatalogAware,Folder): | Line 1111 class MPIWGProject(CatalogAware,Folder): |
| if not self.setCompletedAt(completedAt): | if not self.setCompletedAt(completedAt): |
| RESPONSE.redirect('./editMPIWGBasisEditor?error="dateWrong') | 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'): | if self.REQUEST.has_key('historicalNames'): |
| self.en.changeHistoricalNames(self.getId(),self.REQUEST['historicalNames'].split("\n")) | self.en.changeHistoricalNames(self.getId(),self.REQUEST['historicalNames'].split("\n")) |
| Line 1115 class MPIWGProject(CatalogAware,Folder): | Line 1171 class MPIWGProject(CatalogAware,Folder): |
| if type(disciplines) is StringType: | if type(disciplines) is StringType: |
| self.xdata_09=disciplines | self.xdata_09=disciplines |
| else: | else: |
| self.xdata_09=string.join(disciplines,";") | self.xdata_09=";".join(disciplines) |
| else: | else: |
| self.xdata_09="" | self.xdata_09="" |
| if themes: | if themes: |
| if type(themes) is StringType: | if type(themes) is StringType: |
| self.xdata_10=themes | self.xdata_10=themes |
| else: | else: |
| self.xdata_10=string.join(themes,";") | self.xdata_10=";".join(themes) |
| else: | else: |
| self.xdata_10="" | self.xdata_10="" |