Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement design suggestions #307

Merged
merged 4 commits into from
Dec 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions categories.yaml
Original file line number Diff line number Diff line change
@@ -1,57 +1,57 @@
- questionId: "1.2"
category: AI-verordening van toepassing?
category: Geldt de AI-verorderning voor mij?
subcategory: Soort toepassing

- questionId: "1.3"
category: AI-verordening van toepassing?
category: Geldt de AI-verorderning voor mij?
subcategory: Rol

- questionId: "1.4"
category: AI-verordening van toepassing?
category: Geldt de AI-verorderning voor mij?
subcategory: Operationeel

- questionId: "1.5"
category: AI-verordening van toepassing?
category: Geldt de AI-verorderning voor mij?
subcategory: Soort toepassing

- questionId: "1.6"
category: AI-verordening van toepassing?
category: Geldt de AI-verorderning voor mij?
subcategory: Risicogroep

- questionId: "1.7"
category: AI-verordening van toepassing?
category: Geldt de AI-verorderning voor mij?
subcategory: Soort toepassing

- questionId: "1.8"
category: AI-verordening van toepassing?
category: Geldt de AI-verorderning voor mij?
subcategory: Soort toepassing

- questionId: "2"
category: Welke risicogroep geldt?
category: In welke risicogroep valt de toepassing?
subcategory: Risicogroep

- questionId: "2.4.1"
category: Welke risicogroep geldt?
category: In welke risicogroep valt de toepassing?
subcategory: Conformiteitsbeoordelingsinstantie

- questionId: "2.4.2"
category: Welke risicogroep geldt?
category: In welke risicogroep valt de toepassing?
subcategory: Conformiteitsbeoordelingsinstantie

- questionId: "2.8"
category: Welke risicogroep geldt?
category: In welke risicogroep valt de toepassing?
subcategory: Systeemrisico

- questionId: "2.9"
category: Welke risicogroep geldt?
category: In welke risicogroep valt de toepassing?
subcategory: Transparantieverplichting

- questionId: "2.10"
category: Welke risicogroep geldt?
category: In welke risicogroep valt de toepassing?
subcategory: Transparantieverplichting

- questionId: "2.11"
category: Welke risicogroep geldt?
category: In welke risicogroep valt de toepassing?
subcategory: Open source

- questionId: "10"
Expand Down
162 changes: 80 additions & 82 deletions decision-tree.yaml

Large diffs are not rendered by default.

14 changes: 12 additions & 2 deletions frontend/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,18 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Beslishulp</title>
</head>

<body>
<body class="rvo-theme">
<div class="rvo-alert rvo-alert--warning rvo-alert--padding-sm">
<span class="utrecht-icon rvo-icon rvo-icon-waarschuwing rvo-icon--xl rvo-status-icon-waarschuwing"
role="img"
aria-label="Waarschuwing"></span>
<div class="rvo-alert-text">
<div>
<a class="rvo-link" id="version-link" href="https://github.com/MinBZK/ai-verordening-beslishulp">Bètaversie</a>
Deze beslishulp is in ontwikkeling. Alle versies ontstaan op een open manier. Iedereen mag opmerkingen en suggesties doen.
</div>
</div>
</div>
<div class="rvo-header__logo-wrapper">
<a href="#" class="rvo-header__logo-link rvo-link rvo-link--no-underline">
<div class="rvo-logo rvo-header__logo-img">
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/assets/categories.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"questionId": "1.2", "category": "AI-verordening van toepassing?", "subcategory": "Soort toepassing"}, {"questionId": "1.3", "category": "AI-verordening van toepassing?", "subcategory": "Rol"}, {"questionId": "1.4", "category": "AI-verordening van toepassing?", "subcategory": "Operationeel"}, {"questionId": "1.5", "category": "AI-verordening van toepassing?", "subcategory": "Soort toepassing"}, {"questionId": "1.6", "category": "AI-verordening van toepassing?", "subcategory": "Risicogroep"}, {"questionId": "1.7", "category": "AI-verordening van toepassing?", "subcategory": "Soort toepassing"}, {"questionId": "1.8", "category": "AI-verordening van toepassing?", "subcategory": "Soort toepassing"}, {"questionId": "2", "category": "Welke risicogroep geldt?", "subcategory": "Risicogroep"}, {"questionId": "2.4.1", "category": "Welke risicogroep geldt?", "subcategory": "Conformiteitsbeoordelingsinstantie"}, {"questionId": "2.4.2", "category": "Welke risicogroep geldt?", "subcategory": "Conformiteitsbeoordelingsinstantie"}, {"questionId": "2.8", "category": "Welke risicogroep geldt?", "subcategory": "Systeemrisico"}, {"questionId": "2.9", "category": "Welke risicogroep geldt?", "subcategory": "Transparantieverplichting"}, {"questionId": "2.10", "category": "Welke risicogroep geldt?", "subcategory": "Transparantieverplichting"}, {"questionId": "2.11", "category": "Welke risicogroep geldt?", "subcategory": "Open source"}, {"questionId": "10", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "11", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "12", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "13", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "14", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "15", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "16", "category": "Conclusie", "subcategory": "Conclusie"}]
[{"questionId": "1.2", "category": "Geldt de AI-verorderning voor mij?", "subcategory": "Soort toepassing"}, {"questionId": "1.3", "category": "Geldt de AI-verorderning voor mij?", "subcategory": "Rol"}, {"questionId": "1.4", "category": "Geldt de AI-verorderning voor mij?", "subcategory": "Operationeel"}, {"questionId": "1.5", "category": "Geldt de AI-verorderning voor mij?", "subcategory": "Soort toepassing"}, {"questionId": "1.6", "category": "Geldt de AI-verorderning voor mij?", "subcategory": "Risicogroep"}, {"questionId": "1.7", "category": "Geldt de AI-verorderning voor mij?", "subcategory": "Soort toepassing"}, {"questionId": "1.8", "category": "Geldt de AI-verorderning voor mij?", "subcategory": "Soort toepassing"}, {"questionId": "2", "category": "In welke risicogroep valt de toepassing?", "subcategory": "Risicogroep"}, {"questionId": "2.4.1", "category": "In welke risicogroep valt de toepassing?", "subcategory": "Conformiteitsbeoordelingsinstantie"}, {"questionId": "2.4.2", "category": "In welke risicogroep valt de toepassing?", "subcategory": "Conformiteitsbeoordelingsinstantie"}, {"questionId": "2.8", "category": "In welke risicogroep valt de toepassing?", "subcategory": "Systeemrisico"}, {"questionId": "2.9", "category": "In welke risicogroep valt de toepassing?", "subcategory": "Transparantieverplichting"}, {"questionId": "2.10", "category": "In welke risicogroep valt de toepassing?", "subcategory": "Transparantieverplichting"}, {"questionId": "2.11", "category": "In welke risicogroep valt de toepassing?", "subcategory": "Open source"}, {"questionId": "10", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "11", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "12", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "13", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "14", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "15", "category": "Conclusie", "subcategory": "Conclusie"}, {"questionId": "16", "category": "Conclusie", "subcategory": "Conclusie"}]
2 changes: 1 addition & 1 deletion frontend/src/assets/decision-tree.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions frontend/src/components/BeslishulpForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ function acceptDisclaimer() {
/>
<Question v-if="currentQuestion && currentCategory"
:question="currentQuestion.question"
:explanation="currentQuestion.explanation"
:id="currentQuestion.questionId"
:sources="currentQuestion.sources"
:answers="currentQuestion.answers"
Expand Down
2 changes: 0 additions & 2 deletions frontend/src/components/Conclusion.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<script setup lang="ts">
import Sources from '@/components/Sources.vue'
import SubResult from '@/components/SubResult.vue'
import BetaversionLabel from '@/components/betaversion-label.vue'

interface Props {
conclusion: string | null
Expand All @@ -20,7 +19,6 @@ defineEmits(['back'])
<div class="flex flex-col py-5 gap-y-5 rvo-max-width-layout--md">
<div class="flex">
<div as="h3" class="utrecht-heading-2">Resultaat</div>
<BetaversionLabel />
</div>
<!--Conclusion/Resultaat section-->
<p class="rvo-alert--success rvo-alert--padding-md">
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/components/Header.vue
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const emit = defineEmits(['reset-event'])
<div id="header_logo">
<!-- Place holder div for logo based on who implements the decision tree -->
</div>
<div class="rvo-layout-column rvo-layout-gap--2xl">
<div class="rvo-layout-column">
<div class="rvo-topnav__background rvo-topnav__background--horizontal-rule">
<div class="rvo-max-width-layout rvo-max-width-layout--md rvo-max-width-layout-inline-padding--sm">
<nav class="rvo-topnav rvo-topnav--lg">
Expand Down
2 changes: 0 additions & 2 deletions frontend/src/components/HomePage.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<script setup lang="ts">
import Header from '@/components/Header.vue'
import BetaversionLabel from '@/components/betaversion-label.vue'

const emit = defineEmits(['acceptDisclaimer'])

Expand All @@ -17,7 +16,6 @@ const emit = defineEmits(['acceptDisclaimer'])
<div class="flex items-center rvo-layout-column rvo-layout-gap--xl">
<div class="flex justify-center rvo-form-intro inline-flex py-5">
<h2 class="flex justify-center utrecht-heading-2">Beslishulp AI-verordening</h2>
<BetaversionLabel />
</div>
<div class="rvo-layout-column rvo-layout-gap--md rvo-max-width-layout rvo-max-width-layout--lg">
<div class="utrecht-form-fieldset rvo-form-fieldset">
Expand Down
33 changes: 16 additions & 17 deletions frontend/src/components/Question.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<script setup lang="ts">
import BetaversionLabel from '@/components/betaversion-label.vue'
import Sources from '@/components/Sources.vue'
import { Answer } from '@/models/DecisionTree'
import SubResult from '@/components/SubResult.vue'
Expand All @@ -8,6 +7,7 @@ import HelpWanted from '@/components/HelpWanted.vue'
interface Props {
id: string
question: string
explanation: string
sources: { source: string; url: string | undefined; }[] | undefined
answers: Array<Answer>
category: string
Expand All @@ -20,19 +20,24 @@ defineEmits(['answered', 'back'])

<template>
<div class="rvo-max-width-layout--md">
<div class="flex">
<h1 class="utrecht-heading-1"><span>{{ category }}</span></h1>
<BetaversionLabel />
</div>

<!-- Question and Answer section -->
<div class="rvo-layout-margin-vertical--s">
<fieldset class="rvo-max-width-layout--sm utrecht-form-fieldset rvo-form-fieldset"
style="width: 600px">
<!-- Question section -->
<div class="flex">
<h1 class="utrecht-heading-3"><span v-html="question" ></span></h1>
</div>
<div>
<p style="white-space: pre-line" class="utrecht-paragraph">
<span ></span>
<slot />
</p>
</div>
<!-- Explanation section -->
<div>
<p style="white-space: pre-line" class="utrecht-paragraph">
<span v-html="question"></span>
<span v-html="explanation"></span>
<slot />
</p>
<HelpWanted style="margin-top: -2%; margin-bottom: 5%"/>
Expand Down Expand Up @@ -74,9 +79,6 @@ defineEmits(['answered', 'back'])
</div>

</fieldset>
<div class="rvo-layout-margin-vertical--xl">
<Sources :sources="sources" />
</div>
<div class="rvo-layout-margin-vertical--xl">
<button
@click="$emit('back')"
Expand All @@ -92,18 +94,15 @@ defineEmits(['answered', 'back'])
Vorige vraag
</button>
</div>
<div class="rvo-layout-margin-vertical--xl">
<Sources :sources="sources" />
</div>

<SubResult class="rvo-layout-margin-vertical--2xl"
:category="category"
:labels="labels"
title="Tussenresultaten"
conclusion=""/>


</div>




</div>

</template>
1 change: 0 additions & 1 deletion frontend/src/components/SubResult.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<script setup lang="ts">
import BetaversionLabel from '@/components/betaversion-label.vue'
import { computed } from 'vue'

interface Props {
Expand Down
1 change: 1 addition & 0 deletions frontend/src/models/DecisionTree.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export type Source = t.TypeOf<typeof Source>
export const Question = t.type({
questionId: t.string,
question: t.string,
explanation: t.string,
sources: t.union([t.array(Source), t.undefined]),
description: t.union([t.string, t.undefined]),
answers: t.array(Answer)
Expand Down
10 changes: 5 additions & 5 deletions schemas/schema_decision_tree.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@
},
"required": ["source"]
},
"SimplifiedQuestion":{
"id": "#/$defs/SimplifiedQuestion",
"Explanation":{
"id": "#/$defs/Explanation",
"type": "string"
},
"Category": {
Expand Down Expand Up @@ -169,8 +169,8 @@
"question": {
"$ref": "#/$defs/Question"
},
"simplifiedQuestion":{
"$ref": "#/$defs/SimplifiedQuestion"
"explanation":{
"$ref": "#/$defs/Explanation"
},
"category": {
"$ref": "#/$defs/Category"
Expand All @@ -197,7 +197,7 @@
"maxItems": 10
}
},
"required": ["questionId", "question", "simplifiedQuestion", "category", "subcategory", "answers"]
"required": ["questionId", "question", "explanation", "category", "subcategory", "answers"]
},
"Conclusion": {
"id": "#/$defs/Conclusion",
Expand Down
2 changes: 1 addition & 1 deletion script/gen_mermaid.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ def create_nodes(conclusions: list[Conclusion], questions: list[Question], secon
nodes.append(
CustomNode(
id_="q-" + question.questionId,
content=question.questionId + ": " + question.simplifiedQuestion,
content=question.questionId + ": " + question.subcategory,
shape="circle",
callback_tooltip=question.question,
category=question.category,
Expand Down
1 change: 1 addition & 0 deletions script/inject_definitions_in_decision_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ def process_question_or_conclusion(text, term_dict):
# Process questions
for q in decision_tree.get("questions", []):
q["question"] = process_question_or_conclusion(q.get("question", ""), term_dict)
q["explanation"] = process_question_or_conclusion(q.get("explanation", ""), term_dict)

# Process conclusions
for c in decision_tree.get("conclusions", []):
Expand Down
Loading