--- MPIWGWeb/MPIWGProjects.py 2008/08/26 15:01:41 1.47.2.90
+++ MPIWGWeb/MPIWGProjects.py 2008/08/28 19:24:47 1.47.2.93
@@ -18,7 +18,7 @@ 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
@@ -39,7 +39,7 @@ 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.
+# die folgenden Klassen sind jetzt in einzelne Files ausgelagert aus Kompatibilitaetsgruenden, bleiben die Klassen hier noch drin.
# Sonst funktionieren die alten Webseiten nicht mehr.
class MPIWGRoot(MPIWGRoot.MPIWGRoot):
@@ -51,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")
@@ -923,9 +939,9 @@ class MPIWGProject(CatalogAware,Folder):
if (text5=="
") or (text5=="
"):
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
+ #logging.debug("getcontent: field=%s filter=%s -> %s"%(field,filter,repr(text5)))
+ return unicodify(text5)
+ #return utf8ify(text5) # return as utf-8 byte string
def showImagesOfPage(self,imageUrl=None):
@@ -987,6 +1003,53 @@ class MPIWGProject(CatalogAware,Folder):
else:
return style
+ def getLabel(self):
+ """returns label (or title) of this project"""
+ l = self.getContent('xdata_07')
+ if l:
+ return l
+ l = self.getContent('WEB_title')
+ if l:
+ return l
+ return self.title
+
+ def getBreadcrumbs(self):
+ """return list of breadcrumbs from here to the root"""
+ crumbs = []
+ # skip direct parent Folder /projects/
+ parent = self.aq_parent.aq_parent
+ # get parents breadcrumbs
+ if hasattr(parent, 'getBreadcrumbs'):
+ crumbs = parent.getBreadcrumbs()
+
+ # try to get acquisition URL from parent
+ if hasattr(parent, 'absolute_url'):
+ baseUrl = "%s/%s/"%(parent.absolute_url(), 'projects')
+ else:
+ baseUrl = "/en/research/projects/"
+
+ # add in the internal project hierarchy
+ ct=self.getContexts(parents=self.getContent('xdata_05'))
+ # start with grandparents
+ ct.reverse()
+ for c in ct:
+ label = shortenString(c[0].getLabel(), 13)
+ crumbs.append((label, baseUrl+c[0].getId(), c[0]))
+
+ # add this project
+ crumbs.append((self.getLabel(), baseUrl+self.getId(), self))
+
+ return crumbs
+
+ def getRootProject(self):
+ """returns the current root (=top level) project"""
+ ct=self.getContexts(parents=self.getContent('xdata_05'))
+ if len(ct) > 0:
+ return ct[-1]
+ else:
+ return self
+
+
def preview(self,description):
"""preview"""
tmpPro=getattr(self,"previewTemplate",None)
@@ -1078,8 +1141,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={}