--- MPIWGWeb/MPIWGStaff.py 2008/08/27 12:12:48 1.10.2.52 +++ MPIWGWeb/MPIWGStaff.py 2008/09/05 14:08:24 1.10.2.57 @@ -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""" @@ -53,8 +56,8 @@ def createNewDBEntry(self,publish_the_da return False,"ERROR:key%s already exists"%key #eintragen - columnlist="""publish_the_data,key,last_name,first_name,title,status,e_mail,e_mail_p,date_from,date_to,department,home_inst,funded_by,e_mail2,date_stay_at_mpiwg,web_object_created,"group" """ - insertTuple=(publish_the_data,key,name,vorname,title,position,e_mail,e_mail_p,date_from,date_to,abteilung,heimat_inst,funded_by,e_mail2,stay_at_mpiwg,web_object_created,group) + columnlist="""publish_the_data,key,last_name,first_name,title,status,e_mail,e_mail_p,date_from,date_to,department,home_inst,funded_by,e_mail2,date_stay_at_mpiwg,web_object_created,"group",current_work,current_work_p """ + insertTuple=(publish_the_data,key,name,vorname,title,position,e_mail,e_mail_p,date_from,date_to,abteilung,heimat_inst,funded_by,e_mail2,stay_at_mpiwg,web_object_created,group,current_work,"yes") insert=[] for element in insertTuple: @@ -69,10 +72,10 @@ def createNewDBEntry(self,publish_the_da self.ZSQLQuery(queryStr) logging.info("QQQQ %s:"%queryStr) #currentwork - if not (current_work==""): - queryStr="INSERT INTO current_work (key_main,current,publish) VALUES ('%s',%s,'%s')"%(key,self.ZSQLQuote(current_work),"yes") + #if not (current_work==""): + # queryStr="INSERT INTO current_work (key_main,current,publish) VALUES ('%s',%s,'%s')"%(key,self.ZSQLQuote(current_work),"yes") - self.ZSQLQuery(queryStr) + # self.ZSQLQuery(queryStr) return True,msg class MPIWGStaff(CatalogAware,ZSQLExtendFolder): @@ -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):