Example #1
0
def create_meeting():
    if request.method == 'POST':
        email = session['email']

        day = request.form['day']
        time = request.form['time']
        p1 = request.form['p1']
        p2 = request.form['p2']
        p3 = request.form['p3']
        p4 = request.form['p4']
        p5 = request.form['p5']
        p6 = request.form['p6']
        p7 = request.form['p7']
        p8 = request.form['p8']
        p9 = request.form['p9']
        p10 = request.form['p10']

        member_emails = {
            'p1': p1,
            'p2': p2,
            'p3': p3,
            'p4': p4,
            'p5': p5,
            'p6': p6,
            'p7': p7,
            'p8': p8,
            'p9': p9,
            'p10': p10
        }

        # get all available rooms in DB
        rooms = RoomMatrix.get_rooms()

        # gets random room number to assign new meetings to random room number
        random.random()
        # random.randint selects (start, end) with both ends inclusive
        r_int = random.randint(0, (len(rooms) - 1))
        # get room object using a random room_id assigned from the RoomMatrix
        room = Room.get_from_mongo(rooms[r_int]['room_id'])
        # room object stores room number
        r_number = room.roomNum
        # create the meeeting
        meeting = Meeting(day=day, time=time, r_number=r_number, email=email, members=member_emails)

        # if meeting day/time available, ALSO update room list with new meeting and save meeting to DB
        if meeting.isAvailable(day, time):
            room.update_meetings(room._id, day + time, meeting._id)
            meeting.save_to_mongo()
            return make_response(back_to_profile())
    return render_template('create_meeting_error.html', error="Meeting Day-Time already taken", email=session['email'])