def delete_ticket(delete_id): delete_id = int(delete_id) tickets = session['tickets'] del session['tickets'] ticket = Ticket() showtime = Showtime() showtime.fetch(session['showtime']) avail = showtime.get_available_seats() if len(tickets) == 1: ticket.delete(session['ticket_ids'][delete_id]) showtime.set_available_seats(avail + 1) showtime.save() clear_booking_info() return False else: del tickets[delete_id] ticket.delete(session['ticket_ids'][delete_id]) del session['ticket_ids'][delete_id] showtime.set_available_seats(avail + 1) showtime.save() session['tickets'] = tickets return True
def reset_available_seats(): if not session.get('showtime'): print("Error resetting available seats") if not session.get('ticket_ids') or not session.get('showtime'): return showtime = Showtime() showtime.fetch(session['showtime']) reset_len = len(session['ticket_ids']) avail = showtime.get_available_seats() new_avail = avail + reset_len showtime.set_available_seats(new_avail) showtime.save()
def select_seat(): if not session.get('showtime') or not g.user.get('username'): return redirect(url_for('IndexController.index')) # INFO we need: showtime_id and customer showtime = Showtime() showtime.fetch(session['showtime']) showroom = Showroom() showroom.fetch(showtime.get_showroom_id()) customer = create_user('customer') customer.fetch(g.user['username']) if request.method == 'POST': print("Session.get") ticket_no = 0 example = [] capacity = showroom.get_num_seats() for i in range(0, capacity): if request.form.get(str(i)): example.append((i, request.form[str(i)])) num_avail = showtime.get_available_seats() if session.get('tickets'): num_avail = num_avail + len(session['tickets']) showtime.set_available_seats(num_avail) clear_ticket_ids() if still_available(example, showtime.get_id()): session['tickets'] = example reserve_tickets(showtime) return redirect(url_for('CheckoutController.checkout')) else: flash("Sorry, those seats are no longer available") tickets = showtime.get_all_tickets() pre_tickets = None if session.get('tickets'): pre_tickets = session['tickets'] for p in pre_tickets: print(p) # probably need to pull all tickets # for this showtime, and get a list of taken # seats to pass to zach available = list(range(showroom.get_num_seats())) if len(tickets) > 0: for ticket in tickets: seat_no = int(ticket['seat_number']) available[seat_no] = -1 avail_dict = {'capacity': showroom.get_num_seats(), 'row': 8, 'seats': available } # ZACH: # from this page, we'll get the seats and their ages # we need to get an array of tuples like # [(seatNo, age),] return render_template("seat_selection.html", tickets=avail_dict, pre_tickets=pre_tickets)