--- MPIWGWeb/MPIWGProjects.py 2007/04/19 13:32:35 1.47.2.74 +++ MPIWGWeb/MPIWGProjects.py 2008/06/18 11:29:25 1.47.2.80 @@ -110,6 +110,29 @@ def sortI(x,y): except: 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): """create a symbolic link to another page""" @@ -330,15 +353,22 @@ class MPIWGRoot(ZSQLExtendFolder): if not str: return "" if type(str) is StringType: - try: - return str.decode('utf-8') - except: - return str.decode('latin-1') + try: + return str.decode('utf-8') + except: + return str.decode('latin-1') else: - 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): """check the browsers request to find out the browser type""" bt = {} @@ -500,6 +530,8 @@ class MPIWGRoot(ZSQLExtendFolder): """returns the current section name""" root = self.absolute_url() url = self.REQUEST['URL'] + if not url: + return None path = string.replace(url, root, '') paths = path.split('/') if len(paths) > 0: @@ -830,21 +862,20 @@ class MPIWGRoot(ZSQLExtendFolder): #create the object e_mail=args[key] 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) obj=getattr(memberFolder,e_mail) obj.reindex_object() ret+="Created %s \n"%e_mail created=True except: - msg="Cannot create new user %s (%s %s)"%(e_mail,sys.exc_info()[0],sys.exc_info()[1]) logging.error(msg) ret+=msg+"\n" created=False 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) return ret @@ -917,6 +948,8 @@ class MPIWGRoot(ZSQLExtendFolder): # self.ZSQLQuery(queryStr) return True,msg + + def updatePersonalwww_doIt(self): """do the update""" args=self.REQUEST.form @@ -927,8 +960,8 @@ class MPIWGRoot(ZSQLExtendFolder): # generate the new entry if news and (len(news)>0): - ret+="
Neueintrge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.
" + ret+="Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.
" ret+="Neueintrge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.
" + ret+="Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.
" ret+="Bitte die Filemaker-db entsprehchend ndern
" + ret+="Wenn nötig in Filemaker-db ändern:
" # konflicte for conflict in conflicts.keys(): @@ -975,14 +1008,18 @@ class MPIWGRoot(ZSQLExtendFolder): self.updatePersonEntry(resultSet[key]) return ret+"