Example #1
0
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)
Example #2
0
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)