import init from hiobas.connection import * from hiobas.model.mapper import * from hiobas.model.models import * from fs.connection import * from fs.model.mapper import * from fs.model.models import * import datetime #First make dict of persons from FS and SB, keyed on (fnr, pnr): fsp = dict([(person.getKey(), person) for person in fssession.query(FSPerson).all()]) hbp = dict([(person.getFSkey(), person) for person in hbsession.query(HBStud).all()]) #Now, we only need to look at those common to both systems: fsset = set(fsp) sbset = set(hbp) intersect = fsset.intersection(sbset) #Function computes diff tuple def maketuple(key): fsperson = fsp[key] sbperson = sbp[key] fnr = key[0] pnr = key[1] fspin = fsperson.personreg.personkode sbpin = sbperson.pinkode active = (fsperson.studprogstudent.studentstatkode == 'AKTIV' or fsperson.studprogstudent.studentstatkode == 'PERMISJON') and fsperson.kullklassestudent.status_aktiv == 'J' and fsperson.studprogstudent.dato_studierett_gyldig_til > datetime.date.today() equal = fspin == sbpin #Now, the fun part: For each common key, map out both pins, active status. #Format tuple (fnr, pnr, fspin, sbpin, active, equal flag) diff = {} for key in intersect: diff[key] = maketuple(key)