Example #1
0
def restore_note(orm, user, note_id, historic, d_time=None):
    LOG.info("Restoring note %d", note_id)

    d_time = historic and d_time or None
    note, note_v, d_time = get_deleted_entity(
        orm, Note, Note_v, "note_id", note_id, "note_v_id", d_time)
    d_time = historic and d_time or None

    if note:
        LOG.warning("Note %d already exists.", note_id)
        return note

    if not note_v:
        LOG.error(
            "Cannot restore note %d because no recently "
            "deleted versions exist.",
            note_id)
        return None

    LOG.info("deleted time: %s", d_time)

    note = Note(
        note_v.text, note_v.source,
        user, note_v.public)
    note.note_id = note_v.note_id
    orm.add(note)

    return note