X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/056c835e4b25e784d75ea37e0c7484508f0f0470..1136f6cf582e59265f6ce096b269c7403c918296:/pokedex/db/tables.py diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 8ae80d8..39a2948 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -3,7 +3,8 @@ from sqlalchemy import Column, ForeignKey, MetaData, Table from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.associationproxy import association_proxy -from sqlalchemy.orm import backref, relation +from sqlalchemy.orm import backref, eagerload_all, relation +from sqlalchemy.orm.session import Session from sqlalchemy.sql import and_ from sqlalchemy.types import * @@ -286,8 +287,13 @@ class Machine(TableBase): __tablename__ = 'machines' machine_number = Column(Integer, primary_key=True, nullable=False, autoincrement=False) version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False, autoincrement=False) + item_id = Column(Integer, ForeignKey('items.id'), nullable=False) move_id = Column(Integer, ForeignKey('moves.id'), nullable=False) + @property + def is_hm(self): + return self.machine_number >= 100 + class MoveBattleStyle(TableBase): __tablename__ = 'move_battle_styles' id = Column(Integer, primary_key=True, nullable=False) @@ -686,6 +692,7 @@ Item.berry = relation(Berry, uselist=False, backref='item') Item.flags = relation(ItemFlag, secondary=ItemFlagMap.__table__) Item.flavor_text = relation(ItemFlavorText, order_by=ItemFlavorText.version_group_id.asc(), backref='item') Item.fling_effect = relation(ItemFlingEffect, backref='items') +Item.machines = relation(Machine, order_by=Machine.version_group_id.asc()) Item.category = relation(ItemCategory) Item.pocket = association_proxy('category', 'pocket') @@ -700,6 +707,7 @@ Location.region = relation(Region, backref='locations') LocationArea.location = relation(Location, backref='areas') +Machine.item = relation(Item) Machine.version_group = relation(VersionGroup) Move.contest_effect = relation(ContestEffect, backref='moves') @@ -785,7 +793,7 @@ Pokemon.items = relation(PokemonItem, backref='pokemon') Pokemon.generation = relation(Generation, backref='pokemon') Pokemon.shape = relation(PokemonShape, backref='pokemon') Pokemon.stats = relation(PokemonStat, backref='pokemon') -Pokemon.types = relation(Type, secondary=PokemonType.__table__) +Pokemon.types = relation(Type, secondary=PokemonType.__table__, order_by=PokemonType.slot.asc()) PokemonDexNumber.pokedex = relation(Pokedex)