Diff for /MPIWGWeb/MPIWGProjects.py between versions 1.47.2.73 and 1.47.2.79

version 1.47.2.73, 2007/04/19 12:18:50 version 1.47.2.79, 2007/10/18 12:00:17
Line 110  def sortI(x,y): Line 110  def sortI(x,y):
     except:      except:
         return cmp(x[1],y[1])          return cmp(x[1],y[1])
   
   
   def unicodify(str):
       """decode str (utf-8 or latin-1 representation) into unicode object"""
       if not str:
           return ""
       if type(str) is StringType:
           try:
               return str.decode('utf-8')
           except:
               return str.decode('latin-1')
       else:
           return str
   
   def utf8ify(str):
       """encode unicode object or string into byte string in utf-8 representation"""
       if not str:
           return ""
       if type(str) is StringType:
           return str
       else:
           return str.encode('utf-8')
   
   
 class MPIWGLink(SimpleItem):  class MPIWGLink(SimpleItem):
     """create a symbolic link to another page"""      """create a symbolic link to another page"""
   
Line 335  class MPIWGRoot(ZSQLExtendFolder): Line 358  class MPIWGRoot(ZSQLExtendFolder):
         except:          except:
         return str.decode('latin-1')          return str.decode('latin-1')
         else:          else:
               
             return str              return str
   
   
       def getat(self,array,idx=0,default=None):
           """return array element idx or default (but no exception)"""
           if len(array) <= idx:
               return default
           else:
               return array[idx]
           
   
     def browserCheck(self):      def browserCheck(self):
     """check the browsers request to find out the browser type"""      """check the browsers request to find out the browser type"""
     bt = {}      bt = {}
Line 830  class MPIWGRoot(ZSQLExtendFolder): Line 860  class MPIWGRoot(ZSQLExtendFolder):
                 #create the object                  #create the object
                 e_mail=args[key]                  e_mail=args[key]
                 try:                  try:
                     newObj=MPIWGStaff.MPIWGStaff(e_mail,res.last_name.encode('utf-8'),res.first_name.encode('utf-8'),k)                      newObj=MPIWGStaff.MPIWGStaff(e_mail,res.last_name,res.first_name,k)
                     memberFolder._setObject(e_mail,newObj)                      memberFolder._setObject(e_mail,newObj)
                     obj=getattr(memberFolder,e_mail)                      obj=getattr(memberFolder,e_mail)
                     obj.reindex_object()                      obj.reindex_object()
                     ret+="Created %s \n"%e_mail                      ret+="Created %s \n"%e_mail
                     created=True                      created=True
                 except:                  except:
   
                     msg="Cannot create new user %s (%s %s)"%(e_mail,sys.exc_info()[0],sys.exc_info()[1])                      msg="Cannot create new user %s (%s %s)"%(e_mail,sys.exc_info()[0],sys.exc_info()[1])
                     logging.error(msg)                      logging.error(msg)
                     ret+=msg+"\n"                      ret+=msg+"\n"
                     created=False                      created=False
                                   
                 if created:                  if created:
                     qstr="update personal_www set web_object_created='yes',e_mail='%s' where key=%s"%(e_mail,self.ZSQLQuote(k))                      qstr="update personal_www set web_object_created='yes',e_mail='%s@mpiwg-berlin.mpg.de' where key=%s"%(e_mail,self.ZSQLQuote(k))
                     self.ZSQLQuery(qstr)                      self.ZSQLQuery(qstr)
                   
         return ret          return ret
Line 891  class MPIWGRoot(ZSQLExtendFolder): Line 920  class MPIWGRoot(ZSQLExtendFolder):
                     
         columns=data.keys()          columns=data.keys()
         for x in ignoreEntries:          for x in ignoreEntries:
               logging.info("ign rem: %s"%x)
               try: #falls in ignore entries felder sind, die nicht in columns sind, fange den fehler ab
             columns.remove(x)              columns.remove(x)
                           except:
                   pass
   
                   
         insert=[]          insert=[]
Line 914  class MPIWGRoot(ZSQLExtendFolder): Line 946  class MPIWGRoot(ZSQLExtendFolder):
         #    self.ZSQLQuery(queryStr)          #    self.ZSQLQuery(queryStr)
                   
         return True,msg          return True,msg
   
   
     def updatePersonalwww_doIt(self):      def updatePersonalwww_doIt(self):
         """do the update"""          """do the update"""
         args=self.REQUEST.form          args=self.REQUEST.form
Line 924  class MPIWGRoot(ZSQLExtendFolder): Line 958  class MPIWGRoot(ZSQLExtendFolder):
         # generate the new entry          # generate the new entry
               
         if news and (len(news)>0):          if news and (len(news)>0):
             ret+="<h2>HinzugefŸgt</h2>"              ret+="<h2>Hinzugef&uuml;gt</h2>"
             ret+="<p>NeueintrŠge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>"              ret+="<p>Neueintr&auml;ge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>"
             ret+="<ul>"              ret+="<ul>"
         for new in news:          for new in news:
               
Line 937  class MPIWGRoot(ZSQLExtendFolder): Line 971  class MPIWGRoot(ZSQLExtendFolder):
                 else:                  else:
                     ret+="<li>OK: %s"%(new.encode('utf-8'))                      ret+="<li>OK: %s"%(new.encode('utf-8'))
         if news and (len(news)>0):          if news and (len(news)>0):
             ret+="<p>NeueintrŠge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>"              ret+="<p>Neueintr&auml;ge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>"
             ret+="</ul>"                   ret+="</ul>"     
                   
         # update          # update
   
         if len(conflicts.keys())>0:          if len(conflicts.keys())>0:
             ret+="<h2>Bei €nderung belassen</h2>"              ret+="<h2>&Auml;nderung des Benutzers &uuml;bernehmen</h2>"
             ret+="<p>Bitte die Filemaker-db entsprehchend Šndern</p>"              ret+="<p>Wenn n&ouml;tig in Filemaker-db &auml;ndern:</p>"
               
                           
           # konflicte   
         for conflict in conflicts.keys():          for conflict in conflicts.keys():
             ignoreEntries=[]              ignoreEntries=[]
             displayIgnored=[]              displayIgnored=[]
Line 964  class MPIWGRoot(ZSQLExtendFolder): Line 998  class MPIWGRoot(ZSQLExtendFolder):
                                   
             self.updatePersonEntry(resultSet[conflict],ignoreEntries=ignoreEntries)              self.updatePersonEntry(resultSet[conflict],ignoreEntries=ignoreEntries)
                           
            # rest
           cl=list(conflicts.keys())
           
           for key in resultSet.keys():
                if key not in cl:
                    self.updatePersonEntry(resultSet[key])
         return ret+"</body></html>"          return ret+"</body></html>"
                                             
   
     def updateInstitutsbiliography(self):      def updateInstitutsbiliography(self):
         """update the Institutsbibliogrpahy"""          """update the Institutsbibliogrpahy"""
         self.upDateSQL('personalwww.xml')          self.upDateSQL('personalwww.xml')
         return "<html><body>DONE</body></html>"          return "<html><body>DONE</body></html>"
   
   
     def updatePersonalwww_html(self):      def updatePersonalwww_html(self):
         """update form for the homepages web form"""          """update form for the homepages web form"""
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','updatePersonalwww.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','updatePersonalwww.zpt')).__of__(self)
         return pt()          return pt()
           
       
     def updatePersonalwww(self,uploadfile):      def updatePersonalwww(self,uploadfile):
         """update personalwww          """update personalwww
         @param uploadfile: file handle auf das file          @param uploadfile: file handle auf das file
Line 1251  class MPIWGRoot(ZSQLExtendFolder): Line 1295  class MPIWGRoot(ZSQLExtendFolder):
         @param key: (optional) Key zur Idenfikation des Benutzer          @param key: (optional) Key zur Idenfikation des Benutzer
         @param date: (optional) Version die zum Zeitpunkt date gueltig war          @param date: (optional) Version die zum Zeitpunkt date gueltig war
         """          """
         # TODO: Die ganze Lšsung          # TODO: Die ganze Loesung
         def sortP(x,y):          def sortP(x,y):
             """sort by sorting number"""              """sort by sorting number"""
             #print x.xdata_05,y.xdata_05              #print x.xdata_05,y.xdata_05
Line 1573  class MPIWGProject(CatalogAware,Folder): Line 1617  class MPIWGProject(CatalogAware,Folder):
     meta_type='MPIWGProject'      meta_type='MPIWGProject'
     default_catalog='ProjectCatalog'      default_catalog='ProjectCatalog'
   
       def decode(self,str):
           """return unicode object"""
           return unicodify(str)
     
     def sortedByPlace(self,metatype):      def sortedByPlace(self,metatype):
         """find metatype and sort by place"""          """find metatype and sort by place"""
Line 2259  class MPIWGProject(CatalogAware,Folder): Line 2306  class MPIWGProject(CatalogAware,Folder):
     if (text5=="<br>") or (text5=="<br/>"):      if (text5=="<br>") or (text5=="<br/>"):
         text5=""          text5=""
   
         return text5.encode('utf-8')      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):      def showImagesOfPage(self,imageUrl=None):
         """show Images of project"""          """show Images of project"""

Removed from v.1.47.2.73  
changed lines
  Added in v.1.47.2.79


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