def processEdit(id, eventName, discountPercent, discountAmount, contact, rooms): """Save the form data into a booking""" b = Booking.select().where(Booking.id == id).get() food = {} for field in request.form: if field.startswith('dish_'): food[int(field.replace('dish_', ''))] = int(request.form[field]) b.eventName = eventName b.discountPercent = discountPercent b.discountAmount = discountAmount b.contact_id = contact rooms = Room.select().where(Room.id << rooms).execute() if Room.areRoomsFree(rooms, b.startTime, b.endTime, id): BookingRoom.delete().where(BookingRoom.booking == b).execute() for room in rooms: br = BookingRoom(booking=b, room=room) br.save() Order.delete().where(Order.booking == b).execute() for f in food: if food[f] > 0: Order(dish=Dish.get(Dish.id == int(f)), booking=b, quantity=food[f]).save() b.calculateTotal() b.save() else: flash( 'A room that you selected is no longer available. Please select a new room.', 'error') return redirect(request.referrer) flash('Booking Updated', 'success') return redirect(url_for('bookings.index'))