def update_from_antragsbuch(antragsbuch_fn, to_fn, pretend):
    logg.info("---- Antragsbuch-Update gestartet ----")
    updated = {}
    failed = {}
#     to_order = read_TO(to_fn)
    to_order = []
    with open(antragsbuch_fn) as f:
        antragsbuch = json.load(f)
    for antrag in antragsbuch:
        code = translate_antrags_code(antrag)
        # find position in TO, 0 if not found
        try:
            to_pos = to_order.index(code) + 1
        except ValueError:
            to_pos = 0
        try:
            diff = update_antrag(antrag, to_pos, pretend)
        except Exception as e:
            logg.error("error inserting antrag '%s', error '%s'", antrag[K["id"]], e)
            failed[antrag[K["id"]]] = e
            session.rollback()
        else:
            if diff:
                updated[antrag[K["id"]]] = diff

    if pretend:
        logg.info("---- Nichts geändert, es werden nur die Unterschiede angezeigt ----")
    else:
        logg.info("---- Antragsbuch-Update beendet ----")
        
    # show updated and failed antraege
    if updated:
        logg.debug("Geänderte Anträge:\n%s", pformat(updated))
    if failed:
        logg.warn("Es traten Fehler bei folgenden Anträgen auf:\n%s", pformat(failed))
        
    # show counts
    logg.info("Geänderte Anträge (Anzahl): %s", len(updated))
    if failed:
        logg.warn("Es traten Fehler bei Anträgen auf (Anzahl): %s", len(failed))
    return updated, failed
Exemple #2
0
def update_antragsbuch(filename):
    logg.info("---- Antragsbuch-Update gestartet ----")
    updated = {}
    failed = {}
    with open(filename) as f:
        antragsbuch = json.load(f)
    for antrag in antragsbuch:
        try:
            diff = update_antrag(translate_antrags_code(antrag))
        except Exception as e:
            logg.error("error inserting antrag '%s', error '%s'", antrag["id"], e)
            failed[antrag["id"]] = e
            session.rollback()
        if diff:
            updated[antrag["id"]] = diff

    logg.info("---- Antragsbuch-Update beendet ----")
    if updated:
        logg.info("%s geänderte Anträge:\n%s", len(updated), pformat(updated))
    if failed:
        logg.warn("Es traten Fehler bei %s Anträgen auf:\n%s", len(failed), pformat(failed))
    return updated, failed