Skip to content

Commit 7ff9de6

Browse files
committed
fixed filtering on 'school' and 'classes' for /spells endpoint
1 parent fbd25fb commit 7ff9de6

File tree

5 files changed

+20
-3
lines changed

5 files changed

+20
-3
lines changed

api_v2/serializers/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
from .condition import ConditionSerializer
3535

36-
from .spell import SpellSerializer
36+
from .spell import SpellSerializer, SpellSchoolSerializer
3737

3838
from .characterclass import CharacterClassSerializer
3939
from .characterclass import ClassFeatureSerializer

api_v2/serializers/spell.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66

77
from .abstracts import GameContentSerializer
88
from .document import DocumentSerializer
9+
from .characterclass import CharacterClassSerializer
910

1011
from drf_spectacular.utils import extend_schema_field
1112
from drf_spectacular.types import OpenApiTypes
1213

13-
class SpellSchoolSerializer(serializers.ModelSerializer):
14+
class SpellSchoolSerializer(GameContentSerializer):
1415
class Meta:
1516
model = models.SpellSchool
1617
fields='__all__'
@@ -27,6 +28,7 @@ class SpellSerializer(GameContentSerializer):
2728
key = serializers.ReadOnlyField()
2829
casting_options = SpellCastingOptionSerializer(many=True)
2930
school = SpellSchoolSerializer()
31+
classes = CharacterClassSerializer(many=True)
3032

3133
range_unit = serializers.SerializerMethodField()
3234
shape_size_unit = serializers.SerializerMethodField()

api_v2/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
router.register(r'alignments',views.AlignmentViewSet)
2626
router.register(r'conditions',views.ConditionViewSet)
2727
router.register(r'spells',views.SpellViewSet)
28+
router.register(r'spellschools', views.SpellSchoolViewSet)
2829
router.register(r'classes',views.CharacterClassViewSet)
2930
router.register(r'sizes',views.SizeViewSet)
3031
router.register(r'itemrarities',views.ItemRarityViewSet)

api_v2/views/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
from .condition import ConditionViewSet
3232

33-
from .spell import SpellViewSet
33+
from .spell import SpellViewSet, SpellSchoolViewSet
3434

3535
from .characterclass import CharacterClassViewSet
3636

api_v2/views/spell.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,17 @@ def setup_eager_loading(queryset, depth):
6161
queryset = queryset.select_related(*selects).prefetch_related(*prefetches)
6262
return queryset
6363

64+
class SpellSchoolFilterSet(FilterSet):
65+
class Meta:
66+
model = models.CreatureSet
67+
fields = {
68+
'key': ['in', 'iexact', 'exact' ],
69+
'name': ['iexact', 'exact','contains'],
70+
'document__key': ['in','iexact','exact'],
71+
'document__gamesystem__key': ['in','iexact','exact'],
72+
}
73+
74+
class SpellSchoolViewSet(viewsets.ReadOnlyModelViewSet):
75+
queryset = models.SpellSchool.objects.all().order_by('pk')
76+
serializer_class = serializers.SpellSchoolSerializer
77+
filterset_class = SpellSchoolFilterSet

0 commit comments

Comments
 (0)