Skip to content

Commit 2dfec05

Browse files
authored
Add additional fields to AssetSerializer (#14109)
* Add additional fields to AssetSerializer for business criticality, platform, lifecycle, and origin * Correct some filters too
1 parent e2f468b commit 2dfec05

2 files changed

Lines changed: 15 additions & 10 deletions

File tree

dojo/asset/api/filters.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
CharFieldInFilter,
99
DateRangeFilter,
1010
DojoFilter,
11+
MultipleChoiceFilter,
1112
NumberInFilter,
1213
ProductSLAFilter,
13-
custom_filter,
1414
)
1515
from dojo.labels import get_labels
1616
from dojo.models import (
17+
Product,
1718
Product_API_Scan_Configuration,
1819
Product_Group,
1920
Product_Member,
@@ -38,18 +39,18 @@ class ApiAssetFilter(DojoFilter):
3839
name = CharFilter(lookup_expr="icontains")
3940
name_exact = CharFilter(field_name="name", lookup_expr="iexact")
4041
description = CharFilter(lookup_expr="icontains")
41-
business_criticality = CharFilter(method=custom_filter, field_name="business_criticality")
42-
platform = CharFilter(method=custom_filter, field_name="platform")
43-
lifecycle = CharFilter(method=custom_filter, field_name="lifecycle")
44-
origin = CharFilter(method=custom_filter, field_name="origin")
42+
business_criticality = MultipleChoiceFilter(choices=Product.BUSINESS_CRITICALITY_CHOICES)
43+
platform = MultipleChoiceFilter(choices=Product.PLATFORM_CHOICES)
44+
lifecycle = MultipleChoiceFilter(choices=Product.LIFECYCLE_CHOICES)
45+
origin = MultipleChoiceFilter(choices=Product.ORIGIN_CHOICES)
4546
# NumberInFilter
4647
id = NumberInFilter(field_name="id", lookup_expr="in")
4748
asset_manager = NumberInFilter(field_name="product_manager", lookup_expr="in")
4849
technical_contact = NumberInFilter(field_name="technical_contact", lookup_expr="in")
4950
team_manager = NumberInFilter(field_name="team_manager", lookup_expr="in")
50-
prod_type = NumberInFilter(field_name="prod_type", lookup_expr="in")
51+
organization = NumberInFilter(field_name="prod_type", lookup_expr="in")
5152
tid = NumberInFilter(field_name="tid", lookup_expr="in")
52-
prod_numeric_grade = NumberInFilter(field_name="prod_numeric_grade", lookup_expr="in")
53+
asset_numeric_grade = NumberInFilter(field_name="prod_numeric_grade", lookup_expr="in")
5354
user_records = NumberInFilter(field_name="user_records", lookup_expr="in")
5455
regulations = NumberInFilter(field_name="regulations", lookup_expr="in")
5556

@@ -80,7 +81,7 @@ class ApiAssetFilter(DojoFilter):
8081
("tid", "tid"),
8182
("name", "name"),
8283
("created", "created"),
83-
("prod_numeric_grade", "prod_numeric_grade"),
84+
("prod_numeric_grade", "asset_numeric_grade"),
8485
("business_criticality", "business_criticality"),
8586
("platform", "platform"),
8687
("lifecycle", "lifecycle"),
@@ -97,8 +98,8 @@ class ApiAssetFilter(DojoFilter):
9798
("team_manager", "team_manager"),
9899
("team_manager__first_name", "team_manager__first_name"),
99100
("team_manager__last_name", "team_manager__last_name"),
100-
("prod_type", "prod_type"),
101-
("prod_type__name", "prod_type__name"),
101+
("prod_type", "organization"),
102+
("prod_type__name", "organization__name"),
102103
("updated", "updated"),
103104
("user_records", "user_records"),
104105
),

dojo/asset/api/serializers.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ class AssetSerializer(serializers.ModelSerializer):
4444
queryset=Dojo_User.objects.exclude(is_active=False),
4545
required=False, allow_null=True,
4646
)
47+
business_criticality = serializers.ChoiceField(choices=Product.BUSINESS_CRITICALITY_CHOICES, allow_blank=True, allow_null=True, required=False)
48+
platform = serializers.ChoiceField(choices=Product.PLATFORM_CHOICES, allow_blank=True, allow_null=True, required=False)
49+
lifecycle = serializers.ChoiceField(choices=Product.LIFECYCLE_CHOICES, allow_blank=True, allow_null=True, required=False)
50+
origin = serializers.ChoiceField(choices=Product.ORIGIN_CHOICES, allow_blank=True, allow_null=True, required=False)
4751

4852
class Meta:
4953
model = Product

0 commit comments

Comments
 (0)