Skip to content

Commit 72861d0

Browse files
Maffoochclaude
andcommitted
Revert PR #14634 changes (editable=False approach)
Reverting the approach of making Engagement.product editable=False and splitting serializers. Will replace with proper permission checks on the destination product when moving engagements. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent ca4c445 commit 72861d0

4 files changed

Lines changed: 2 additions & 55 deletions

File tree

dojo/api_v2/serializers.py

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,7 +1119,7 @@ class Meta:
11191119
exclude = ("inherited_tags",)
11201120

11211121
def validate(self, data):
1122-
if data.get("target_start") and data.get("target_end"):
1122+
if self.context["request"].method == "POST":
11231123
if data.get("target_start") > data.get("target_end"):
11241124
msg = "Your target start date exceeds your target end date"
11251125
raise serializers.ValidationError(msg)
@@ -1133,30 +1133,6 @@ def build_relational_field(self, field_name, relation_info):
11331133
return super().build_relational_field(field_name, relation_info)
11341134

11351135

1136-
class EngagementCreateSerializer(serializers.ModelSerializer):
1137-
product = serializers.PrimaryKeyRelatedField(
1138-
queryset=Product.objects.all(),
1139-
)
1140-
tags = TagListSerializerField(required=False)
1141-
1142-
class Meta:
1143-
model = Engagement
1144-
exclude = ("inherited_tags",)
1145-
1146-
def validate(self, data):
1147-
if data.get("target_start") > data.get("target_end"):
1148-
msg = "Your target start date exceeds your target end date"
1149-
raise serializers.ValidationError(msg)
1150-
return data
1151-
1152-
def build_relational_field(self, field_name, relation_info):
1153-
if field_name == "notes":
1154-
return NoteSerializer, {"many": True, "read_only": True}
1155-
if field_name == "files":
1156-
return FileSerializer, {"many": True, "read_only": True}
1157-
return super().build_relational_field(field_name, relation_info)
1158-
1159-
11601136
class EngagementToNotesSerializer(serializers.Serializer):
11611137
engagement_id = serializers.PrimaryKeyRelatedField(
11621138
queryset=Engagement.objects.all(), many=False, allow_null=True,

dojo/api_v2/views.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -455,11 +455,6 @@ class EngagementViewSet(
455455
def risk_application_model_class(self):
456456
return Engagement
457457

458-
def get_serializer_class(self):
459-
if self.request and self.request.method == "POST":
460-
return serializers.EngagementCreateSerializer
461-
return serializers.EngagementSerializer
462-
463458
def destroy(self, request, *args, **kwargs):
464459
instance = self.get_object()
465460
if get_setting("ASYNC_OBJECT_DELETE"):

dojo/db_migrations/0264_alter_engagement_product_and_more.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

dojo/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1526,7 +1526,7 @@ class Engagement(BaseModel):
15261526
preset = models.ForeignKey(Engagement_Presets, null=True, blank=True, help_text=_("Settings and notes for performing this engagement."), on_delete=models.CASCADE)
15271527
reason = models.CharField(max_length=2000, null=True, blank=True)
15281528
report_type = models.ForeignKey(Report_Type, null=True, blank=True, on_delete=models.CASCADE)
1529-
product = models.ForeignKey(Product, editable=False, on_delete=models.CASCADE)
1529+
product = models.ForeignKey(Product, on_delete=models.CASCADE)
15301530
active = models.BooleanField(default=True, editable=False)
15311531
tracker = models.URLField(max_length=200, help_text=_("Link to epic or ticket system with changes to version."), editable=True, blank=True, null=True)
15321532
test_strategy = models.URLField(editable=True, blank=True, null=True)

0 commit comments

Comments
 (0)