def process_new_ability_form(char_id): """Add new ability to database.""" form = AddAbilityForm() if form.validate_on_submit(): new_ability = Ability(name=form.name.data, image_url=form.image_url.data, damage=form.damage.data, damage_type=form.damage_type.data, description=form.description.data, ability_range=form.ability_range.data, effect_area=form.effect_area.data, min_level=form.min_level.data, is_spell=form.is_spell.data, school=form.school.data, notes=form.notes.data, character_id=char_id) db.session.add(new_ability) db.session.commit() serial_ability = new_ability.serialize() return (jsonify(serial_ability), 200) errors = {"errors": form.errors} return jsonify(errors)
def copy_item(): """Copy item to other character.""" if not g.user: return (jsonify("error: login"), 403) args = request.args charid = args["charid"] itemid = args["itemid"] itemtype = args["itemtype"] item = None newitem = None character = Character.query.get(charid) if character.user_id != g.user.id: if not g.user: return (jsonify("error: login"), 403) if itemtype == "ability": item = Ability.query.get(itemid) newitem = Ability(name=item.name, image_url=item.image_url, damage=item.damage, damage_type=item.damage_type, description=item.description, ability_range=item.ability_range, effect_area=item.effect_area, min_level=item.min_level, is_spell=item.is_spell, school=item.school, notes=item.notes, character_id=character.id) elif itemtype == "weapon": item = Weapon.query.get(itemid) newitem = Weapon(name=item.name, image_url=item.image_url, weapon_type=item.weapon_type, damage=item.damage, damage_type=item.damage_type, weapon_range=item.weapon_range, description=item.description, weight=item.weight, condition=item.condition, rarity=item.rarity, notes=item.notes, is_equipped=item.is_equipped, character_id=character.id) else: item = Item.query.get(itemid) newitem = Item(name=item.name, image_url=item.image_url, description=item.description, weight=item.weight, is_wearable=item.is_wearable, armor_class=item.armor_class, condition=item.condition, rarity=item.rarity, quantity=item.quantity, notes=item.notes, is_equipped=item.is_equipped, character_id=character.id) db.session.add(newitem) db.session.commit() return (jsonify(newitem.serialize()), 200)