Order Ability's Pokémon relations by Pokemon.order.
[zzz-pokedex.git] / pokedex / db / tables.py
index 4eab271..b5f1d7d 100644 (file)
@@ -283,15 +283,6 @@ class EncounterSlot(TableBase):
     rarity = Column(Integer, nullable=False,
         info=dict(description="The chance of the encounter as a percentage"))
 
     rarity = Column(Integer, nullable=False,
         info=dict(description="The chance of the encounter as a percentage"))
 
-class EncounterSlotCondition(TableBase):
-    u"""A condition that affects an encounter slot.
-    """
-    __tablename__ = 'encounter_slot_conditions'
-    encounter_slot_id = Column(Integer, ForeignKey('encounter_slots.id'), primary_key=True, nullable=False, autoincrement=False,
-        info=dict(description="The ID of the encounter slot"))
-    encounter_condition_id = Column(Integer, ForeignKey('encounter_conditions.id'), primary_key=True, nullable=False, autoincrement=False,
-        info=dict(description="The ID of the encounter condition"))
-
 class EvolutionChain(TableBase):
     u"""A family of Pokémon that are linked by evolution
     """
 class EvolutionChain(TableBase):
     u"""A family of Pokémon that are linked by evolution
     """
@@ -838,10 +829,8 @@ class Pokemon(TableBase):
         info=dict(description=u"True iff the Pokémon is a baby, i.e. a lowest-stage Pokémon that cannot breed but whose evolved form can."))
     hatch_counter = Column(Integer, nullable=False,
         info=dict(description=u"Initial hatch counter: one must walk 255 × (hatch_counter + 1) steps before this Pokémon's egg hatches, unless utilizing bonuses like Flame Body's"))
         info=dict(description=u"True iff the Pokémon is a baby, i.e. a lowest-stage Pokémon that cannot breed but whose evolved form can."))
     hatch_counter = Column(Integer, nullable=False,
         info=dict(description=u"Initial hatch counter: one must walk 255 × (hatch_counter + 1) steps before this Pokémon's egg hatches, unless utilizing bonuses like Flame Body's"))
-    has_gen4_fem_sprite = Column(Boolean, nullable=False,
-        info=dict(description=u"Set iff the species' female front sprite is different from the male's in generation IV"))
-    has_gen4_fem_back_sprite = Column(Boolean, nullable=False,
-        info=dict(description=u"Set iff the species' female back sprite is different from the male's in generation IV"))
+    has_gender_differences = Column(Boolean, nullable=False,
+        info=dict(description=u"Set iff the species exhibits enough sexual dimorphism to have separate sets of sprites in Gen IV and beyond."))
     order = Column(Integer, nullable=False, index=True,
         info=dict(description=u"Order for sorting. Almost national order, except families and forms are grouped together."))
 
     order = Column(Integer, nullable=False, index=True,
         info=dict(description=u"Order for sorting. Almost national order, except families and forms are grouped together."))
 
@@ -995,7 +984,7 @@ class PokemonEvolution(TableBase):
         info=dict(description=u"The ID of the location the evolution must be triggered at."))
     held_item_id = Column(Integer, ForeignKey('items.id'), nullable=True,
         info=dict(description=u"The ID of the item the Pokémon must hold."))
         info=dict(description=u"The ID of the location the evolution must be triggered at."))
     held_item_id = Column(Integer, ForeignKey('items.id'), nullable=True,
         info=dict(description=u"The ID of the item the Pokémon must hold."))
-    time_of_day = Column(Enum('morning', 'day', 'night', name='pokemon_evolution_time_of_day'), nullable=True,
+    time_of_day = Column(Enum('day', 'night', name='pokemon_evolution_time_of_day'), nullable=True,
         info=dict(description=u"The required time of day."))
     known_move_id = Column(Integer, ForeignKey('moves.id'), nullable=True,
         info=dict(description=u"The ID of the move the Pokémon must know."))
         info=dict(description=u"The required time of day."))
     known_move_id = Column(Integer, ForeignKey('moves.id'), nullable=True,
         info=dict(description=u"The ID of the move the Pokémon must know."))
@@ -1329,6 +1318,7 @@ Ability.foreign_names = relation(AbilityName, backref='ability')
 Ability.generation = relation(Generation, backref='abilities')
 Ability.all_pokemon = relation(Pokemon,
     secondary=PokemonAbility.__table__,
 Ability.generation = relation(Generation, backref='abilities')
 Ability.all_pokemon = relation(Pokemon,
     secondary=PokemonAbility.__table__,
+    order_by=Pokemon.order,
     back_populates='all_abilities',
 )
 Ability.pokemon = relation(Pokemon,
     back_populates='all_abilities',
 )
 Ability.pokemon = relation(Pokemon,
@@ -1337,6 +1327,7 @@ Ability.pokemon = relation(Pokemon,
         PokemonAbility.ability_id == Ability.id,
         PokemonAbility.is_dream == False
     ),
         PokemonAbility.ability_id == Ability.id,
         PokemonAbility.is_dream == False
     ),
+    order_by=Pokemon.order,
     back_populates='abilities',
 )
 Ability.dream_pokemon = relation(Pokemon,
     back_populates='abilities',
 )
 Ability.dream_pokemon = relation(Pokemon,
@@ -1345,6 +1336,7 @@ Ability.dream_pokemon = relation(Pokemon,
         PokemonAbility.ability_id == Ability.id,
         PokemonAbility.is_dream == True
     ),
         PokemonAbility.ability_id == Ability.id,
         PokemonAbility.is_dream == True
     ),
+    order_by=Pokemon.order,
     back_populates='dream_ability',
 )
 
     back_populates='dream_ability',
 )
 
@@ -1379,11 +1371,7 @@ EncounterConditionValueMap.condition_value = relation(EncounterConditionValue,
                                                       backref='encounter_map')
 
 EncounterSlot.terrain = relation(EncounterTerrain, backref='slots')
                                                       backref='encounter_map')
 
 EncounterSlot.terrain = relation(EncounterTerrain, backref='slots')
-
-EncounterSlot.condition_map = relation(EncounterSlotCondition, backref='slot')
-EncounterSlot.conditions = association_proxy('condition_map', 'condition')
-EncounterSlotCondition.condition = relation(EncounterCondition,
-                                            backref='slot_map')
+EncounterSlot.version_group = relation(VersionGroup)
 
 EvolutionChain.growth_rate = relation(GrowthRate, backref='evolution_chains')
 EvolutionChain.baby_trigger_item = relation(Item, backref='evolution_chains')
 
 EvolutionChain.growth_rate = relation(GrowthRate, backref='evolution_chains')
 EvolutionChain.baby_trigger_item = relation(Item, backref='evolution_chains')
@@ -1449,7 +1437,7 @@ Move.super_contest_effect = relation(SuperContestEffect, backref='moves')
 Move.super_contest_combo_next = association_proxy('super_contest_combo_first', 'second')
 Move.super_contest_combo_prev = association_proxy('super_contest_combo_second', 'first')
 Move.target = relation(MoveTarget, backref='moves')
 Move.super_contest_combo_next = association_proxy('super_contest_combo_first', 'second')
 Move.super_contest_combo_prev = association_proxy('super_contest_combo_second', 'first')
 Move.target = relation(MoveTarget, backref='moves')
-Move.type = relation(Type, backref='moves')
+Move.type = relation(Type, back_populates='moves')
 
 Move.effect = markdown.MoveEffectProperty('effect')
 Move.short_effect = markdown.MoveEffectProperty('short_effect')
 
 Move.effect = markdown.MoveEffectProperty('effect')
 Move.short_effect = markdown.MoveEffectProperty('short_effect')
@@ -1643,6 +1631,7 @@ Type.foreign_names = relation(TypeName, backref='type')
 Type.pokemon = relation(Pokemon, secondary=PokemonType.__table__,
                                  order_by=Pokemon.order,
                                  back_populates='types')
 Type.pokemon = relation(Pokemon, secondary=PokemonType.__table__,
                                  order_by=Pokemon.order,
                                  back_populates='types')
+Type.moves = relation(Move, back_populates='type', order_by=Move.name)
 
 TypeName.language = relation(Language)
 
 
 TypeName.language = relation(Language)