# HG changeset patch # User casties # Date 1371224169 -7200 # Node ID 16d55695f1c8f662461fe8a0a473ac50baf490db # Parent 71c2d76f09b53e1a2b066dc8eaba51fcb3919cc5 fix updating staff entries through "Update personal homepages". (creating new entries doesn't work) diff -r 71c2d76f09b5 -r 16d55695f1c8 MPIWGRoot.py --- a/MPIWGRoot.py Fri Jun 14 15:49:53 2013 +0200 +++ b/MPIWGRoot.py Fri Jun 14 17:36:09 2013 +0200 @@ -355,8 +355,9 @@ return result,msg - def updatePersonEntry(self,data,ignoreEntries=None): - """update an person entry from data. but ignore all fields in ignore Entries""" + def updatePersonEntry(self,newdata,ignoreEntries=None): + """update an person entry from newdata. but ignore all fields in ignore Entries""" + data = newdata.copy() if ignoreEntries is None: ignoreEntries = [] @@ -364,43 +365,42 @@ logging.debug("updatePersonEntry: data=%s ignoreEntries=%s"%(repr(data),repr(ignoreEntries))) if data['date_to']=="": # wenn date_to leer - data['date_to']="date_none" + data['date_to']=None if data['date_from']=="": # wenn date_fromleer - data['date_from']="date_none" - msg="" - - + data['date_from']=None + #eintragen columns=data.keys() for x in ignoreEntries: logging.debug("updatePersonEntry: ignoring %s"%x) - try: #falls in ignore entries felder sind, die nicht in columns sind, fange den fehler ab - columns.remove(x) - except: - pass + if x in data: + del data[x] + member = self.getStaffFolder().getMember(key = data['key']) + if member is None: + logging.error("updatePersonEntry: member (key=%s) not found!"%repr(data['key'])) + return + + # TODO: change date handling + self.getStaffFolder().executeZSQL("SET DATESTYLE TO 'German'") + member.changeData(data) - insert=[] - for key in columns: - if data[key]=="date_none": # date_none eintrag wird zu null uebersetzt - insert.append('%s=null'%key) - else: - insert.append(""" "%s"=%s"""%(key,self.ZSQLQuote(data[key]))) - - insertStr=",".join(insert) - queryStr="update personal_www SET %s where key='%s'"%(insertStr,data['key']) - self.ZSQLQuery("SET DATESTYLE TO 'German'") - self.ZSQLQuery(queryStr) - - #currentwork - #if not (txt==""): - # queryStr="INSERT INTO current_work (id_main,current,publish) VALUES ('%s','%s','%s')"%(id,txt,txt_p) - # - # self.ZSQLQuery(queryStr) - - return True,msg +# msg="" +# insert=[] +# for key in columns: +# if data[key]=="date_none": # date_none eintrag wird zu null uebersetzt +# insert.append('%s=null'%key) +# else: +# insert.append(""" "%s"=%s"""%(key,self.ZSQLQuote(data[key]))) +# +# insertStr=",".join(insert) +# queryStr="update personal_www SET %s where key='%s'"%(insertStr,data['key']) +# self.ZSQLQuery("SET DATESTYLE TO 'German'") +# self.ZSQLQuery(queryStr) +# +# return True,msg def updatePersonalwww_doIt(self): @@ -415,7 +415,7 @@ # generate the new entry if news and (len(news)>0): - ret+="
Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.
" - ret+="New entries will be visible on the webpage when an email address has been assigned.
" + ret+="" # update if len(conflicts.keys())>0: - ret+="Wenn nötig in Filemaker-db ändern:
" + ret+="Change Filemaker-db when necessary.
" # konflicte for conflict in conflicts.keys(): @@ -458,9 +458,19 @@ # rest cl=list(conflicts.keys()) + if len(resultSet.keys()) > 0: + ret += "Done.
" return ret+"