def rooms(): room_table = [room.iterable() for room in Room.query.all()] find_edit_id_form = FindEditIdFormRoom() edit_room_form = EditRoomForm() add_room_form = AddRoomForm() delete_room_form = DeleteRoomForm() room_form = RoomForm() fields = ['r_name', 'building'] show_options = { 'edit_id': False, 'edit': False, 'add': False, 'delete': False } data = request.form if 'add' in data: show_options['add'] = True redirect('rooms') if 'edit' in data: show_options['edit_id'] = True redirect('rooms') if 'delete' in data: show_options['delete'] = True redirect('rooms') if add_room_form.submit_add.data and add_room_form.validate_on_submit(): new_room = Room(r_name=add_room_form.r_name.data, building=add_room_form.building.data) new_room.add() return redirect('rooms') if find_edit_id_form.submit_edit_id.data and find_edit_id_form.validate_on_submit( ): room_id = find_id_room(find_edit_id_form.r_name.data) room_to_edit = Room.query.get(room_id) edit_room_form.process(obj=room_to_edit) cache.set('room_to_edit_id', room_id) show_options['edit'] = True return render_template('rooms.html', room_table=room_table, edit_room_form=edit_room_form, room_to_edit=room_to_edit, find_edit_id_form=find_edit_id_form, show_options=show_options) if edit_room_form.submit_edit.data and edit_room_form.validate_on_submit(): room_to_edit = Room.query.get(cache.get('room_to_edit_id')) room_to_edit.edit(edit_room_form) return redirect('rooms') if delete_room_form.submit_delete_id.data and delete_room_form.validate_on_submit( ): room_to_delete = Room.query.filter( Room.r_name == delete_room_form.r_name.data.upper()).first() if not room_to_delete: flash('Couldn\'t find room') else: activities_in_room = Activity.query.filter( Activity.r_id == room_to_delete.id).first() if activities_in_room: flash('Cannot delete room. It is being used for an activity') return redirect('rooms') Room.query.filter( Room.r_name == delete_room_form.r_name.data.upper()).delete() db.session.commit() return redirect('rooms') room_table = [room.iterable() for room in Room.query.all()] return render_template('rooms.html', room_table=room_table, add_room_form=add_room_form, find_edit_id_form=find_edit_id_form, edit_room_form=edit_room_form, delete_room_form=delete_room_form, show_options=show_options)