def add(): form = AddForm(request.form) games = [(gg.id, gg.name) for gg in Game.query.all()] game = games[0][0] if not request.form else int(request.form['game']) areas = [(a.id, a.name) for a in Area.query.filter_by(game_id = game).all()] area = areas[0][0] if not request.form else int(request.form['area']) rooms = [(-1, 'Create new room...')] + [(r.id, r.name) for r in Room.query.filter_by(area_id = area).all()] categories = [(c.id, c.name) for c in Category.query.all()] form.game.choices = games form.area.choices = areas form.room.choices = rooms form.categories.choices = categories if request.method == 'POST' and form.validate(): room_id = form.room.data if room_id == -1: new_room = Room(form.new_roomname.data, form.new_roomlink.data, form.area.data) db.session.add(new_room) db.session.commit() db.session.refresh(new_room) room_id = new_room.id strat = Strat(form.name.data, form.description.data, form.video.data, form.difficulty.data, g.user.id, form.area.data, room_id, form.categories.data, form.game.data) db.session.add(strat) db.session.commit() return redirect(url_for('index')) context = { 'form': form, } return render_template('add.html', **context)
def edit(strat_id): strat = Strat.query.get(strat_id) if not strat: flash("That strategy doesn't exist") return redirect(url_for('index')) if strat.user_id != g.user.id and 'm' not in g.user.flags: flash("You don't have permission to edit that strategy") return redirect(url_for('index')) form = AddForm(request.form) games = [(gg.id, gg.name) for gg in Game.query.all()] game = strat.area.game_id if not request.form else int(request.form['game']) areas = [(a.id, a.name) for a in Area.query.filter_by(game_id = game).all()] area = strat.area_id if not request.form else int(request.form['area']) rooms = [(-1, 'Create new room...')] + [(r.id, r.name) for r in Room.query.filter_by(area_id = area).all()] room = strat.room_id if not request.form else int(request.form['room']) categories = [(c.id, c.name) for c in Category.query.all()] form.game.choices = games form.area.choices = areas form.room.choices = rooms form.categories.choices = categories if request.method == 'POST' and form.validate(): room_id = form.room.data if room_id == -1: new_room = Room(form.new_roomname.data, form.new_roomlink.data, form.area.data) db.session.add(new_room) db.session.commit() db.session.refresh(new_room) room_id = new_room.id strat.name = form.name.data strat.description = form.description.data strat.link = form.video.data strat.difficulty = form.difficulty.data strat.area_id = form.area.data strat.room_id = room_id strat.category_id = form.categories.data strat.game_id = form.game.data db.session.commit() return redirect(url_for('index')) if not request.form: form.game.data = int(strat.game_id) form.area.data = int(strat.area_id) form.room.data = int(strat.room_id) form.name.data = strat.name form.description.data = strat.description form.categories.data = int(strat.category_id) form.video.data = strat.link form.difficulty.data = int(strat.difficulty) context = { 'form': form, } return render_template('edit.html', **context)