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
Exemple #3
0
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
Exemple #4
0
    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'])
Exemple #5
0
    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'])