--- MPIWGWeb/MPIWGProjects.py 2007/04/18 10:03:13 1.47.2.71 +++ MPIWGWeb/MPIWGProjects.py 2007/05/02 18:38:41 1.47.2.77 @@ -330,15 +330,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 = {} @@ -813,7 +820,7 @@ class MPIWGRoot(ZSQLExtendFolder): pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','showNewDBEntries.zpt')).__of__(self) return pt(newEntries=res) - def createNewStaffObjects(self): + def createNewStaffObjects(self,RESPONSE): """create new staff object""" memberFolder=getattr(self,'members') @@ -823,15 +830,17 @@ class MPIWGRoot(ZSQLExtendFolder): ret="" for key in arg_k: k=self.urlUnQuote(key) - logging.error("XXXXX %s"%k) + qstr="select * from personal_www where key=%s"%self.ZSQLQuote(k) res=self.ZSQLQuery(qstr)[0] if args[key]!="": #email-adresse wurde eingetragen #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: @@ -844,6 +853,7 @@ class MPIWGRoot(ZSQLExtendFolder): if created: qstr="update personal_www set web_object_created='yes',e_mail='%s' where key=%s"%(e_mail,self.ZSQLQuote(k)) self.ZSQLQuery(qstr) + return ret @@ -888,8 +898,11 @@ class MPIWGRoot(ZSQLExtendFolder): columns=data.keys() for x in ignoreEntries: - columns.remove(x) - + 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) + except: + pass insert=[] @@ -911,6 +924,8 @@ class MPIWGRoot(ZSQLExtendFolder): # self.ZSQLQuery(queryStr) return True,msg + + def updatePersonalwww_doIt(self): """do the update""" args=self.REQUEST.form @@ -921,8 +936,8 @@ class MPIWGRoot(ZSQLExtendFolder): # generate the new entry if news and (len(news)>0): - ret+="

HinzugefŸgt

" - ret+="

NeueintrŠge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.

" + ret+="

Hinzugefügt

" + ret+="

Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.

" ret+="" # update if len(conflicts.keys())>0: - ret+="

Bei €nderung belassen

" - ret+="

Bitte die Filemaker-db entsprehchend Šndern

" - + ret+="

Änderung des Benutzers übernehmen

" + ret+="

Wenn nötig in Filemaker-db ändern:

" + # konflicte for conflict in conflicts.keys(): ignoreEntries=[] displayIgnored=[] @@ -960,23 +975,34 @@ class MPIWGRoot(ZSQLExtendFolder): ret+="" 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+"" + def updateInstitutsbiliography(self): """update the Institutsbibliogrpahy""" self.upDateSQL('personalwww.xml') return "DONE" + + def updatePersonalwww_html(self): """update form for the homepages web form""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','updatePersonalwww.zpt')).__of__(self) return pt() + def updatePersonalwww(self,uploadfile): """update personalwww @param uploadfile: file handle auf das file """ - dsn="dbname=personalwww" + dsn=self.getConnectionObj().connection_string + #dsn="dbname=personalwww" resultSet=updatePersonalWWW.importFMPXML(uploadfile) news,conflicts=updatePersonalWWW.checkImport(dsn, resultSet) @@ -995,7 +1021,7 @@ class MPIWGRoot(ZSQLExtendFolder): try: - self.MembersCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1']) + self.ProjectCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1']) except: logger("MPIWG Root (updatehomepage)",logging.WARNING," %s %s"%sys.exc_info()[:2]) @@ -1247,7 +1273,7 @@ class MPIWGRoot(ZSQLExtendFolder): @param key: (optional) Key zur Idenfikation des Benutzer @param date: (optional) Version die zum Zeitpunkt date gueltig war """ - # TODO: Die ganze Lšsung + # TODO: Die ganze Loesung def sortP(x,y): """sort by sorting number""" #print x.xdata_05,y.xdata_05 @@ -2518,4 +2544,4 @@ def manage_addMPIWGProject(self,id,RESPO if RESPONSE is not None: - RESPONSE.redirect('manage_main') \ No newline at end of file + RESPONSE.redirect('manage_main')