def createRows(rc, session, flg_id): FERNLEHRGANG_ID = flg_id lehrhefte = session.query(models.Lehrheft).options(joinedload(models.Lehrheft.fragen)).filter(models.Lehrheft.fernlehrgang_id == FERNLEHRGANG_ID).all() result = session.query(models.Teilnehmer, models.Unternehmen, models.Kursteilnehmer).options(joinedload(models.Kursteilnehmer.antworten)) result = result.filter( and_( models.Kursteilnehmer.fernlehrgang_id == FERNLEHRGANG_ID, models.Kursteilnehmer.teilnehmer_id == models.Teilnehmer.id, models.Teilnehmer.unternehmen_mnr == models.Unternehmen.mnr)).order_by(models.Teilnehmer.id) i=1 for teilnehmer, unternehmen, ktn in page_query(result): cal_res = CalculateResults(ktn) summary = cal_res.summary(lehrhefte) liste = [] teilnehmer = ktn.teilnehmer ss = set([x.rlhid for x in ktn.antworten]) antworten = len(ss) if teilnehmer: gebdat = "" if teilnehmer.geburtsdatum: try: gebdat = teilnehmer.geburtsdatum.strftime('%d.%m.%Y') except: gebdat = "" #unternehmen = teilnehmer.unternehmen liste.append(nN(teilnehmer.id)) liste.append(nN(teilnehmer.titel)) liste.append(nN(teilnehmer.anrede)) liste.append(nN(teilnehmer.name)) liste.append(nN(teilnehmer.vorname)) liste.append(gebdat) liste.append(nN(teilnehmer.strasse)) liste.append(nN(teilnehmer.nr)) liste.append(nN(teilnehmer.plz)) liste.append(nN(teilnehmer.ort)) liste.append(nN(unternehmen.mnr)) liste.append(nN(unternehmen.name)) liste.append(nN(unternehmen.name2)) liste.append(nN(unternehmen.name3)) liste.append(nN(unternehmen.str)) liste.append(nN(unternehmen.plz)) liste.append(nN(unternehmen.ort)) if teilnehmer.name: liste.append('ja') else: liste.append('nein') liste.append(nN(teilnehmer.kategorie)) liste.append(nN(ktn.status)) liste.append(un_helper(ktn.un_klasse)) liste.append(nN(ktn.branche)) liste.append(ges_helper(ktn.gespraech)) liste.append(nN(summary['comment'])) liste.append(nN(summary['resultpoints'])) liste.append(nN(antworten)) rc.append(liste) i+=1
def createRows(book, adressen, session, flg_id): ii = 0 FERNLEHRGANG_ID = flg_id lehrhefte = session.query(models.Lehrheft).options(joinedload(models.Lehrheft.fragen)).filter(models.Lehrheft.fernlehrgang_id == FERNLEHRGANG_ID).order_by(models.Lehrheft.nummer).all() result = session.query(models.Teilnehmer, models.Unternehmen, models.Kursteilnehmer).options(joinedload(models.Kursteilnehmer.antworten)) result = result.filter( and_( models.Kursteilnehmer.fernlehrgang_id == FERNLEHRGANG_ID, models.Kursteilnehmer.teilnehmer_id == models.Teilnehmer.id, models.Teilnehmer.unternehmen_mnr == models.Unternehmen.mnr)).order_by(models.Teilnehmer.id) i=1 for teilnehmer, unternehmen, ktn in page_query(result): if ktn.status in ('A1', 'A2'): cal_res = CalculateResults(ktn) summary = cal_res.summary(lehrhefte) row = adressen.row(ii+1) row.write(0, nN(flg_id)) row.write(1, nN(ktn.fernlehrgang.titel)) row.write(2, nN(teilnehmer.id)) row.write(3, versandanschrift(teilnehmer)) row.write(4, nN(teilnehmer.plz or unternehmen.plz)) row.write(5, nN(unternehmen.mnr)) row.write(6, nN(unternehmen.name)) row.write(7, nN(unternehmen.name2)) row.write(8, nN(teilnehmer.anrede)) row.write(9, nN(teilnehmer.titel)) row.write(10, nN(teilnehmer.vorname)) row.write(11, nN(teilnehmer.name)) row.write(12, fd(teilnehmer.geburtsdatum)) strasse = nN(teilnehmer.strasse) + ' ' + nN(teilnehmer.nr) if strasse == " ": strasse = nN(unternehmen.str) else: if teilnehmer.adresszusatz: strasse = strasse + ' // ' + teilnehmer.adresszusatz row.write(13, strasse) row.write(14, nN(teilnehmer.ort or unternehmen.ort)) row.write(15, nN(teilnehmer.passwort)) row.write(16, nN(teilnehmer.vorname)) row.write(17, nN(teilnehmer.name)) ii += 1
def createRows(session, rc, flg_ids, stichtag): lhs = {} ids = [x for x in flg_ids] result = session.query(models.Teilnehmer, models.Unternehmen, models.Kursteilnehmer).options(joinedload(models.Kursteilnehmer.antworten)) from datetime import datetime stichtag = datetime.combine(stichtag, datetime.min.time()) result = result.filter( and_( models.Kursteilnehmer.fernlehrgang_id.in_(ids), models.Antwort.datum > stichtag, models.Antwort.kursteilnehmer_id == models.Kursteilnehmer.id, models.Kursteilnehmer.teilnehmer_id == models.Teilnehmer.id, models.Teilnehmer.unternehmen_mnr == models.Unternehmen.mnr)).order_by(models.Teilnehmer.id) for x in ids: lehrhefte_sql = session.query(models.Lehrheft).options(joinedload(models.Lehrheft.fragen)) lhs[x] = lehrhefte_sql.filter(models.Lehrheft.fernlehrgang_id == x).all() i=1 for teilnehmer, unternehmen, ktn in result.all(): if ktn.status in ('A1', 'A2'): cal_res = CalculateResults(ktn) summary = cal_res.summary(lhs[ktn.fernlehrgang_id]) liste = [] ss = set([x.lehrheft_id for x in ktn.antworten]) antworten = len(ss) if teilnehmer and summary.get('resultpoints') >= 1: gebdat = "" if teilnehmer.geburtsdatum: try: gebdat = teilnehmer.geburtsdatum.strftime('%d.%m.%Y') except: gebdat = "" #unternehmen = teilnehmer.unternehmen liste.append(nN(ktn.fernlehrgang_id)) liste.append(nN(ktn.fernlehrgang.titel)) liste.append(nN(teilnehmer.id)) liste.append(nN(ktn.fernlehrgang.lehrhefte[0].id)) # IST IMMER NUR EINS DA--Fortbilding liste.append(nN(versandanschrift(teilnehmer))) liste.append(nN(teilnehmer.plz or unternehmen.plz)) liste.append(nN(unternehmen.mnr)) liste.append(nN(unternehmen.name)) liste.append(nN(unternehmen.name2)) liste.append(nN(teilnehmer.anrede)) liste.append(nN(teilnehmer.titel)) liste.append(nN(teilnehmer.vorname)) liste.append(nN(teilnehmer.name)) liste.append(nN(gebdat)) strasse = nN(teilnehmer.strasse) + ' ' + nN(teilnehmer.nr) if strasse == " ": strasse = nN(unternehmen.str) else: if teilnehmer.adresszusatz: strasse = nN(strasse) + ' // ' + nN(teilnehmer.adresszusatz) liste.append(nN(strasse)) liste.append(nN(teilnehmer.ort or unternehmen.ort)) liste.append(nN(teilnehmer.passwort)) liste.append(' ') liste.append(' ') # RDATUM liste.append(' ') # ANZAHL liste.append(nN(summary.get('resultpoints'))) liste.append(nN(' ')) # STICHTAG liste.append(nN(ktn.fernlehrgang.lehrhefte[0].id)) liste.append(nN(teilnehmer.titel)) liste.append(nN(teilnehmer.vorname)) liste.append(nN(teilnehmer.name)) for lehrheft in ktn.fernlehrgang.lehrhefte: for frage in sorted(lehrheft.fragen, key=lambda frage: int(frage.frage)): r="" for antwort in ktn.antworten: if frage.id == antwort.frage_id: r = "%s %s %s" %( frage.antwortschema.upper(), nN(antwort.antwortschema), cal_res.calculateResult( frage.antwortschema, antwort.antwortschema, frage.gewichtung)) liste.append(r) rc.append(liste) i+=1 print i