예제 #1
0
def entry_post():
    vm = TravelEntryViewModel()
    vm.validate()
    if vm.error:
        return vm.to_dict()

    vm.convert_empty_strings_to_none()

    travel_user_units = [
        TravelUserUnit(**t) for t in vm.travelers if t['traveler_name']
    ]

    day_plans = [TravelDay(**pd) for pd in vm.day_plans if pd['date']]

    emergency_contacts = [
        User(u['contact_name'], u['contact_email'], u['contact_work'],
             u['contact_home'], u['contact_cell'], None, None)
        for u in vm.contacts
    ]

    base_name = file_util.generate_name(vm.trip_leader_name, vm.start_date)

    travel_files = [
        TravelFile(f) for f in file_util.save_files_with_name(
            vm.uploaded_files, base_name,
            current_app.config['PDF_FOLDER_PATH'])
    ]
    travel_files.append(TravelFile(base_name + '.pdf'))

    travel_id = travel_services.create_plan(
        vm.start_date, vm.entry_point, vm.end_date, vm.exit_point, vm.tracked,
        vm.plb, vm.trip_leader_name, travel_user_units, day_plans,
        vm.car_plate, vm.car_make, vm.car_model, vm.car_color, vm.car_location,
        vm.bivy_gear, vm.compass, vm.first_aid_kit, vm.flagging, vm.flare,
        vm.flashlight, vm.gps, vm.head_lamp, vm.helmet, vm.ice_axe, vm.map,
        vm.matches, vm.probe_pole, vm.radio, vm.rope, vm.shovel,
        vm.signal_mirror, vm.space_blanket, vm.spare_battery, vm.tent,
        vm.whistle, vm.days_of_food, vm.weapon, vm.radio_monitor_time,
        vm.off_trail_travel, vm.cell_number, vm.satellite_number,
        emergency_contacts, vm.gar_avg, vm.mitigated_gar, vm.gar_mitigations,
        vm.notes, travel_files)

    travel = travel_services.get_travel_from_id(travel_id)

    pdf_util.make_and_save_pdf(travel, base_name,
                               current_app.config['PDF_FOLDER_PATH'])

    email_util.email_travel(travel, [f.name for f in travel_files],
                            current_app.config['PDF_FOLDER_PATH'])

    return redirect(url_for('travel.email_sent'))
예제 #2
0
def add_traveler():
    vm = TravelEntryViewModel()

    return vm.to_dict()
예제 #3
0
def entry_get():
    vm = TravelEntryViewModel()

    return vm.to_dict()