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')
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())
def goto_edit_meeting(meeting_id): meeting = Meeting.from_mongo(meeting_id) return render_template('edit_meeting.html', meeting=meeting)