--- MPIWGWeb/Attic/updatePersonalWWW.py 2007/04/19 12:18:50 1.1.2.2 +++ MPIWGWeb/Attic/updatePersonalWWW.py 2009/04/28 13:47:04 1.1.2.7 @@ -10,10 +10,12 @@ import logging from xml import sax from amara import saxtools - +# namespace for FileMaker8 fm_ns = 'http://www.filemaker.com/fmpxmlresult' + +# list of fields that are taken from XML and checked against DB as conflicts #checkFields=['key','first_name','last_name','title','home_inst','current_work','e_mail2'] -checkFields=['key','first_name','last_name','title','home_inst','e_mail2'] +checkFields=['key','first_name','last_name','title','titles_new','home_inst','e_mail2'] def sql_quote(v): # quote dictionary @@ -211,6 +213,7 @@ class xml_handler: def checkImport(dsn,resultSet): #now connect to the database + logging.info("dsn: %s"%dsn) dbCon = psycopg.connect(dsn) db = dbCon.cursor() @@ -288,11 +291,16 @@ def checkForConflicts(cursor,dataSet,key else: dbValue="" - setValue=dataSet[checkField] - logging.debug( " %s %s %s %s"%(repr(key),checkField,repr(dbValue),repr(setValue))) - if dbValue.strip().rstrip()!=setValue.lstrip().rstrip(): - ret.append((checkField,dbValue,setValue)) - retValue=True + if checkField in dataSet: + setValue=dataSet[checkField] + logging.debug( " %s %s %s %s"%(repr(key),checkField,repr(dbValue),repr(setValue))) + if dbValue.strip().rstrip()!=setValue.lstrip().rstrip(): + ret.append((checkField,dbValue,setValue)) + retValue=True + + else: + logging.warning("unknown field %s in data file!"%checkField) + i+=1 return retValue,ret