diff --git a/backend/core/serializers.py b/backend/core/serializers.py
index 5d16023950..7ad0ee414e 100644
--- a/backend/core/serializers.py
+++ b/backend/core/serializers.py
@@ -191,6 +191,14 @@ class Meta:
class RiskAssessmentWriteSerializer(BaseModelSerializer):
+ ebios_rm_studies = serializers.PrimaryKeyRelatedField(
+ many=True,
+ queryset=EbiosRMStudy.objects.all(),
+ required=False,
+ allow_null=True,
+ write_only=True,
+ )
+
class Meta:
model = RiskAssessment
exclude = ["created_at", "updated_at"]
diff --git a/frontend/src/lib/components/Forms/ModelForm/RiskAssessmentForm.svelte b/frontend/src/lib/components/Forms/ModelForm/RiskAssessmentForm.svelte
index edbfe6f8dc..e1e4510a69 100644
--- a/frontend/src/lib/components/Forms/ModelForm/RiskAssessmentForm.svelte
+++ b/frontend/src/lib/components/Forms/ModelForm/RiskAssessmentForm.svelte
@@ -110,4 +110,16 @@
cacheLock={cacheLocks['observation']}
bind:cachedValue={formDataCache['observation']}
/>
+ {#if initialData.ebios_rm_studies}
+
+ {/if}
{/if}
diff --git a/frontend/src/lib/utils/crud.ts b/frontend/src/lib/utils/crud.ts
index 24089b7f2d..18e601d3ce 100644
--- a/frontend/src/lib/utils/crud.ts
+++ b/frontend/src/lib/utils/crud.ts
@@ -189,7 +189,8 @@ export const URL_MODEL_MAP: ModelMap = {
{ field: 'authors', urlModel: 'users' },
{ field: 'reviewers', urlModel: 'users', urlParams: 'is_third_party=false' },
{ field: 'risk_matrix', urlModel: 'risk-matrices' },
- { field: 'risk_scenarios', urlModel: 'risk-scenarios' }
+ { field: 'risk_scenarios', urlModel: 'risk-scenarios' },
+ { field: 'ebios_rm_studies', urlModel: 'ebios-rm' }
],
reverseForeignKeyFields: [{ field: 'risk_assessment', urlModel: 'risk-scenarios' }],
selectFields: [{ field: 'status' }],
diff --git a/frontend/src/lib/utils/schemas.ts b/frontend/src/lib/utils/schemas.ts
index 4f5574ddb5..374e2bea7a 100644
--- a/frontend/src/lib/utils/schemas.ts
+++ b/frontend/src/lib/utils/schemas.ts
@@ -97,7 +97,8 @@ export const RiskAssessmentSchema = z.object({
due_date: z.union([z.literal('').transform(() => null), z.string().date()]).nullish(),
authors: z.array(z.string().optional()).optional(),
reviewers: z.array(z.string().optional()).optional(),
- observation: z.string().optional().nullable()
+ observation: z.string().optional().nullable(),
+ ebios_rm_studies: z.string().uuid().optional().array().optional()
});
export const ThreatSchema = z.object({
diff --git a/frontend/src/routes/(app)/(internal)/ebios-rm/[id=uuid]/+page.server.ts b/frontend/src/routes/(app)/(internal)/ebios-rm/[id=uuid]/+page.server.ts
index 52f5ce694b..2a8e773413 100644
--- a/frontend/src/routes/(app)/(internal)/ebios-rm/[id=uuid]/+page.server.ts
+++ b/frontend/src/routes/(app)/(internal)/ebios-rm/[id=uuid]/+page.server.ts
@@ -23,7 +23,8 @@ export const load: PageServerLoad = async ({ params, fetch }) => {
const data = await res.json();
const initialData = {
- risk_matrix: data.risk_matrix.id
+ risk_matrix: data.risk_matrix.id,
+ ebios_rm_studies: [params.id]
}
const createSchema = modelSchema('risk-assessments');
diff --git a/frontend/src/routes/(app)/(internal)/ebios-rm/[id=uuid]/Tile.svelte b/frontend/src/routes/(app)/(internal)/ebios-rm/[id=uuid]/Tile.svelte
index 766d335203..1dd02afa50 100644
--- a/frontend/src/routes/(app)/(internal)/ebios-rm/[id=uuid]/Tile.svelte
+++ b/frontend/src/routes/(app)/(internal)/ebios-rm/[id=uuid]/Tile.svelte
@@ -31,15 +31,19 @@
{#each meta as step, i}
{#if step.status == 'done'}
-
-
-
-
- {m.activity()} {i + 1}
- {step.title}
-
+ {#if createRiskAnalysis && i == 0}
+
+ {:else}
+
+
+
+
+ {m.activity()} {i + 1}
+ {step.title}
+
+ {/if}
{:else}