Diff for /MPIWGWeb/MPIWGStaff.py between versions 1.10.2.33 and 1.10.2.43

version 1.10.2.33, 2007/04/18 10:03:13 version 1.10.2.43, 2008/08/20 09:40:57
Line 8  from Products.ZSQLExtend.ZSQLExtend impo Line 8  from Products.ZSQLExtend.ZSQLExtend impo
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 from Products.ZCatalog.CatalogPathAwareness import CatalogAware  from Products.ZCatalog.CatalogPathAwareness import CatalogAware
   from Products.versionedFile.extVersionedFile import extVersionedFileFolder
   
 import os  import os
 import logging  import logging
 import bibliography  import bibliography
Line 64  def createNewDBEntry(self,publish_the_da Line 66  def createNewDBEntry(self,publish_the_da
         queryStr="INSERT INTO personal_www (%s) VALUES (%s)"%(columnlist,insertStr)          queryStr="INSERT INTO personal_www (%s) VALUES (%s)"%(columnlist,insertStr)
         self.ZSQLQuery("SET DATESTYLE TO 'German'")          self.ZSQLQuery("SET DATESTYLE TO 'German'")
         self.ZSQLQuery(queryStr)          self.ZSQLQuery(queryStr)
         logging.error("QQQQ %s:"%queryStr)          logging.info("QQQQ %s:"%queryStr)
         #currentwork          #currentwork
         if not (current_work==""):          if not (current_work==""):
             queryStr="INSERT INTO current_work (key_main,current,publish) VALUES ('%s',%s,'%s')"%(key,self.ZSQLQuote(current_work),"yes")              queryStr="INSERT INTO current_work (key_main,current,publish) VALUES ('%s',%s,'%s')"%(key,self.ZSQLQuote(current_work),"yes")
Line 86  class MPIWGStaff(CatalogAware,ZSQLExtend Line 88  class MPIWGStaff(CatalogAware,ZSQLExtend
             return self.key.lower()              return self.key.lower()
                   
         #fuer alt faelle ohne key          #fuer alt faelle ohne key
         return (self.firstName+'_'+self.lastName).lower()          return (self.firstName+'_'+self.lastName).lower().replace(' ','')
                   
     def getConnectionObj(self):#ueberschreibe connection id methode          def getConnectionObj(self):#ueberschreibe connection id methode    
                     
Line 95  class MPIWGStaff(CatalogAware,ZSQLExtend Line 97  class MPIWGStaff(CatalogAware,ZSQLExtend
     def isPublished(self):      def isPublished(self):
         """gib publications status aus der datenbank aus"""          """gib publications status aus der datenbank aus"""
         key=self.getKey()          key=self.getKey()
         query="select count(publish_the_data) from personal_www where key='%s' and publish_the_data='yes'"%key          query="select count(publish_the_data) from personal_www where lower(key)='%s' and publish_the_data='yes'"%key
                   
         res = self.ZSQLQuery(query)          res = self.ZSQLQuery(query)
                   
Line 139  class MPIWGStaff(CatalogAware,ZSQLExtend Line 141  class MPIWGStaff(CatalogAware,ZSQLExtend
             RESPONSE.redirect("editPublications")              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):      def getPublishImage(self):
         """publish the image??, default no"""          """publish the image??, default no"""
         return getattr(self,'publishImage','no')          return getattr(self,'publishImage','no')
Line 154  class MPIWGStaff(CatalogAware,ZSQLExtend Line 219  class MPIWGStaff(CatalogAware,ZSQLExtend
         xp = file.filename.rfind('.')          xp = file.filename.rfind('.')
         if xp > 0:          if xp > 0:
             ext = file.filename[xp:]              ext = file.filename[xp:]
             fn = self.getId()+ext                      #fn = self.getId()+ext
                       fn = self.getId()
             logger("MPWIG STAFF", logging.INFO, "new filename: %s"%fn)              logger("MPWIG STAFF", logging.INFO, "new filename: %s"%fn)
             self.getImageFolder().addImage2(file,fileName=fn)              self.getImageFolder().addImage2(file,fileName=fn)
         else:          else:
Line 172  class MPIWGStaff(CatalogAware,ZSQLExtend Line 238  class MPIWGStaff(CatalogAware,ZSQLExtend
         try:          try:
             return self.getPhysicalRoot().www_neu.images.staff_images              return self.getPhysicalRoot().www_neu.images.staff_images
         except:           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              return None
                   
     def getImageObj(self):      def getImageObj(self):
Line 216  class MPIWGStaff(CatalogAware,ZSQLExtend Line 282  class MPIWGStaff(CatalogAware,ZSQLExtend
         self.firstName=firstName          self.firstName=firstName
         self.key=key          self.key=key
   
       def getPersonID(self):
           """gibt den ID fuer die Person zurueck"
           im Moment ist personID = id, i.e. e-mail
           """
           return self.id
   
     def harvest_page(self):      def harvest_page(self):
         """geharvestete seite = verschlankte version von members_main"""          """geharvestete seite = verschlankte version von members_main"""
         pt = getTemplate(self, "harvest_members_main")          pt = getTemplate(self, "harvest_members_main")
Line 266  class MPIWGStaff(CatalogAware,ZSQLExtend Line 338  class MPIWGStaff(CatalogAware,ZSQLExtend
         return pt()          return pt()
           
     security.declareProtected('View management screens','changeMPIWGStaff')      security.declareProtected('View management screens','changeMPIWGStaff')
     def changeMPIWGStaff(self,lastName,firstName,RESPONSE=None):      def changeMPIWGStaff(self,lastName,firstName,key=None,RESPONSE=None):
         """change it"""          """change it"""
         self.title="%s, %s"%(lastName,firstName)          self.title="%s, %s"%(lastName,firstName)
         self.lastName=lastName          self.lastName=lastName
         self.firstName=firstName          self.firstName=firstName
           if key:
               self.key = key
   
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
Line 297  class MPIWGStaff(CatalogAware,ZSQLExtend Line 371  class MPIWGStaff(CatalogAware,ZSQLExtend
         else:          else:
             return style                  return style    
   
   
     security.declareProtected('View management screens','changeResearch')      security.declareProtected('View management screens','changeResearch')
     def changeResearch(self,noredirect=None):      def changeResearch(self,noredirect=None):
         """change the research entries"""          """change the research entries"""
Line 364  class MPIWGStaff(CatalogAware,ZSQLExtend Line 439  class MPIWGStaff(CatalogAware,ZSQLExtend
          if RESPONSE:           if RESPONSE:
             RESPONSE.redirect("editCV")              RESPONSE.redirect("editCV")
   
       
       def getProfile(self):
           """get the profile"""
           founds=self.ZSQLInlineSearchU(_table='personal_www',key=self.getKey())
           html="""<html><body>%s</body></html>"""
           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("<body>")
            end=kupu.find("</body>")
            
            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: <br/><br/>"
           for found in self.sortPriority(founds):
               ret+=found.interest+"<br/>"
           
           founds=self.ZSQLInlineSearch(_table='current_work',key_main=person.key)
           if founds:
               ret="Current work: <br/><br/>"
           for found in self.sortPriority(founds):
               ret+=found.current+"<br/>"
       
           ret+="<br/>"
           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')          security.declareProtected('View management screens','editAwards')    
     def editAwards(self,awards=None,oid=None,RESPONSE=None):      def editAwards(self,awards=None,oid=None,RESPONSE=None):
          """edit a awards"""           """edit a awards"""
Line 435  class MPIWGStaff(CatalogAware,ZSQLExtend Line 588  class MPIWGStaff(CatalogAware,ZSQLExtend
             bookId="b%06i" % newId              bookId="b%06i" % newId
                           
             self.ZSQLAdd(argv,_table="bibliography",reference_type=_docType,id=bookId)              self.ZSQLAdd(argv,_table="bibliography",reference_type=_docType,id=bookId)
             self.ZSQLAdd(_table="publications",id_gen_bib=bookId,key_main=self.getDBId(),publish='yes')  
               self.ZSQLAdd(_useRequest=False,_table="publications",id_gen_bib=bookId,key_main=self.getDBId(),publish='yes')
             self.updatePublicationDB(personId=self.getDBId())              self.updatePublicationDB(personId=self.getDBId())
                           
                   
Line 479  class MPIWGStaff(CatalogAware,ZSQLExtend Line 633  class MPIWGStaff(CatalogAware,ZSQLExtend
         if mode=="year":          if mode=="year":
             return "year DESC"              return "year DESC"
         else:          else:
             return "mode"              return mode
                   
     def integer(self,value):      def integer(self,value):
         try:          try:
Line 516  class MPIWGStaff(CatalogAware,ZSQLExtend Line 670  class MPIWGStaff(CatalogAware,ZSQLExtend
         if not (type(entries) is ListType):          if not (type(entries) is ListType):
             entries=[entries]              entries=[entries]
                           
           
         for bibId in entries:           for bibId in entries: 
             query="INSERT INTO %s " % "publications"              query="INSERT INTO %s " % "publications"
             query+="(key_main,id_institutsbibliographie,publish) "              query+="(key_main,id_institutsbibliographie,publish) "

Removed from v.1.10.2.33  
changed lines
  Added in v.1.10.2.43


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>