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 ))
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}.")
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"}')
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", ))
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}')
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 -------- ")
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)))
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}.')