--- MPIWGWeb/MPIWGStaff.py 2008/08/27 12:12:48 1.10.2.52 +++ MPIWGWeb/MPIWGStaff.py 2008/09/03 11:13:44 1.10.2.56 @@ -21,6 +21,9 @@ from AccessControl import ClassSecurityI import time import logging import email +import re + +from MPIWGHelper import * #ersetzt logging def logger(txt,method,txt2): """logging""" @@ -97,12 +100,19 @@ class MPIWGStaff(CatalogAware,ZSQLExtend logging.error(email.Utils.formatdate()+' GMT') RESPONSE.redirect(url+addStr%timeStamp) + def getKeyUTF8(self): + """get db_key utf8""" + return utf8ify(self.getKey()) + def getKey(self): """get database key""" if hasattr(self,'key'): - return self.key.lower() + #logging.error("SAVED KEY:%s"%self.key) + return unicodify(self.key.lower()) + #return self.key.lower() #fuer alt faelle ohne key + #logging.error("NEW KEY:%s"%(self.firstName+'_'+self.lastName).lower().replace(' ','')) return (self.firstName+'_'+self.lastName).lower().replace(' ','') def getConnectionObj(self):#ueberschreibe connection id methode @@ -303,11 +313,32 @@ class MPIWGStaff(CatalogAware,ZSQLExtend """ return self.id - def harvest_page(self): + def harvest_page_old(self,context=None): """geharvestete seite = verschlankte version von members_main""" - pt = getTemplate(self, "harvest_members_main") + #pt = getTemplate(self, "harvest_members_main") + + if not self.isPublished(): + return "" + if not context: + context=self + + + ext=getattr(self,"harvest_members_main",None) + if ext: + return getattr(self,ext.getId())() + + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','harvest_members_main')).__of__(context) + + return pt() + def harvest_page(self): + """harvest""" + if not self.isPublished(): + return "" + return getattr(self.en.staff.members,self.getId()).index_html() + + def index_html(self): """show homepage""" pt = getTemplate(self, "members_main") @@ -391,6 +422,33 @@ class MPIWGStaff(CatalogAware,ZSQLExtend return style + def getLabel(self): + """returns a label for this object""" + return self.title + + def getBreadcrumbs(self): + """return list of breadcrumbs from here to the root""" + crumbs = [] + # skip direct parent Folder /members/ + parent = self.aq_parent.aq_parent + # get parents breadcrumbs + logging.debug("getbreadcrumbs-: title=%s self=%s parent=%s"%(self.title, repr(self), repr(parent))) + if hasattr(parent, 'getBreadcrumbs'): + logging.debug("getbreadcrumbs: recurse to %s"%parent) + crumbs = parent.getBreadcrumbs() + + # try to get acquisition URL from parent + if hasattr(parent, 'absolute_url'): + baseUrl = "%s/%s/"%(parent.absolute_url(), 'members') + else: + baseUrl = "/en/staff/members/" + + # add this + crumbs.append((self.getLabel(), baseUrl+self.getId(), self)) + + return crumbs + + def changeCurrentWork(self,current_work,key,publish="yes",RESPONSE=None): """change current work""" @@ -531,13 +589,13 @@ class MPIWGStaff(CatalogAware,ZSQLExtend ret="" founds=self.ZSQLInlineSearch(_table='research_interest',key_main=person.key) if founds: - ret="Research interests:

" + ret="

Research interests:


" for found in self.sortPriority(founds): ret+=found.interest+"
" if (person.current_work) and (not person.current_work==""): - ret="Current work:

" + ret="

Current work:


" ret+=person.current_work+"
" @@ -666,7 +724,7 @@ class MPIWGStaff(CatalogAware,ZSQLExtend self.sortingMode=sortingMode if RESPONSE and REQUEST: - REQUEST.self.redirect(RESPONSE,REQUEST['HTTP_REFERER']) + self.redirect(RESPONSE,REQUEST['HTTP_REFERER']) return True @@ -693,6 +751,7 @@ class MPIWGStaff(CatalogAware,ZSQLExtend self.redirect(RESPONSE,self.REQUEST['HTTP_REFERER']) + security.declareProtected('View management screens','addPublications') def addPublications(self,submit=None,REQUEST=None,noredirect=None,RESPONSE=None): """add publications""" @@ -807,12 +866,12 @@ class MPIWGStaff(CatalogAware,ZSQLExtend tmp.sort(sort) return tmp - def deleteField(self,table,oid): + def deleteField(self,table,oid,RESPONSE=None): """delete entry""" query="DELETE FROM %s WHERE oid = '%s'"%(table,oid) self.ZSQLQuery(query) - self.REQUEST.self.redirect(RESPONSE,self.REQUEST['HTTP_REFERER']) + self.redirect(RESPONSE,self.REQUEST['HTTP_REFERER']) def manage_addMPIWGStaffForm(self):