def export(flg_ids, stichtag, mail): """This should be the "shared" export function. """ from z3c.saconfig import Session session = Session() book, adressen, rc = getXLSBases() flg_ids = [x for x in flg_ids] createRows(session, rc, flg_ids, stichtag) fn = "/tmp/fortbildung_%s.csv" % stichtag.strftime('%Y_%m_%d') #for z, line in enumerate(rc): # tt= [unicode(cell).encode('utf-8') for cell in line] # print ';'.join(tt) # print line # adressen.append([cell for cell in line]) #print "Writing File %s" % fn #book.save(fn) import csv with open(fn, 'wb') as csvfile: writer = UnicodeWriter(csvfile) for line in rc: writer.writerow(line) fn = makeZipFile(fn) text=u"Bitte öffen Sie die Datei im Anhang" import transaction with transaction.manager: send_mail('*****@*****.**', (mail,), "Versandliste Fortbildung", text, [fn,]) return fn
def export(flg_id, dateiname, mail): """This should be the "shared" export function. """ session = Session() book, adressen = getXLSBases() createSpalten(adressen) createRows(book, adressen, session, flg_id) fn = "/tmp/%s" % dateiname xls_file = open(fn, 'w+') book.save(xls_file) xls_file.close() fn = makeZipFile(fn) text=u"Bitte öffen Sie die Datei im Anhang" import transaction with transaction.manager as tm: send_mail('*****@*****.**', (mail,), "Fortbildung Datenquelle", text, [fn,]) return fn
def export(flg_id, mail): """This should be the "shared" export function. """ from z3c.saconfig import Session session = Session() fn = "/tmp/statusliste_%s.xlsx" % flg_id book, adressen, rc = getXLSBases() createRows(rc, session, flg_id) with open(fn, 'wb') as csvfile: writer = UnicodeWriter(csvfile) for line in rc: writer.writerow(line) fn = makeZipFile(fn) text=u"Bitte öffen Sie die Datei im Anhang" import transaction with transaction.manager: send_mail('*****@*****.**', (mail,), "Statusliste", text, [fn,]) return fn
def update(self): MAILS = [] JETZT, T30, T180, T300, T365 = time_ranges() log("%s, %s, %s, %s, %s" % (JETZT.date(), T30.date(), T180.date(), T300.date(), T365.date())) session = Session() alle_ktns = session.query(models.Kursteilnehmer).filter( models.Kursteilnehmer.fernlehrgang_id == models.Fernlehrgang.id, models.Kursteilnehmer.status != 'Z1', models.Fernlehrgang.typ == '2') print alle_ktns.count() for ktn in alle_ktns.all(): erstell_datum = ktn.erstell_datum.date() try: titel = ITeilnehmer['titel'].vocabulary.getTerm(ktn.teilnehmer.titel).title if titel == "kein Titel": titel = "" except: titel = "" print "KTN %s - %s" %(ktn.id, erstell_datum) BETREFF = 'Online-Fernlehrgang der BGHW Benutzername: %s' % ktn.teilnehmer.id if erstell_datum == T30.date() and len(ktn.antworten) == 0: MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', tid=ktn.teilnehmer.id, subject=BETREFF, text=mt.TEXT0 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="EMAIL-Report 30 Tage", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) print "30 TAGE" elif erstell_datum == T180.date() and len(ktn.antworten) == 0: MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', subject=BETREFF, tid=ktn.teilnehmer.id, text=mt.TEXT1 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="EMAIL-Report 180 Tage, keine Antworten", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) elif erstell_datum == T180.date() and len(ktn.antworten) <= 40: MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', subject=BETREFF, tid=ktn.teilnehmer.id, text=mt.TEXT2 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="EMAIL-Report 180 Tage, kleiner 4. Lehrheft", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) print "180 TAGE" elif erstell_datum == T300.date() and len(ktn.antworten) < 80: MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', subject=BETREFF, tid=ktn.teilnehmer.id, text=mt.TEXT3 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="EMAIL-Report 300 Tage und noch nicht fertig", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) print "300 TAGE" elif erstell_datum == T365.date() and len(ktn.antworten) < 80: MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', subject=BETREFF, tid=ktn.teilnehmer.id, text=mt.TEXT4 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="EMAIL-Report 365 Tage", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) ktn.status = "Z1" print "356 TAGE" for mail in MAILS: print mail['tid'], mail['_to'], mail['subject'] send_mail('*****@*****.**', (mail['_to'], '*****@*****.**'), mail['subject'], mail['text'])
def update(self): MAILS = [] JETZT, T30, T180, T300, T365 = time_ranges() log("%s, %s, %s, %s, %s" % (JETZT.date(), T30.date(), T180.date(), T300.date(), T365.date())) session = Session() alle_ktns = session.query(models.Kursteilnehmer).filter( models.Kursteilnehmer.fernlehrgang_id == models.Fernlehrgang.id, models.Fernlehrgang.typ == '5') for ktn in alle_ktns.all(): erstell_datum = ktn.erstell_datum.date() titel = ITeilnehmer['titel'].vocabulary.getTerm(ktn.teilnehmer.titel).title if titel == "kein Titel": titel = "" print "KTN %s - %s" %(ktn.id, erstell_datum) if erstell_datum == T30.date(): MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', subject="Online-Fernlehrgang-Fortbildung der BGHW Benutzername %s" % ktn.teilnehmer.id, text = mt.TEXTFB1 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="MAIL 30T", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) print "30 TAGE" elif erstell_datum == T180.date(): MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', subject="Online-Fernlehrgang-Fortbildung der BGHW Benutzername %s" % ktn.teilnehmer.id, text = mt.TEXTFB2 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="MAIL 180T", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) print "180 TAGE" elif erstell_datum == T300.date(): MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', subject="Online-Fernlehrgang-Fortbildung der BGHW Benutzername %s" % ktn.teilnehmer.id, text = mt.TEXTFB3 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="MAIL 300T", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) print "300 TAGE" elif erstell_datum == T365.date(): MAILS.append(dict( _from='fernlehrgang.bghw.de', _to=ktn.teilnehmer.email or '*****@*****.**', subject="Online-Fernlehrgang-Fortbildung der BGHW Benutzername %s" % ktn.teilnehmer.id, text = mt.TEXTFB4 % ( titel, ITeilnehmer['anrede'].vocabulary.getTerm(ktn.teilnehmer.anrede).title, ktn.teilnehmer.name ) )) ktn.teilnehmer.journal_entries.append( models.JournalEntry( status="info", type="MAIL 365T", kursteilnehmer_id=ktn.id, teilnehmer_id=ktn.teilnehmer.id) ) print "356 TAGE" for mail in MAILS: print mail send_mail('flg_app', (mail['_to'],), mail['subject'], mail['text'])