예제 #1
0
def view_bookings():
    print(' ****************** Your bookings **************** ')
    
    if not state.active_account:
        error_msg("You must log in first to view bookings")
        return
    
    cages = svc.find_cages_for_user(state.active_account)
    print(f"You have {len(cages)} cages.")
    for idx, c in enumerate(cages):
        print(Fore.LIGHTBLUE_EX + str(idx+1) +'. ' + Fore.WHITE + c.name +' has '+ str(len(c.bookings)) + ' bookings.')
    print()
    cage_number = input("Enter cage number: ")
    print()
    if not cage_number.strip():
        error_msg('Cancelled')
        print()
        return
    try:
        cage_number = int(cage_number)
        selected_cage = cages[cage_number - 1]
    except:
        error_msg('Invalid cage number')
        print()
        return
    success_msg("Selected cage {}".format(selected_cage.name))
    for b in selected_cage.bookings:
        print(' * Booked date: {}, from {} for {} days.'.format(
        datetime.date(b.booked_date.year, b.booked_date.month, b.booked_date.day),
        datetime.date(b.check_in_date.year, b.check_in_date.month, b.check_in_date.day),
        b.duration_in_days
        ))
예제 #2
0
def view_bookings():
    print(' ****************** Your bookings **************** ')

    if not state.active_account:
        error_msg("You must log in first to register a cage")
        return

    cages = svc.find_cages_for_user(state.active_account)

    bookings = [
        (c, b)
        for c in cages
        for b in c.bookings
        if b.booked_date is not None
    ]

    print("You have {} bookings.".format(len(bookings)))
    for c, b in bookings:
        print(' * Cage: {}, booked date: {}, from {} for {} days.'.format(
            c.name,
            datetime.date(b.booked_date.year,
                          b.booked_date.month, b.booked_date.day),
            datetime.date(b.check_in_date.year,
                          b.check_in_date.month, b.check_in_date.day),
            b.duration_in_days
        ))
def update_availability():
    print(" ****************** Add available date **************** ")
    if not state.active_account:
        error_msg("You must login first to register a cage.")
        return

    list_cages(suppress_header=True)
    cage_number = input("Enter cage number: ")
    if not cage_number.strip():
        error_msg("Cancelled")
        print()
        return

    cage_number = int(cage_number)

    cages = svc.find_cages_for_user(state.active_account)
    selected_cage = cages[cage_number - 1]

    success_msg("Selected cage {}".format(selected_cage.name))

    start_date = parser.parse(input("Enter available date [YYYY-mm-dd]: "))
    days = int(input("How many days is this block of time? "))

    svc.add_available_date(selected_cage, start_date, days)
    state.reload_account()

    success_msg(f"Date added to cage {selected_cage.name}.")
예제 #4
0
def list_cages(supress_header=False):
    if not supress_header:
        print(' ******************     Your cages     **************** ')

    if not state.active_account:
        error_msg('You must login first in order to register a cage')
        return
    cages = svc.find_cages_for_user(state.active_account)
    if len(cages) == 0:
        error_msg("You don't have any cages")
    else:
        success_msg(f'You have {len(cages)} Cages.')
    for i, c in enumerate(cages):
        print(f'\t{i+1}. {c.name} : {c.square_metres} Sq. Metres')
        for b in c.bookings:
            print(f'\t\t* Availability | Start Date : {b.check_in_date}\tEnd Date : {b.check_out_date} | Booked :{"Yes" if b.booked_date is not None else "No"}')
예제 #5
0
def list_cages(suppress_header=False):
    if not suppress_header:
        print(' ******************     Your cages     **************** ')

    if not state.active_account:
        error_msg("Voce precisa estar logado para continuar.")
        return

    cages = svc.find_cages_for_user(state.active_account)
    print(f"Você tem {len(cages)} gaiolas.")

    for idx, c in enumerate(cages):
        print(f' {idx}.  {c.name} tem {c.square_meters} metros.')
        for b in c.bookings:
            reserva = 'Sim' if b.booked_date is not None else 'Não'
            print(f"Reserva: {b.check_in_date}, {(b.check_out_date - b.check_in_date).days} dias. Reservado? {reserva}")
def list_cages(suppress_header=False):
    if not suppress_header:
        print(" ******************     Your cages     **************** ")

    if not state.active_account:
        error_msg("You must login first to register a cage.")
        return

    cages = svc.find_cages_for_user(state.active_account)
    print(f"You have {len(cages)} cages.")
    for idx, c in enumerate(cages):
        print(f" {idx+1}. {c.name} is {c.square_meters} meters.")
        for b in c.bookings:
            print("      * Booking: {}, {} days, booked? {}".format(
                b.check_in_date,
                (b.check_out_date - b.check_in_date).days,
                "YES" if b.booked_date is not None else "no",
            ))
예제 #7
0
def update_availability():
    print(' ****************** Add available date **************** ')

    if not state.active_account:
        error_msg('You must login first in order to register a cage')
        return
    
    list_cages(supress_header=True)
    cage_num = input('Enter Cage Number :')
    if not cage_num:
        error_msg('Cancelled')
        return
    cage_num = int(cage_num)
    cages = svc.find_cages_for_user(state.active_account)
    selected_cage = cages[cage_num - 1]

    success_msg(f'Selected Cage :{selected_cage.name}')
    start_date = parser.parse(input('Enter available date [yyyy-mm-dd] :'))
    days = int(input('No. of Days? :'))
    svc.add_available_date(selected_cage, start_date, days)
    state.reload_account()
    success_msg(f'Date added to cage: {selected_cage.name}')
예제 #8
0
def update_availability():
    print(' ****************** Add available date **************** ')

    if not state.active_account:
        error_msg("Voce precisa estar logado para continuar.")
        return

    list_cages(suppress_header=True)

    cage_number = input("Digite o numero da gaiola: ")
    if not cage_number.strip():
        error_msg("Cancelado")
        print()
        return

    cage_number = int(cage_number)

    cages = svc.find_cages_for_user(state.active_account)
    selected_cage = cages[cage_number - 1]

    success_msg(f"Gaiola {selected_cage.name} selecionada")

    start_date = parser.parse(
        input("Digite a data disponivel [yyyy-mm-dd]:")
    )
    days = int(input("Quantos dias?"))

    svc.add_available_date(
        selected_cage,
        start_date,
        days
    )

    success_msg(f"Data adicionada para a gaiola {selected_cage.name}")

    # TODO: Choose cage
    # TODO: Set dates, save to DB.

    print(" -------- NOT IMPLEMENTED -------- ")
예제 #9
0
def list_cages(suppress_header=False):
    if not suppress_header:
        print(' ******************     Your cages     **************** ')

    if not state.active_account:
        error_msg('You must login first to view your cages.')
        return
    
    cages = svc.find_cages_for_user(state.active_account)
    print(f"You have {len(cages)} cages.")
    for idx, c in enumerate(cages):
        print(Fore.LIGHTBLUE_EX + 'Cage no : '+str(idx+1) + Fore.WHITE)
        print(f'name : {c.name}')
        print(f'dimension : {c.square_meters} meters')
        print(f'Carpeted : {c.is_carpeted}')
        print(f'Toys : {c.has_toys}')
        print(f'Allow venomous snakes : {c.allow_dangerous_snakes}')
        print(f'Price : {c.price}')
        print('Availability : ')
        for a in c.availabilities:
            print('  * from {} to {} '.format(a.from_date.date(),a.to_date.date()))
        print('Bookings : {}'.format(len(c.bookings)))
예제 #10
0
def update_availability():
    print(' ****************** Add available date **************** ')

    if not state.active_account:
        error_msg("You must log in first to update availability")
        return

    list_cages(suppress_header=True)
    print()
    cage_number = input("Enter cage number: ")
    if not cage_number.strip():
        error_msg('Cancelled')
        print()
        return
    try:
        cage_number = int(cage_number)

        cages = svc.find_cages_for_user(state.active_account)
        selected_cage = cages[cage_number - 1]
    except:
        error_msg('Invalid cage number')
        print()
        return

    success_msg("Selected cage {}".format(selected_cage.name))

    try:
        start_date = parser.parse(input("Enter available date [yyyy-mm-dd]: "))
        days = int(input("How many days is this block of time? "))
    except:
        error_msg('Invalid inputs')
        print()
        return

    svc.add_available_date(selected_cage, start_date, days)

    success_msg(f'Date added to cage {selected_cage.name}.')