--- MPIWGWeb/MPIWGStaff.py 2008/06/24 07:55:05 1.10.2.38 +++ MPIWGWeb/MPIWGStaff.py 2008/08/20 12:24:29 1.10.2.44 @@ -8,6 +8,8 @@ from Products.ZSQLExtend.ZSQLExtend impo from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate from Products.ZCatalog.CatalogPathAwareness import CatalogAware +from Products.versionedFile.extVersionedFile import extVersionedFileFolder + import os import logging import bibliography @@ -64,7 +66,7 @@ def createNewDBEntry(self,publish_the_da queryStr="INSERT INTO personal_www (%s) VALUES (%s)"%(columnlist,insertStr) self.ZSQLQuery("SET DATESTYLE TO 'German'") self.ZSQLQuery(queryStr) - logging.error("QQQQ %s:"%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") @@ -109,7 +111,7 @@ class MPIWGStaff(CatalogAware,ZSQLExtend def updateDBEntry(self,publish_the_data,date_from,date_to,DBid=None,stay_at_mpiwg="",position="",abteilung=""): """zpddatedb""" if not DBid: - DBid=self.getDBId() + DBid=self.getDBId() self.ZSQLQuery("SET DATESTYLE TO 'German'") @@ -138,7 +140,70 @@ class MPIWGStaff(CatalogAware,ZSQLExtend if RESPONSE: RESPONSE.redirect("editPublications") + + def downloadCV(self,RESPONSE): + """download cv file""" + ob=self._getOb("downloadableFiles")._getOb("cv.pdf") + + RESPONSE.redirect(ob.absolute_url()+"/download") + + def getLastUpdateCV(self): + """getDate of Last Update""" + try: + ob=self._getOb("downloadableFiles")._getOb("cv.pdf") + return ob.getLastChangeDate() + except: + return "No file yet!" + def getLastUpdatePublications(self): + """getDate of Last Update""" + try: + ob=self._getOb("downloadableFiles")._getOb("publications.pdf") + return ob.getLastChangeDate() + except: + return "No file yet!" + def downloadPublications(self,RESPONSE): + """download publications""" + ob=self._getOb("downloadableFiles")._getOb("publications.pdf") + + RESPONSE.redirect(ob.absolute_url()+"/download") + + def changeDownloads(self,cv_pdf=None,cv_publish=None,publications_pdf=None,publications_publish=None,RESPONSE=None): + """"change the downloadable files""" + + if not hasattr(self,'downloadableFiles'): + + extFolder = extVersionedFileFolder() + extFolder.id = "downloadableFiles" + self._setObject(extFolder.id,extFolder) + + ob = self._getOb("downloadableFiles") + + if cv_publish: + self.cv_publish=cv_publish + + if publications_publish: + self.publications_publish=publications_publish + + if cv_pdf: + if not hasattr(ob,"cv.pdf"): + ob.addFile("",cv_pdf,newName="cv.pdf") + + else: + cvFile = getattr(ob,"cv.pdf") + cvFile.addContentObject("","",file=cv_pdf) + + if publications_pdf: + if not hasattr(ob,"publications.pdf"): + ob.addFile("",cv_pdf,newName="publications.pdf") + else: + cvFile = getattr(ob,"publications.pdf") + cvFile.addContentObject("","",file=publications_pdf) + + if RESPONSE: + RESPONSE.redirect(self.REQUEST['HTTP_REFERER']) + + def getPublishImage(self): """publish the image??, default no""" return getattr(self,'publishImage','no') @@ -148,17 +213,18 @@ class MPIWGStaff(CatalogAware,ZSQLExtend if file and not(file.filename==""): if self.getImageObj(): - self.getImageObj().updateImage(file,_rename=None,RESPONSE=None) + self.getImageObj().updateImage(file,_rename=None,RESPONSE=None) else: - # create new image object - xp = file.filename.rfind('.') - if xp > 0: - ext = file.filename[xp:] - fn = self.getId()+ext - logger("MPWIG STAFF", logging.INFO, "new filename: %s"%fn) - self.getImageFolder().addImage2(file,fileName=fn) - else: - logger("MPWIG STAFF", logging.ERROR, "uploaded filename %s has no extension!"%file.filename) + # create new image object + xp = file.filename.rfind('.') + if xp > 0: + ext = file.filename[xp:] + #fn = self.getId()+ext + fn = self.getId() + logger("MPWIG STAFF", logging.INFO, "new filename: %s"%fn) + self.getImageFolder().addImage2(file,fileName=fn) + else: + logger("MPWIG STAFF", logging.ERROR, "uploaded filename %s has no extension!"%file.filename) self.publishImage=publishImage @@ -172,7 +238,7 @@ class MPIWGStaff(CatalogAware,ZSQLExtend try: return self.getPhysicalRoot().www_neu.images.staff_images except: - logger("MPWIG STAFF", logging.ERROR, "image folder not found:"," has to be add /www_neu/staff_images") + logger("MPWIG STAFF", logging.ERROR, "image folder not found: has to be add /www_neu/staff_images") return None def getImageObj(self): @@ -305,6 +371,21 @@ class MPIWGStaff(CatalogAware,ZSQLExtend else: return style + + def changeCurrentWork(self,current_work,publish,key,RESPONSE=None): + """change current work""" + + query="UPDATE personal_www SET current_work =%s WHERE key='%s'" + + self.ZSQLQuery(query%(self.ZSQLQuote(current_work),key)) + + query="UPDATE personal_www SET current_work_p =%s WHERE key='%s'" + + self.ZSQLQuery(query%(self.ZSQLQuote(publish),key)) + + if RESPONSE: + RESPONSE.redirect("edit") + security.declareProtected('View management screens','changeResearch') def changeResearch(self,noredirect=None): """change the research entries""" @@ -371,7 +452,85 @@ class MPIWGStaff(CatalogAware,ZSQLExtend if RESPONSE: RESPONSE.redirect("editCV") + + + def getProfile(self): + """get the profile""" + founds=self.ZSQLInlineSearchU(_table='personal_www',key=self.getKey()) + html="""%s""" + if founds.profile and founds.profile != "": + + return html%founds.profile + else: + + return html%self.generateProfileForPerson(founds) + + def editProfile(self,oid=None,RESPONSE=None, kupu=None, preview=None): + """edit Profile, new entry replaces CD, current work and research interests""" + if (not oid): + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editProfile.zpt')).__of__(self) + return pt() + + + + + if preview: + pass + #TODO: not supported yet + #kupu=preview + # find content of body tags + + start=kupu.find("") + end=kupu.find("") + + newcontent= kupu[start+6:end] + + + + + if preview: + #TODO: not supported yet + if RESPONSE: + RESPONSE.redirect("editProfile") + + #return self.preview(newcontent) + + query="UPDATE personal_www SET profile=%s WHERE oid='%s'" + self.ZSQLQuery(query%(self.ZSQLQuote(newcontent),oid)) + logging.error("PROFILE:"+query%(self.ZSQLQuote(newcontent),oid)) + if RESPONSE: + RESPONSE.redirect("editProfile") + + + + def generateProfileForPerson(self,person): + """erzeugt ein automatisches Profil aus den alten Eintraegen CV, Current work, und research interests""" + + ret="" + founds=self.ZSQLInlineSearch(_table='research_interest',key_main=person.key) + if founds: + ret="Research interests:

" + for found in self.sortPriority(founds): + ret+=found.interest+"
" + + founds=self.ZSQLInlineSearch(_table='current_work',key_main=person.key) + if founds: + ret="Current work:

" + for found in self.sortPriority(founds): + ret+=found.current+"
" + + ret+="
" + ret+=self.formatAscii(person.cv) + + return ret + security.declareProtected('View management screens','editDownloads') + def editDownloads(self): + """editiere die Downloads von der Webseite""" + + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editDownloads.zpt')).__of__(self) + return pt() + security.declareProtected('View management screens','editAwards') def editAwards(self,awards=None,oid=None,RESPONSE=None): """edit a awards""" @@ -443,7 +602,7 @@ class MPIWGStaff(CatalogAware,ZSQLExtend bookId="b%06i" % newId self.ZSQLAdd(argv,_table="bibliography",reference_type=_docType,id=bookId) - logging.info("XXXXXXXXXXXXYYYYYYYYYY") + self.ZSQLAdd(_useRequest=False,_table="publications",id_gen_bib=bookId,key_main=self.getDBId(),publish='yes') self.updatePublicationDB(personId=self.getDBId()) @@ -525,7 +684,6 @@ class MPIWGStaff(CatalogAware,ZSQLExtend if not (type(entries) is ListType): entries=[entries] - logging.info("XXXXXXXXXXXXXXXXXXXXXXX") for bibId in entries: query="INSERT INTO %s " % "publications"