Example #1
0
def edit_meeting(meeting_id):
    user = User.get_by_email(session['email'])
    if request.method == 'POST' and user is not None:
        # get meeting from DB
        meeting = Meeting.from_mongo(meeting_id)

        # get Updated Data from user
        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']
        # make json object (or python dict...same thing)
        members = {
            'p1': p1,
            'p2': p2,
            'p3': p3,
            'p4': p4,
            'p5': p5,
            'p6': p6,
            'p7': p7,
            'p8': p8,
            'p9': p9,
            'p10': p10
        }

        # double check the meeeting day-time combo is not taken already
        # proceed to check if anything has changed from original...
        # if so swap using update_meeting()
        if meeting.isAvailable(day, time):
            if day != meeting.day:
                meeting.update_meeting(meeting_id, 'day', day)
            if time != meeting.time:
                meeting.update_meeting(meeting_id, 'time', time)

        # Next Compare dictionaries of user made member-list vs. original member-list
        # returns the different items between the two dictionaries in the member dicts
        items_to_update = dict_compare(meeting.members, members)

        if items_to_update is not None:
            # get keys of the elements in the update list
            k = items_to_update.keys()
            for key in k:
                # items[key] returns a tuple: ('OLD VALUE', 'NEW VALUE') so we need the second element
                v = items_to_update[key][1]
                meeting.update_members(meeting_id, key, v)
        # GET MEETINGS
        meetings = Meeting.get_by_email(session['email'])
        return render_template('meetings-by-creator.html', email=session['email'], name=user.name, meetings=meetings)
    return render_template('create_meeting_error.html', error='Could not update Meeting')
Example #2
0
def delete_one(meeting_id):
    # need day and time of meeting
    meeting = Meeting.from_mongo(meeting_id)
    day = meeting.day
    time = meeting.time
    searchKey = day + time

    # find rooms with the given meeting_id in the 'meetings.**' field
    # to delete them from 'room' collection
    # .get_rooms() returns a dict() object which must be access like a python dict().
    # room_id is accessed as room['room_id'] but not room.room_id (class access)

    # search rooms by a meeting_id; if search returns True
    if Room.find_by_meeting(searchKey=searchKey, meeting_id=meeting_id):
        room_object = Room.find_by_meeting(searchKey=searchKey, meeting_id=meeting_id)

        # update the room using _id to erase the meeting from the existing meeting. list
        Room.erase_meeting(room_id=room_object._id, searchKey=searchKey)

    # delete the meeting from 'meetings' collection and return to profile dashboard
    meeting.delete_meeting(meeting_id)
    return make_response(back_to_profile())
Example #3
0
def goto_edit_meeting(meeting_id):
    meeting = Meeting.from_mongo(meeting_id)
    return render_template('edit_meeting.html', meeting=meeting)