From 97879b570c3d8a9d5626cee0b18f4daafc7d3d35 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Mon, 27 Mar 2023 11:25:31 +0200 Subject: [PATCH 1/2] Show only start and stop icon in circle --- .../components/learningPath/CircleDiagram.vue | 5 +- .../management/commands/create_uk_course.py | 4 +- .../learnpath/create_vv_new_learning_path.py | 78 ++++++++----------- 3 files changed, 37 insertions(+), 50 deletions(-) diff --git a/client/src/components/learningPath/CircleDiagram.vue b/client/src/components/learningPath/CircleDiagram.vue index f38e91c6..d2c03848 100644 --- a/client/src/components/learningPath/CircleDiagram.vue +++ b/client/src/components/learningPath/CircleDiagram.vue @@ -208,7 +208,10 @@ function render() { const learningSequenceIcon = learningSequences .append("svg:image") .attr("xlink:href", (d) => { - return "/static/icons/" + d.icon.replace("it-", "") + ".svg"; + if (["it-icon-ls-start", "it-icon-ls-end"].some((icon) => icon === d.icon)) { + return "/static/icons/" + d.icon.replace("it-", "") + ".svg"; + } + return ""; }) .attr("width", iconWidth) .attr("height", iconWidth) diff --git a/server/vbv_lernwelt/course/management/commands/create_uk_course.py b/server/vbv_lernwelt/course/management/commands/create_uk_course.py index 9a1d31b5..62264b4b 100644 --- a/server/vbv_lernwelt/course/management/commands/create_uk_course.py +++ b/server/vbv_lernwelt/course/management/commands/create_uk_course.py @@ -190,7 +190,7 @@ damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst. title="Selbsteinschätzung", parent=circle, ) - LearningSequenceFactory(title="Training", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Training", parent=circle) LearningUnitFactory(title="Unterlagen", parent=circle) LearningContentFactory( title="Unterlagen für den Unterricht", @@ -253,7 +253,7 @@ damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst. title="Vorbereitungsauftrag", parent=circle, ) - LearningSequenceFactory(title="Training", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Training", parent=circle) LearningUnitFactory(title="Unterlagen", parent=circle) LearningContentFactory( title="Unterlagen für den Unterricht", diff --git a/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py b/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py index 4dbe8f2b..bf8af8e4 100644 --- a/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py +++ b/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py @@ -164,7 +164,7 @@ def create_circle_basis(lp, title="Basis"): parent=circle, ) - LearningSequenceFactory(title="Lernreise", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Lernreise", parent=circle) LearningUnitFactory( title="Lerntechnik, Lernbegleitung, Lernpartner/-in und Einführung in MyVBV", parent=circle, @@ -186,9 +186,7 @@ def create_circle_basis(lp, title="Basis"): parent=circle, ) - LearningSequenceFactory( - title="Arbeitsalltag", parent=circle, icon="it-icon-ls-watch" - ) + LearningSequenceFactory(title="Arbeitsalltag", parent=circle) LearningUnitFactory( title="Mein neuer Job, Arbeitstechnik, Soziale Medien, Datenschutz und Beratungspflichten", parent=circle, @@ -218,7 +216,7 @@ def create_circle_basis(lp, title="Basis"): parent=circle, ) - LearningSequenceFactory(title="Basiswissen", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Basiswissen", parent=circle) LearningUnitFactory( title="Basiswissen Versicherungen, VVG", parent=circle, @@ -289,9 +287,7 @@ wie du dein Netzwerk aufbauen und erweitern kannst, um damit neue Kunden zu gewi parent=circle, ) - LearningSequenceFactory( - title="Verkaufsgrundlagen", parent=circle, icon="it-icon-ls-watch" - ) + LearningSequenceFactory(title="Verkaufsgrundlagen", parent=circle) LearningUnitFactory(title="Verkaufsgrundlagen", parent=circle) LearningContentFactory( title="Mediathek", @@ -314,9 +310,7 @@ wie du dein Netzwerk aufbauen und erweitern kannst, um damit neue Kunden zu gewi parent=circle, ) - LearningSequenceFactory( - title="Kundenakquise", parent=circle, icon="it-icon-ls-watch" - ) + LearningSequenceFactory(title="Kundenakquise", parent=circle) LearningUnitFactory(title="Kundenakquise", parent=circle) LearningContentFactory( title="Mediathek", @@ -386,7 +380,7 @@ def create_circle_fahrzeug(lp, title="Fahrzeug"): ], ) - LearningSequenceFactory(title="Einstieg", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Einstieg", parent=circle) create_standard_learning_unit( "Rafael Fasel wechselt sein Auto - Einstieg", parent=circle, @@ -396,7 +390,7 @@ def create_circle_fahrzeug(lp, title="Fahrzeug"): learning_unit_title="Gesprächsvorbereitung und -einstieg", ) - LearningSequenceFactory(title="Analyse", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Analyse", parent=circle) create_standard_learning_unit( "Rafael Fasel wechselt sein Auto - Analyse", parent=circle, @@ -406,7 +400,7 @@ def create_circle_fahrzeug(lp, title="Fahrzeug"): learning_unit_title="Bedarfsanalyse, Ist- und Soll-Situation", ) - LearningSequenceFactory(title="Lösung", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Lösung", parent=circle) create_standard_learning_unit( "Rafael Fasel wechselt sein Auto - Lösung", parent=circle, @@ -416,7 +410,7 @@ def create_circle_fahrzeug(lp, title="Fahrzeug"): learning_unit_title="Lösungsvorschlag erarbeiten und präsentieren", ) - LearningSequenceFactory(title="Abschluss", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Abschluss", parent=circle) create_standard_learning_unit( "Rafael Fasel wechselt sein Auto - Abschluss", parent=circle, @@ -489,9 +483,7 @@ def create_circle_rechtsstreitigkeiten(lp, title="Rechtsstreitigkeiten"): ], ) - LearningSequenceFactory( - title="Rechtsstreitigkeiten", parent=circle, icon="it-icon-ls-watch" - ) + LearningSequenceFactory(title="Rechtsstreitigkeiten", parent=circle) create_standard_learning_unit( "Rafael Fasel hat Ärger mit seinem Vermieter", parent=circle, @@ -537,7 +529,7 @@ def create_circle_reisen(lp, title="Reisen"): ], ) - LearningSequenceFactory(title="Einstieg", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Einstieg", parent=circle) create_standard_learning_unit( "Emma und Ayla campen durch Amerika - Einstieg", parent=circle, @@ -547,7 +539,7 @@ def create_circle_reisen(lp, title="Reisen"): learning_unit_title="Terminvereinbarung, Vorbereitung und Gesprächseröffnung", ) - LearningSequenceFactory(title="Analyse", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Analyse", parent=circle) create_standard_learning_unit( "Emma und Ayla campen durch Amerika - Analyse", parent=circle, @@ -557,7 +549,7 @@ def create_circle_reisen(lp, title="Reisen"): learning_unit_title="Bedarfsanalyse, Ist- und Soll-Situation", ) - LearningSequenceFactory(title="Lösung", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Lösung", parent=circle) create_standard_learning_unit( "Emma und Ayla campen durch Amerika - Lösung", parent=circle, @@ -567,7 +559,7 @@ def create_circle_reisen(lp, title="Reisen"): learning_unit_title="Lösungsvorschlag erarbeiten und präsentieren", ) - LearningSequenceFactory(title="Abschluss", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Abschluss", parent=circle) create_standard_learning_unit( "Emma und Ayla campen durch Amerika - Abschluss", parent=circle, @@ -615,7 +607,7 @@ def create_circle_einkommenssicherung(lp, title="Einkommenssicherung"): ], ) - LearningSequenceFactory(title="Einstieg", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Einstieg", parent=circle) create_standard_learning_unit( "Patrizia und Marco sichern sich ab - Einstieg", parent=circle, @@ -625,7 +617,7 @@ def create_circle_einkommenssicherung(lp, title="Einkommenssicherung"): learning_unit_title="Terminvereinbarung, Vorbereitung und Gesprächseröffnung", ) - LearningSequenceFactory(title="Analyse", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Analyse", parent=circle) create_standard_learning_unit( "Patrizia und Marco sichern sich ab - Analyse", parent=circle, @@ -635,7 +627,7 @@ def create_circle_einkommenssicherung(lp, title="Einkommenssicherung"): learning_unit_title="Bedarfsanalyse, Ist- und Soll-Situation", ) - LearningSequenceFactory(title="Lösung", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Lösung", parent=circle) create_standard_learning_unit( "Patrizia und Marco sichern sich ab - Lösung", parent=circle, @@ -645,7 +637,7 @@ def create_circle_einkommenssicherung(lp, title="Einkommenssicherung"): learning_unit_title="Lösungsvorschlag erarbeiten und präsentieren", ) - LearningSequenceFactory(title="Abschluss", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Abschluss", parent=circle) create_standard_learning_unit( "Patrizia und Marco sichern sich ab - Abschluss", parent=circle, @@ -700,7 +692,7 @@ def create_circle_standard_small( if lu_title is None: lu_title = title - LearningSequenceFactory(title=title, parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title=title, parent=circle) create_standard_learning_unit( lc_title, parent=circle, @@ -742,7 +734,7 @@ def create_circle_standard(lp, title, lc_title, goals=None, description=None): ], ) - LearningSequenceFactory(title="Einstieg", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Einstieg", parent=circle) create_standard_learning_unit( f"{lc_title} - Einstieg", parent=circle, @@ -751,7 +743,7 @@ def create_circle_standard(lp, title, lc_title, goals=None, description=None): learning_unit_title="Gesprächsvorbereitung und -einstieg", ) - LearningSequenceFactory(title="Analyse", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Analyse", parent=circle) create_standard_learning_unit( f"{lc_title} - Analyse", parent=circle, @@ -760,7 +752,7 @@ def create_circle_standard(lp, title, lc_title, goals=None, description=None): learning_unit_title="Bedarfsanalyse, Ist- und Soll-Situation", ) - LearningSequenceFactory(title="Lösung", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Lösung", parent=circle) create_standard_learning_unit( f"{lc_title} - Lösung", parent=circle, @@ -769,7 +761,7 @@ def create_circle_standard(lp, title, lc_title, goals=None, description=None): learning_unit_title="Lösungsvorschlag erarbeiten und präsentieren", ) - LearningSequenceFactory(title="Abschluss", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Abschluss", parent=circle) create_standard_learning_unit( f"{lc_title} - Abschluss", parent=circle, @@ -829,9 +821,7 @@ def create_circle_betreuen(lp, title="Betreuen"): parent=circle, ) - LearningSequenceFactory( - title="Rechtsstreitigkeiten", parent=circle, icon="it-icon-ls-watch" - ) + LearningSequenceFactory(title="Rechtsstreitigkeiten", parent=circle) LearningUnitFactory(title="Rechtsstreitigkeiten", parent=circle) LearningContentFactory( title="Mediathek", @@ -846,7 +836,7 @@ def create_circle_betreuen(lp, title="Betreuen"): parent=circle, ) - LearningSequenceFactory(title="Sparen", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Sparen", parent=circle) LearningUnitFactory(title="Sparen", parent=circle) LearningContentFactory( title="Mediathek", @@ -861,9 +851,7 @@ def create_circle_betreuen(lp, title="Betreuen"): parent=circle, ) - LearningSequenceFactory( - title="Wohneigentum", parent=circle, icon="it-icon-ls-watch" - ) + LearningSequenceFactory(title="Wohneigentum", parent=circle) LearningUnitFactory(title="Wohneigentum", parent=circle) LearningContentFactory( title="Mediathek", @@ -878,9 +866,7 @@ def create_circle_betreuen(lp, title="Betreuen"): parent=circle, ) - LearningSequenceFactory( - title="Selbstständigkeit", parent=circle, icon="it-icon-ls-watch" - ) + LearningSequenceFactory(title="Selbstständigkeit", parent=circle) LearningUnitFactory(title="Selbstständigkeit", parent=circle) LearningContentFactory( title="Mediathek", @@ -895,9 +881,7 @@ def create_circle_betreuen(lp, title="Betreuen"): parent=circle, ) - LearningSequenceFactory( - title="Erben/Vererben", parent=circle, icon="it-icon-ls-watch" - ) + LearningSequenceFactory(title="Erben/Vererben", parent=circle) LearningUnitFactory(title="Erben/Vererben", parent=circle) LearningContentFactory( title="Mediathek", @@ -934,7 +918,7 @@ def create_circle_vernetzen(lp, title="Vernetzen"): parent=circle, ) - LearningSequenceFactory(title="Training", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Training", parent=circle) LearningUnitFactory(title="Onlinetrainings", parent=circle) LearningContentFactory( title="Unknown ???", @@ -965,14 +949,14 @@ def create_circle_pruefungsvorbereitung(lp, title="Prüfungsvorbereitung"): parent=circle, ) - LearningSequenceFactory(title="Aufbau", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Aufbau", parent=circle) LearningUnitFactory(title="Aufbau und Struktur", parent=circle) LearningContentFactory( title="Unknown ???", parent=circle, ) - LearningSequenceFactory(title="Nullserien", parent=circle, icon="it-icon-ls-watch") + LearningSequenceFactory(title="Nullserien", parent=circle) LearningUnitFactory(title="Schriftliche Nullserien", parent=circle) LearningContentFactory( title="Nullserie 1", From 6d9b16172d28915cd81dac0b49744e99ede86e85 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Mon, 27 Mar 2023 19:42:51 +0200 Subject: [PATCH 2/2] Display learning unit icons based on name --- client/src/components/learningPath/CircleDiagram.vue | 3 ++- client/src/components/learningPath/LearningSequence.vue | 7 ++++--- .../src/components/learningPath/learningSequenceUtils.ts | 3 +++ 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 client/src/components/learningPath/learningSequenceUtils.ts diff --git a/client/src/components/learningPath/CircleDiagram.vue b/client/src/components/learningPath/CircleDiagram.vue index d2c03848..30269f1b 100644 --- a/client/src/components/learningPath/CircleDiagram.vue +++ b/client/src/components/learningPath/CircleDiagram.vue @@ -5,6 +5,7 @@ import * as d3 from "d3"; import pick from "lodash/pick"; import * as log from "loglevel"; import { computed, onMounted } from "vue"; +import { showIcon } from "./learningSequenceUtils"; // @ts-ignore import colors from "@/colors.json"; @@ -208,7 +209,7 @@ function render() { const learningSequenceIcon = learningSequences .append("svg:image") .attr("xlink:href", (d) => { - if (["it-icon-ls-start", "it-icon-ls-end"].some((icon) => icon === d.icon)) { + if (showIcon(d.icon)) { return "/static/icons/" + d.icon.replace("it-", "") + ".svg"; } return ""; diff --git a/client/src/components/learningPath/LearningSequence.vue b/client/src/components/learningPath/LearningSequence.vue index 6f57cd46..eb10152b 100644 --- a/client/src/components/learningPath/LearningSequence.vue +++ b/client/src/components/learningPath/LearningSequence.vue @@ -10,11 +10,12 @@ import { humanizeDuration } from "@/utils/humanizeDuration"; import findLast from "lodash/findLast"; import { computed } from "vue"; import LearningContentBadge from "./LearningContentTypeBadge.vue"; +import { showIcon } from "./learningSequenceUtils"; -interface Props { +type Props = { learningSequence: LearningSequence; readonly?: boolean; -} +}; const props = withDefaults(defineProps(), { readonly: false, @@ -91,7 +92,7 @@ const learningSequenceBorderClass = computed(() => {