예제 #1
0
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
예제 #2
0
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()
예제 #3
0
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)