mirror of
https://github.com/PokeAPI/pokeapi
synced 2025-02-16 12:38:25 +00:00
I feel like theres a ton of good convenience resource linking going on now
This commit is contained in:
parent
1f480cedac
commit
342ea98b87
13 changed files with 202 additions and 337 deletions
|
@ -6,7 +6,7 @@ from django.db import models, migrations
|
|||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
replaces = [(b'pokemon_v2', '0001_squashed_0024_auto_20151027_0023'), (b'pokemon_v2', '0002_auto_20151102_2124'), (b'pokemon_v2', '0003_auto_20151105_0309'), (b'pokemon_v2', '0004_auto_20151105_1947'), (b'pokemon_v2', '0005_auto_20151105_1949'), (b'pokemon_v2', '0006_auto_20151106_1654'), (b'pokemon_v2', '0007_auto_20151106_2319'), (b'pokemon_v2', '0008_auto_20151107_0323'), (b'pokemon_v2', '0009_auto_20151107_1516'), (b'pokemon_v2', '0010_auto_20151108_0208'), (b'pokemon_v2', '0011_auto_20151108_0352')]
|
||||
#replaces = [(b'pokemon_v2', '0001_squashed_0011_auto_20151108_0352'), (b'pokemon_v2', '0002_auto_20151110_1756'), (b'pokemon_v2', '0003_berryflavormap'), (b'pokemon_v2', '0004_auto_20151111_0531'), (b'pokemon_v2', '0005_auto_20151111_0541'), (b'pokemon_v2', '0006_auto_20151111_2216'), (b'pokemon_v2', '0007_auto_20151113_1414'), (b'pokemon_v2', '0008_auto_20151114_0241'), (b'pokemon_v2', '0009_auto_20151114_0433'), (b'pokemon_v2', '0010_auto_20151116_0219'), (b'pokemon_v2', '0011_auto_20151116_0230'), (b'pokemon_v2', '0012_auto_20151116_0317')]
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
@ -1853,24 +1853,12 @@ class Migration(migrations.Migration):
|
|||
name='ItemFlingEffect',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(default='name', max_length=100)),
|
||||
],
|
||||
options={
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ItemFlingEffectDescription',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('item_fling_effect', models.ForeignKey(related_name='itemflingeffectdescription', blank=True, to='pokemon_v2.ItemFlingEffect', null=True)),
|
||||
('language', models.ForeignKey(related_name='itemflingeffectdescription_language', blank=True, to='pokemon_v2.Language', null=True)),
|
||||
('description', models.CharField(default='', max_length=1000)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ItemGameIndex',
|
||||
fields=[
|
||||
|
@ -2453,7 +2441,7 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='palpark',
|
||||
name='pal_park_area',
|
||||
field=models.ForeignKey(blank=True, to='pokemon_v2.PalParkArea', null=True),
|
||||
field=models.ForeignKey(related_name='palpark', blank=True, to='pokemon_v2.PalParkArea', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
|
@ -2712,12 +2700,6 @@ class Migration(migrations.Migration):
|
|||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='itemflingeffect',
|
||||
name='name',
|
||||
field=models.CharField(default='name', max_length=100),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ItemAttributeDescription',
|
||||
fields=[
|
||||
|
@ -3053,4 +3035,116 @@ class Migration(migrations.Migration):
|
|||
field=models.ForeignKey(related_name='abilitychange', blank=True, to='pokemon_v2.VersionGroup', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='BerryFlavorName',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('berry_flavor', models.ForeignKey(related_name='berryflavorname', blank=True, to='pokemon_v2.BerryFlavor', null=True)),
|
||||
('language', models.ForeignKey(related_name='berryflavorname_language', blank=True, to='pokemon_v2.Language', null=True)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='berryflavor',
|
||||
name='berry',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='berryflavor',
|
||||
name='flavor',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='berryflavor',
|
||||
name='name',
|
||||
field=models.CharField(default='name', max_length=100),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='BerryFlavorMap',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('potency', models.IntegerField()),
|
||||
('berry', models.ForeignKey(related_name='berryflavormap', blank=True, to='pokemon_v2.Berry', null=True)),
|
||||
('berry_flavor', models.ForeignKey(related_name='berryflavormap', blank=True, to='pokemon_v2.BerryFlavor', null=True)),
|
||||
],
|
||||
options={
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ItemFlingEffectEffectText',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('item_fling_effect', models.ForeignKey(related_name='itemflingeffecteffecttext', blank=True, to='pokemon_v2.ItemFlingEffect', null=True)),
|
||||
('language', models.ForeignKey(related_name='itemflingeffecteffecttext_language', blank=True, to='pokemon_v2.Language', null=True)),
|
||||
('effect', models.CharField(default='string', max_length=4000)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='berry',
|
||||
name='berry_firmness',
|
||||
field=models.ForeignKey(related_name='berry', blank=True, to='pokemon_v2.BerryFirmness', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='berryflavor',
|
||||
name='contest_type',
|
||||
field=models.OneToOneField(related_name='berryflavor', null=True, blank=True, to='pokemon_v2.ContestType'),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='move',
|
||||
name='contest_effect_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='move',
|
||||
name='contest_type_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='move',
|
||||
name='super_contest_effect_id',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='move',
|
||||
name='contest_effect',
|
||||
field=models.ForeignKey(related_name='move', blank=True, to='pokemon_v2.ContestEffect', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='move',
|
||||
name='contest_type',
|
||||
field=models.ForeignKey(related_name='move', blank=True, to='pokemon_v2.ContestType', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='move',
|
||||
name='super_contest_effect',
|
||||
field=models.ForeignKey(related_name='move', blank=True, to='pokemon_v2.SuperContestEffect', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='pokemonspecies',
|
||||
name='pokemon_habitat',
|
||||
field=models.ForeignKey(related_name='pokemonspecies', blank=True, to='pokemon_v2.PokemonHabitat', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='pokemonspecies',
|
||||
name='pokemon_shape',
|
||||
field=models.ForeignKey(related_name='pokemonspecies', blank=True, to='pokemon_v2.PokemonShape', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='generation',
|
||||
name='region',
|
||||
field=models.OneToOneField(related_name='generation', null=True, blank=True, to='pokemon_v2.Region'),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,41 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0001_squashed_0011_auto_20151108_0352'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='BerryFlavorName',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('berry_flavor', models.ForeignKey(related_name='berryflavorname', blank=True, to='pokemon_v2.BerryFlavor', null=True)),
|
||||
('language', models.ForeignKey(related_name='berryflavorname_language', blank=True, to='pokemon_v2.Language', null=True)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='berryflavor',
|
||||
name='berry',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='berryflavor',
|
||||
name='flavor',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='berryflavor',
|
||||
name='name',
|
||||
field=models.CharField(default='name', max_length=100),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
|
@ -1,26 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0002_auto_20151110_1756'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='BerryFlavorMap',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('potency', models.IntegerField()),
|
||||
('berry', models.ForeignKey(related_name='berryflavormap', blank=True, to='pokemon_v2.Berry', null=True)),
|
||||
('berry_flavor', models.ForeignKey(related_name='berryflavormap', blank=True, to='pokemon_v2.BerryFlavor', null=True)),
|
||||
],
|
||||
options={
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
]
|
|
@ -1,38 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0003_berryflavormap'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ItemFlingEffectEffectText',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('description', models.CharField(default='', max_length=1000)),
|
||||
('item_fling_effect', models.ForeignKey(related_name='itemflingeffecteffecttext', blank=True, to='pokemon_v2.ItemFlingEffect', null=True)),
|
||||
('language', models.ForeignKey(related_name='itemflingeffecteffecttext_language', blank=True, to='pokemon_v2.Language', null=True)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='itemflingeffectdescription',
|
||||
name='item_fling_effect',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='itemflingeffectdescription',
|
||||
name='language',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='ItemFlingEffectDescription',
|
||||
),
|
||||
]
|
|
@ -1,24 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0004_auto_20151111_0531'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='itemflingeffecteffecttext',
|
||||
name='description',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='itemflingeffecteffecttext',
|
||||
name='effect',
|
||||
field=models.CharField(default='string', max_length=4000),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0005_auto_20151111_0541'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='palpark',
|
||||
name='pal_park_area',
|
||||
field=models.ForeignKey(related_name='palpark', blank=True, to='pokemon_v2.PalParkArea', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0006_auto_20151111_2216'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='berry',
|
||||
name='berry_firmness',
|
||||
field=models.ForeignKey(related_name='berry', blank=True, to='pokemon_v2.BerryFirmness', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0007_auto_20151113_1414'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='berryflavor',
|
||||
name='contest_type',
|
||||
field=models.OneToOneField(related_name='berryflavor', null=True, blank=True, to='pokemon_v2.ContestType'),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,44 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0008_auto_20151114_0241'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='move',
|
||||
name='contest_effect_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='move',
|
||||
name='contest_type_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='move',
|
||||
name='super_contest_effect_id',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='move',
|
||||
name='contest_effect',
|
||||
field=models.ForeignKey(related_name='move', blank=True, to='pokemon_v2.ContestEffect', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='move',
|
||||
name='contest_type',
|
||||
field=models.ForeignKey(related_name='move', blank=True, to='pokemon_v2.ContestType', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='move',
|
||||
name='super_contest_effect',
|
||||
field=models.ForeignKey(related_name='move', blank=True, to='pokemon_v2.SuperContestEffect', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0009_auto_20151114_0433'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='pokemonspecies',
|
||||
name='pokemon_habitat',
|
||||
field=models.ForeignKey(related_name='pokemonspecies', blank=True, to='pokemon_v2.PokemonHabitat', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0010_auto_20151116_0219'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='pokemonspecies',
|
||||
name='pokemon_shape',
|
||||
field=models.ForeignKey(related_name='pokemonspecies', blank=True, to='pokemon_v2.PokemonShape', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pokemon_v2', '0011_auto_20151116_0230'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='generation',
|
||||
name='region',
|
||||
field=models.OneToOneField(related_name='generation', null=True, blank=True, to='pokemon_v2.Region'),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -330,6 +330,24 @@ class ItemAttributeMapSerializer(serializers.ModelSerializer):
|
|||
model = ItemAttributeMap
|
||||
fields = ('item', 'attribute',)
|
||||
|
||||
class MoveMetaStatChangeSerializer(serializers.ModelSerializer):
|
||||
|
||||
stat = StatSummarySerializer()
|
||||
move = MoveSummarySerializer()
|
||||
|
||||
class Meta:
|
||||
model = MoveMetaStatChange
|
||||
fields = ('change', 'move', 'stat')
|
||||
|
||||
class NaturePokeathlonStatSerializer(serializers.ModelSerializer):
|
||||
|
||||
pokeathlon_stat = PokeathlonStatSummarySerializer()
|
||||
nature = NatureSummarySerializer()
|
||||
|
||||
class Meta:
|
||||
model = NaturePokeathlonStat
|
||||
fields = ( 'max_change', 'nature', 'pokeathlon_stat')
|
||||
|
||||
class PokemonAbilitySerializer(serializers.ModelSerializer):
|
||||
|
||||
pokemon = PokemonSummarySerializer()
|
||||
|
@ -437,10 +455,11 @@ class SuperContestEffectFlavorTextSerializer(serializers.ModelSerializer):
|
|||
class SuperContestEffectDetailSerializer(serializers.ModelSerializer):
|
||||
|
||||
flavor_text_entries = SuperContestEffectFlavorTextSerializer(many=True, read_only=True, source='supercontesteffectflavortext')
|
||||
moves = MoveSummarySerializer(many=True, read_only=True, source='move')
|
||||
|
||||
class Meta:
|
||||
model = SuperContestEffect
|
||||
fields = ('id', 'appeal', 'flavor_text_entries')
|
||||
fields = ('id', 'appeal', 'flavor_text_entries', 'moves')
|
||||
|
||||
|
||||
class ContestEffectEffectTextSerializer(serializers.ModelSerializer):
|
||||
|
@ -1029,11 +1048,37 @@ class StatDetailSerializer(serializers.ModelSerializer):
|
|||
|
||||
names = StatNameSerializer(many=True, read_only=True, source="statname")
|
||||
move_damage_class = MoveDamageClassSummarySerializer()
|
||||
characteristics = CharacteristicSummarySerializer(many=True, read_only=True, source="characteristic")
|
||||
affecting_moves = serializers.SerializerMethodField('get_moves_that_affect')
|
||||
affecting_natures = serializers.SerializerMethodField('get_natures_that_affect')
|
||||
|
||||
class Meta:
|
||||
model = Stat
|
||||
fields = ('id', 'name', 'game_index', 'is_battle_only', 'move_damage_class', 'names')
|
||||
fields = ('id', 'name', 'game_index', 'is_battle_only', 'affecting_moves', 'affecting_natures', 'characteristics', 'move_damage_class', 'names')
|
||||
|
||||
def get_moves_that_affect(self, obj):
|
||||
|
||||
stat_change_objects = MoveMetaStatChange.objects.filter(stat=obj)
|
||||
stat_changes = MoveMetaStatChangeSerializer(stat_change_objects, many=True, context=self.context).data
|
||||
changes = OrderedDict([('increase', []),('decrease', [])])
|
||||
|
||||
for change in stat_changes:
|
||||
del change['stat']
|
||||
if change['change'] > 0:
|
||||
changes['increase'].append(change)
|
||||
else:
|
||||
changes['decrease'].append(change)
|
||||
|
||||
return changes
|
||||
|
||||
def get_natures_that_affect(self, obj):
|
||||
|
||||
increase_objects = Nature.objects.filter(increased_stat=obj)
|
||||
increases = NatureSummarySerializer(increase_objects, many=True, context=self.context).data
|
||||
decrease_objects = Nature.objects.filter(decreased_stat=obj)
|
||||
decreases = NatureSummarySerializer(decrease_objects, many=True, context=self.context).data
|
||||
|
||||
return OrderedDict([('increase', increases),('decrease', decreases)])
|
||||
|
||||
|
||||
#############################
|
||||
|
@ -1296,14 +1341,6 @@ class NatureBattleStylePreferenceSerializer(serializers.ModelSerializer):
|
|||
fields = ( 'low_hp_preference', 'high_hp_preference', 'move_battle_style',)
|
||||
|
||||
|
||||
class NaturePokeathlonStatSerializer(serializers.ModelSerializer):
|
||||
|
||||
pokeathlon_stat = PokeathlonStatSummarySerializer()
|
||||
|
||||
class Meta:
|
||||
model = NaturePokeathlonStat
|
||||
fields = ( 'max_change', 'pokeathlon_stat',)
|
||||
|
||||
|
||||
class NatureNameSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
@ -1324,13 +1361,22 @@ class NatureDetailSerializer(serializers.ModelSerializer):
|
|||
likes_flavor = BerryFlavorSummarySerializer()
|
||||
hates_flavor = BerryFlavorSummarySerializer()
|
||||
berries = BerrySummarySerializer(many=True, read_only=True, source="berry")
|
||||
pokeathlon_stat_changes = NaturePokeathlonStatSerializer(many=True, read_only=True, source="naturepokeathlonstat")
|
||||
pokeathlon_stat_changes = serializers.SerializerMethodField('get_pokeathlon_stats')
|
||||
move_battle_style_preferences = NatureBattleStylePreferenceSerializer(many=True, read_only=True, source="naturebattlestylepreference")
|
||||
|
||||
class Meta:
|
||||
model = Nature
|
||||
fields = ('id', 'name', 'decreased_stat', 'increased_stat', 'likes_flavor', 'hates_flavor', 'berries', 'pokeathlon_stat_changes', 'move_battle_style_preferences', 'names')
|
||||
|
||||
def get_pokeathlon_stats(self, obj):
|
||||
|
||||
pokeathlon_stat_objects = NaturePokeathlonStat.objects.filter(nature=obj)
|
||||
pokeathlon_stats = NaturePokeathlonStatSerializer(pokeathlon_stat_objects, many=True, context=self.context).data
|
||||
|
||||
for stat in pokeathlon_stats:
|
||||
del stat['nature']
|
||||
|
||||
return pokeathlon_stats
|
||||
|
||||
|
||||
#######################
|
||||
|
@ -1496,10 +1542,11 @@ class TypeDetailSerializer(serializers.ModelSerializer):
|
|||
move_damage_class = MoveDamageClassSummarySerializer()
|
||||
damage_relations = serializers.SerializerMethodField('get_type_relationships')
|
||||
pokemon = serializers.SerializerMethodField('get_type_pokemon')
|
||||
moves = MoveSummarySerializer(many=True, read_only=True, source="move")
|
||||
|
||||
class Meta:
|
||||
model = Type
|
||||
fields = ('id', 'name', 'move_damage_class', 'generation', 'names', 'game_indices', 'damage_relations')
|
||||
fields = ('id', 'name', 'damage_relations', 'game_indices', 'generation', 'move_damage_class', 'names', 'pokemon', 'moves')
|
||||
|
||||
def get_type_relationships(self, obj):
|
||||
|
||||
|
@ -1691,15 +1738,6 @@ class MoveMetaCategoryDetailSerializer(serializers.ModelSerializer):
|
|||
return moves
|
||||
|
||||
|
||||
class MoveMetaStatChangeSerializer(serializers.ModelSerializer):
|
||||
|
||||
stat = StatSummarySerializer()
|
||||
|
||||
class Meta:
|
||||
model = MoveMetaStatChange
|
||||
fields = ('change', 'stat')
|
||||
|
||||
|
||||
class MoveMetaSerializer(serializers.ModelSerializer):
|
||||
|
||||
ailment = MoveMetaAilmentSummarySerializer(source="move_meta_ailment")
|
||||
|
@ -1831,7 +1869,7 @@ class MoveDetailSerializer(serializers.ModelSerializer):
|
|||
effect_entries = serializers.SerializerMethodField('get_effect_text')
|
||||
effect_chance = serializers.IntegerField(source="move_effect_chance")
|
||||
contest_combos = serializers.SerializerMethodField('get_combos')
|
||||
stat_changes = MoveMetaStatChangeSerializer(many=True, read_only=True, source="movemetastatchange")
|
||||
stat_changes = serializers.SerializerMethodField('get_move_stat_change')
|
||||
super_contest_effect = SuperContestEffectSummarySerializer()
|
||||
past_values = MoveChangeSerializer(many=True, read_only=True, source="movechange")
|
||||
effect_change = serializers.SerializerMethodField('get_effect_change_text')
|
||||
|
@ -1923,6 +1961,16 @@ class MoveDetailSerializer(serializers.ModelSerializer):
|
|||
|
||||
return data
|
||||
|
||||
def get_move_stat_change(self, obj):
|
||||
|
||||
stat_change_objects = MoveMetaStatChange.objects.filter(move=obj)
|
||||
stat_changes = MoveMetaStatChangeSerializer(stat_change_objects, many=True, context=self.context).data
|
||||
|
||||
for change in stat_changes:
|
||||
del change['move']
|
||||
|
||||
return stat_changes
|
||||
|
||||
|
||||
##########################
|
||||
# PAL PARK SERIALIZERS #
|
||||
|
@ -2662,10 +2710,26 @@ class PokeathlonStatNameSerializer(serializers.HyperlinkedModelSerializer):
|
|||
class PokeathlonStatDetailSerializer(serializers.HyperlinkedModelSerializer):
|
||||
|
||||
names = PokeathlonStatNameSerializer(many=True, read_only=True, source="pokeathlonstatname")
|
||||
affecting_natures = serializers.SerializerMethodField('get_natures_that_affect')
|
||||
|
||||
class Meta:
|
||||
model = PokeathlonStat
|
||||
fields = ('id', 'name', 'names')
|
||||
fields = ('id', 'name', 'affecting_natures', 'names')
|
||||
|
||||
def get_natures_that_affect(self, obj):
|
||||
|
||||
stat_change_objects = NaturePokeathlonStat.objects.filter(pokeathlon_stat=obj)
|
||||
stat_changes = NaturePokeathlonStatSerializer(stat_change_objects, many=True, context=self.context).data
|
||||
changes = OrderedDict([('increase', []),('decrease', [])])
|
||||
|
||||
for change in stat_changes:
|
||||
del change['pokeathlon_stat']
|
||||
if change['max_change'] > 0:
|
||||
changes['increase'].append(change)
|
||||
else:
|
||||
changes['decrease'].append(change)
|
||||
|
||||
return changes
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue