Skip to content

Commit 5ff76dd

Browse files
Merge pull request #827 from calumbell/826/ruleset-filtering
[BUGFIX] Fixed filtering on `/v2/rulesets`
2 parents 782c035 + 83c5655 commit 5ff76dd

File tree

3 files changed

+41
-14
lines changed

3 files changed

+41
-14
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Generated by Django 5.2.1 on 2025-11-03 11:57
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('api_v2', '0066_alter_classfeature_feature_type'),
10+
]
11+
12+
operations = [
13+
migrations.AlterModelOptions(
14+
name='rule',
15+
options={'ordering': ['index']},
16+
),
17+
]

api_v2/models/rule.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@ class Rule(HasName, HasDescription, FromDocument):
3939
)
4040

4141
class Meta:
42-
ordering = ['key']
42+
ordering = ['index']

api_v2/views/rule.py

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,29 @@ class Meta:
1818
}
1919

2020
class RuleViewSet(viewsets.ReadOnlyModelViewSet):
21-
queryset = models.Rule.objects.all()
22-
serializer_class = serializers.RuleSerializer
23-
filterset_class = RuleFilterSet
21+
queryset = models.Rule.objects.all()
22+
serializer_class = serializers.RuleSerializer
23+
filterset_class = RuleFilterSet
2424

25+
class RuleSetFilterSet(FilterSet):
26+
class Meta:
27+
model = models.RuleSet
28+
fields = {
29+
'key': ['in', 'exact'],
30+
'name': ['exact', 'contains'],
31+
'document__key': ['in', 'exact'],
32+
'document__gamesystem__key': ['in', 'exact'],
33+
}
2534

2635
class RuleSetViewSet(EagerLoadingMixin, viewsets.ReadOnlyModelViewSet):
27-
queryset = models.RuleSet.objects.all()
28-
serializer_class = serializers.RuleSetSerializer
29-
30-
select_related_fields = []
31-
prefetch_related_fields = [
32-
'document',
33-
'document__gamesystem',
34-
'document__publisher',
35-
'rules',
36-
]
36+
queryset = models.RuleSet.objects.all()
37+
serializer_class = serializers.RuleSetSerializer
38+
filterset_class = RuleSetFilterSet
39+
40+
select_related_fields = []
41+
prefetch_related_fields = [
42+
'document',
43+
'document__gamesystem',
44+
'document__publisher',
45+
'rules',
46+
]

0 commit comments

Comments
 (0)