def route_account_character_post(): name = request.form.get('name', '', type=str) gender = request.form.get('gender', 0, type=int) vocation = request.form.get('vocation', 0, type=int) town = request.form.get('town', 1, type=int) error = False if len(name) < 4: flash('The name must be at least 4 characters long.', 'error') error = True if not CHAR_NAME_EXPR.match(name): flash('The name may only contain latin characters (A-Z, a-z and spaces).', 'error') error = True if len(name.split(' ')) > 3: flash('The name may only consist of 3 words.', 'error') error = True if gender not in NEW_CHARACTER.get('genders'): flash('The selected gender is not valid.', 'error') error = True if vocation not in NEW_CHARACTER.get('vocations'): flash('The selected vocation is not valid.', 'error') error = True if town not in NEW_CHARACTER.get('towns'): flash('The selected town is not valid.', 'error') error = True name = string.capwords(name) player = db.session().query(Player.id).filter(Player.name == name).first() if player: flash('The character name is already in use.', 'error') error = True if error: return redirect(url_for('route_account_character')) player = Player() player.name = name player.sex = gender player.vocation = vocation player.town_id = town player.account_id = current_user().id player.looktype = 136 if gender == 0 else 128 player.lookhead = NEW_CHARACTER.get('outfit')[0] player.lookbody = NEW_CHARACTER.get('outfit')[1] player.looklegs = NEW_CHARACTER.get('outfit')[2] player.lookfeet = NEW_CHARACTER.get('outfit')[3] db.session().add(player) db.session().commit() flash('The character has been created.', 'success') return redirect(url_for('route_account_manage'))
def route_account_character(): return render_template( 'account/character.htm', genders=NEW_CHARACTER.get('genders'), vocations=NEW_CHARACTER.get('vocations'), towns=NEW_CHARACTER.get('towns') )