diff --git a/backend/ebios_rm/models.py b/backend/ebios_rm/models.py index 7eb44315e3..9fd9c0cd36 100644 --- a/backend/ebios_rm/models.py +++ b/backend/ebios_rm/models.py @@ -362,6 +362,20 @@ def residual_criticality(self): self.residual_trust, ) + def get_current_criticality_display(self) -> str: + return ( + f"{self.current_criticality:.2f}".rstrip("0").rstrip(".") + if "." in f"{self.current_criticality:.2f}" + else f"{self.current_criticality:.2f}" + ) + + def get_residual_criticality_display(self) -> str: + return ( + f"{self.residual_criticality:.2f}".rstrip("0").rstrip(".") + if "." in f"{self.residual_criticality:.2f}" + else f"{self.residual_criticality:.2f}" + ) + class AttackPath(NameDescriptionMixin, FolderMixin): ebios_rm_study = models.ForeignKey( diff --git a/backend/ebios_rm/serializers.py b/backend/ebios_rm/serializers.py index 7a9e597bdb..041b5904f2 100644 --- a/backend/ebios_rm/serializers.py +++ b/backend/ebios_rm/serializers.py @@ -104,8 +104,12 @@ class Meta: class StakeholderWriteSerializer(BaseModelSerializer): - current_criticality = serializers.IntegerField(read_only=True) - residual_criticality = serializers.IntegerField(read_only=True) + current_criticality = serializers.CharField( + source="get_current_criticality_display" + ) + residual_criticality = serializers.CharField( + source="get_residual_criticality_display" + ) class Meta: model = Stakeholder @@ -120,8 +124,12 @@ class StakeholderReadSerializer(BaseModelSerializer): applied_controls = FieldsRelatedField(many=True) category = serializers.CharField(source="get_category_display") - current_criticality = serializers.IntegerField() - residual_criticality = serializers.IntegerField() + current_criticality = serializers.CharField( + source="get_current_criticality_display" + ) + residual_criticality = serializers.CharField( + source="get_residual_criticality_display" + ) class Meta: model = Stakeholder diff --git a/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte b/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte index 288cf1479b..6b1a576f31 100644 --- a/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte @@ -55,7 +55,7 @@ trust: number ) => { if (maturity === 0 || trust === 0) return 0; - return (dependency * penetration) / (maturity * trust); + return ((dependency * penetration) / (maturity * trust)).toFixed(2).replace(/\.?0+$/, ''); }; $: currentCriticality = getCriticality(