diff --git a/.gitignore b/.gitignore index 307250cc..8cfc7624 100644 --- a/.gitignore +++ b/.gitignore @@ -258,6 +258,9 @@ GitHub.sublime-settings [._]s[a-v][a-z] [._]sw[a-p] +#VSCode +.vscode/ + # Session Session.vim diff --git a/client/src/components/circle/LearningContentTypeBadge.vue b/client/src/components/circle/LearningContentTypeBadge.vue new file mode 100644 index 00000000..cf4c2fac --- /dev/null +++ b/client/src/components/circle/LearningContentTypeBadge.vue @@ -0,0 +1,23 @@ + + + diff --git a/client/src/components/circle/LearningSequence.vue b/client/src/components/circle/LearningSequence.vue index c9f0f43d..9c514b0a 100644 --- a/client/src/components/circle/LearningSequence.vue +++ b/client/src/components/circle/LearningSequence.vue @@ -5,6 +5,7 @@ import { useCircleStore } from '@/stores/circle' import { computed } from 'vue' import _ from 'lodash' import { humanizeDuration } from '@/utils/humanizeDuration' +import LearningContentBadge from './LearningContentTypeBadge.vue' const props = defineProps<{ learningSequence: LearningSequence @@ -52,7 +53,7 @@ const continueTranslationKeyTuple = computed(() => { }) const learningSequenceBorderClass = computed(() => { - let result = [] + let result: string[] = [] if (props.learningSequence && circleStore.circle) { if (allFinished.value) { result = ['border-l-4', 'border-l-green-500'] @@ -81,33 +82,44 @@ const learningSequenceBorderClass = computed(() => {
{{ learningUnit.title }}
-
{{ humanizeDuration(learningUnit.minutes) }}
+
{{ humanizeDuration(learningUnit.minutes) }}
- {{ learningContent.contents[0].type }}: {{ learningContent.title }} - + +
+ {{ learningContent.title }} +
- +
+ + +
+ +
+
+
+
diff --git a/client/src/components/ui/ItCheckbox.vue b/client/src/components/ui/ItCheckbox.vue index 37355963..c5613eeb 100644 --- a/client/src/components/ui/ItCheckbox.vue +++ b/client/src/components/ui/ItCheckbox.vue @@ -1,7 +1,8 @@ - + diff --git a/server/vbv_lernwelt/learnpath/create_default_learning_path.py b/server/vbv_lernwelt/learnpath/create_default_learning_path.py index a1f27c12..9fa862b7 100644 --- a/server/vbv_lernwelt/learnpath/create_default_learning_path.py +++ b/server/vbv_lernwelt/learnpath/create_default_learning_path.py @@ -8,8 +8,9 @@ from vbv_lernwelt.core.admin import User from vbv_lernwelt.learnpath.models import LearningPath, Topic, Circle, LearningSequence, LearningContent, LearningUnit, \ LearningUnitQuestion from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory, TopicFactory, CircleFactory, \ - LearningSequenceFactory, LearningContentFactory, VideoBlockFactory, PodcastBlockFactory, CompetenceBlockFactory, \ - ExerciseBlockFactory, DocumentBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory + LearningSequenceFactory, LearningContentFactory, VideoBlockFactory, ResourceBlockFactory, \ + ExerciseBlockFactory, DocumentBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory, \ + AssignmentBlockFactory, BookBlockFactory, MediaLibraryBlockFactory, OnlineTrainingBlockFactory, TestBlockFactory def create_circle(title, learning_path): @@ -73,7 +74,7 @@ def create_circle_children(circle, title): title='Ermittlung des Kundenbedarfs', parent=circle, minutes=30, - contents=[('podcast', PodcastBlockFactory( + contents=[('video', VideoBlockFactory( description='Die Ermittlung des Kundenbedarfs muss in einem eingehenden Gespräch herausgefunden werden. Höre dazu auch diesen Podcast an.', url='https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/325190984&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true', ))] @@ -106,7 +107,7 @@ def create_circle_children(circle, title): title='Kundenbedürfnisse erkennen', parent=circle, minutes=30, - contents=[('competence', CompetenceBlockFactory())] + contents=[('exercise', ExerciseBlockFactory())] ) LearningContentFactory( @@ -164,13 +165,13 @@ def create_circle_children(circle, title): title='Motorfahrzeugversicherung', parent=circle, minutes=240, - contents=[('competence', CompetenceBlockFactory())] + contents=[('assignment', AssignmentBlockFactory())] ) LearningContentFactory( title='Nora kauft sich ein neues Auto', parent=circle, minutes=60, - contents=[('podcast', PodcastBlockFactory())] + contents=[('resource', ResourceBlockFactory())] ) LearningContentFactory( title='Ermittlung des Kundenbedarfs', @@ -194,13 +195,13 @@ def create_circle_children(circle, title): title='3-Säulen-Prinzip', parent=circle, minutes=240, - contents=[('competence', CompetenceBlockFactory())] + contents=[('test', TestBlockFactory())] ) LearningContentFactory( title='Altersvorsorge', parent=circle, minutes=240, - contents=[('competence', CompetenceBlockFactory())] + contents=[('test', TestBlockFactory())] ) LearningContentFactory( title='AHV', @@ -224,7 +225,7 @@ def create_circle_children(circle, title): title='Reiseversicherung', parent=circle, minutes=240, - contents=[('competence', CompetenceBlockFactory())] + contents=[('exercise', ExerciseBlockFactory())] ) LearningContentFactory( title='Sorgenfrei reisen', @@ -243,7 +244,7 @@ def create_circle_children(circle, title): title='Privathaftpflicht', parent=circle, minutes=240, - contents=[('competence', CompetenceBlockFactory())] + contents=[('media_library', MediaLibraryBlockFactory())] ) LearningContentFactory( title='Zusatzversicherung', @@ -268,19 +269,19 @@ def create_circle_children(circle, title): title='Hausrat', parent=circle, minutes=120, - contents=[('competence', CompetenceBlockFactory())] + contents=[('online_training', OnlineTrainingBlockFactory())] ) LearningContentFactory( title='Privathaftpflicht', parent=circle, minutes=60, - contents=[('competence', CompetenceBlockFactory())] + contents=[('exercise', ExerciseBlockFactory())] ) LearningContentFactory( title='Kind zieht von zu Hause wirklich aus', parent=circle, minutes=60, - contents=[('competence', CompetenceBlockFactory())] + contents=[('exercise', ExerciseBlockFactory())] ) LearningSequenceFactory(title='Testen', parent=circle, icon='it-icon-ls-test') @@ -293,13 +294,13 @@ def create_circle_children(circle, title): title='Das erwartet dich im Test', parent=circle, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('test', TestBlockFactory())] ) LearningContentFactory( title='Test durchführen', parent=circle, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('test', TestBlockFactory())] ) LearningSequenceFactory(title='Vernetzen', parent=circle, icon='it-icon-ls-network') @@ -307,21 +308,21 @@ def create_circle_children(circle, title): title='Online Training', parent=circle, minutes=60, - contents=[('document', CompetenceBlockFactory())] + contents=[('online_training', OnlineTrainingBlockFactory())] ) LearningSequenceFactory(title='Beenden', parent=circle, icon='it-icon-ls-end') LearningContentFactory( - title='Kompetenzprofil anschauen', + title='Mehr darüber erfahren', parent=circle, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('book', BookBlockFactory())] ) LearningContentFactory( title='Circle "Analyse" abschliessen', parent=circle, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) @@ -369,13 +370,13 @@ damit erfolgreich mit deinem Lernpfad starten kannst. title='Kompetenzprofil anschauen', parent=circle_basis, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) LearningContentFactory( title='Circle "Analyse" abschliessen', parent=circle_basis, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) TopicFactory(title="Gewinnen von Kunden", parent=lp) diff --git a/server/vbv_lernwelt/learnpath/models.py b/server/vbv_lernwelt/learnpath/models.py index 6e6a4d13..a1558b9e 100644 --- a/server/vbv_lernwelt/learnpath/models.py +++ b/server/vbv_lernwelt/learnpath/models.py @@ -5,10 +5,11 @@ from wagtail.admin.panels import FieldPanel, StreamFieldPanel from wagtail.blocks import StreamBlock from wagtail.fields import StreamField from wagtail.images.blocks import ImageChooserBlock -from wagtail.models import Page, Orderable +from wagtail.models import Page -from vbv_lernwelt.learnpath.models_learning_unit_content import WebBasedTrainingBlock, VideoBlock, PodcastBlock, \ - CompetenceBlock, ExerciseBlock, DocumentBlock, KnowledgeBlock +from vbv_lernwelt.learnpath.models_learning_unit_content import VideoBlock, \ + ExerciseBlock, DocumentBlock, AssignmentBlock, BookBlock, MediaLibraryBlock, \ + OnlineTrainingBlock, ResourceBlock, TestBlock from vbv_lernwelt.learnpath.serializer_helpers import get_it_serializer_class @@ -208,12 +209,14 @@ class LearningContent(Page): content_blocks = [ ('video', VideoBlock()), - ('web_based_training', WebBasedTrainingBlock()), - ('podcast', PodcastBlock()), - ('competence', CompetenceBlock()), + ('resource', ResourceBlock()), ('exercise', ExerciseBlock()), + ('online_training', OnlineTrainingBlock()), + ('media_library', MediaLibraryBlock()), ('document', DocumentBlock()), - ('knowledge', KnowledgeBlock()), + ('test', TestBlock()), + ('book', BookBlock()), + ('assignment', AssignmentBlock()), ] contents = StreamField( diff --git a/server/vbv_lernwelt/learnpath/models_learning_unit_content.py b/server/vbv_lernwelt/learnpath/models_learning_unit_content.py index b8cc792d..3fd0f6d1 100644 --- a/server/vbv_lernwelt/learnpath/models_learning_unit_content.py +++ b/server/vbv_lernwelt/learnpath/models_learning_unit_content.py @@ -1,5 +1,60 @@ from wagtail import blocks +class AssignmentBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' + +class BookBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' + +class DocumentBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' + +class ExerciseBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' + +class MediaLibraryBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' + +class OnlineTrainingBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' + +class ResourceBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' + +class TestBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' class VideoBlock(blocks.StructBlock): # TODO: Possible video Types for the user, upload file, add URL @@ -7,51 +62,4 @@ class VideoBlock(blocks.StructBlock): url = blocks.URLBlock() class Meta: - icon = 'media' - - -class WebBasedTrainingBlock(blocks.StructBlock): - description = blocks.TextBlock() - url = blocks.URLBlock() - - class Meta: - icon = 'media' - - -class PodcastBlock(blocks.StructBlock): - description = blocks.TextBlock() - url = blocks.URLBlock() - - class Meta: - icon = 'media' - - -class CompetenceBlock(blocks.StructBlock): - description = blocks.TextBlock() - - class Meta: - icon = 'media' - - -class ExerciseBlock(blocks.StructBlock): - description = blocks.TextBlock() - url = blocks.URLBlock() - - - class Meta: - icon = 'media' - - -class DocumentBlock(blocks.StructBlock): - description = blocks.TextBlock() - - class Meta: - icon = 'media' - - - -class KnowledgeBlock(blocks.StructBlock): - description = blocks.TextBlock() - - class Meta: - icon = 'media' + icon = 'media' \ No newline at end of file diff --git a/server/vbv_lernwelt/learnpath/tests/create_simple_test_learning_path.py b/server/vbv_lernwelt/learnpath/tests/create_simple_test_learning_path.py index 7b74a154..439627c6 100644 --- a/server/vbv_lernwelt/learnpath/tests/create_simple_test_learning_path.py +++ b/server/vbv_lernwelt/learnpath/tests/create_simple_test_learning_path.py @@ -1,11 +1,11 @@ import wagtail_factories from django.conf import settings from wagtail.models import Site, Page - from vbv_lernwelt.core.admin import User from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory, TopicFactory, CircleFactory, \ - LearningSequenceFactory, LearningContentFactory, CompetenceBlockFactory, \ - ExerciseBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory + LearningSequenceFactory, LearningContentFactory, \ + ExerciseBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory, \ + DocumentBlockFactory, TestBlockFactory, OnlineTrainingBlockFactory def create_circle(title, learning_path): @@ -33,7 +33,7 @@ def create_circle_children(circle, title): title=f'Einleitung Circle "{title}"', parent=circle, minutes=15, - contents=[('competence', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) LearningSequenceFactory(title='Beobachten', parent=circle, icon='it-icon-ls-watch') @@ -53,13 +53,16 @@ def create_circle_children(circle, title): title='Ermittlung des Kundenbedarfs', parent=circle, minutes=30, - contents=[('competence', CompetenceBlockFactory())] + contents=[('online_training', OnlineTrainingBlockFactory( + description='In diesem Online-Training lernst du, wie du den Kundenbedarf ermittelst.', + url='', + ))] ) LearningContentFactory( title='Kundenbedürfnisse erkennen', parent=circle, minutes=30, - contents=[('competence', CompetenceBlockFactory())] + contents=[('test', TestBlockFactory())] ) LearningContentFactory( title='Was braucht eine Familie?', @@ -79,7 +82,7 @@ def create_circle_children(circle, title): title='Reiseversicherung', parent=circle, minutes=240, - contents=[('competence', CompetenceBlockFactory())] + contents=[('exercise', ExerciseBlockFactory())] ) LearningContentFactory( title='Sorgenfrei reisen', @@ -94,13 +97,13 @@ def create_circle_children(circle, title): title='Kompetenzprofil anschauen', parent=circle, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) LearningContentFactory( title='Circle "Analyse" abschliessen', parent=circle, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) @@ -131,20 +134,20 @@ def create_simple_test_learning_path(user=None, skip_locales=True): title='Einleitung Circle "Basis"', parent=circle_basis, minutes=15, - contents=[('competence', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) LearningSequenceFactory(title='Beenden', parent=circle_basis, icon='it-icon-ls-end') LearningContentFactory( title='Kompetenzprofil anschauen', parent=circle_basis, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) LearningContentFactory( title='Circle "Analyse" abschliessen', parent=circle_basis, minutes=30, - contents=[('document', CompetenceBlockFactory())] + contents=[('document', DocumentBlockFactory())] ) TopicFactory(title="Gewinnen von Kunden", parent=lp) diff --git a/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py b/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py index a777722a..483b75fc 100644 --- a/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py +++ b/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py @@ -2,8 +2,8 @@ import wagtail_factories from vbv_lernwelt.learnpath.models import LearningPath, Topic, Circle, LearningSequence, LearningContent, LearningUnit, \ LearningUnitQuestion -from vbv_lernwelt.learnpath.models_learning_unit_content import VideoBlock, WebBasedTrainingBlock, PodcastBlock, \ - CompetenceBlock, ExerciseBlock, DocumentBlock, KnowledgeBlock +from vbv_lernwelt.learnpath.models_learning_unit_content import VideoBlock, OnlineTrainingBlock, \ + ExerciseBlock, DocumentBlock, ResourceBlock, TestBlock, BookBlock, MediaLibraryBlock, AssignmentBlock class LearningPathFactory(wagtail_factories.PageFactory): @@ -48,7 +48,6 @@ class LearningUnitQuestionFactory(wagtail_factories.PageFactory): class Meta: model = LearningUnitQuestion - class LearningContentFactory(wagtail_factories.PageFactory): title = 'Lerninhalt' @@ -63,37 +62,17 @@ class VideoBlockFactory(wagtail_factories.StructBlockFactory): class Meta: model = VideoBlock - -class WebBasedTrainingBlockFactory(wagtail_factories.StructBlockFactory): - url = "/static/media/web_based_trainings/rise_cmi5_test_export/scormcontent/index.html" - description = "Beispiel Rise Modul" +class AssignmentBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Auftrag" class Meta: - model = WebBasedTrainingBlock + model = AssignmentBlock - -class PodcastBlockFactory(wagtail_factories.StructBlockFactory): - description = "Beispiel Podcast" - url = "https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/325190984&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true" +class BookBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Buch" class Meta: - model = PodcastBlock - - -class CompetenceBlockFactory(wagtail_factories.StructBlockFactory): - description = "Beispiel Kompetenz" - - class Meta: - model = CompetenceBlock - - -class ExerciseBlockFactory(wagtail_factories.StructBlockFactory): - description = "Beispiel Aufgabe" - url = "/static/media/web_based_trainings/rise_cmi5_test_export/scormcontent/index.html" - - class Meta: - model = ExerciseBlock - + model = BookBlock class DocumentBlockFactory(wagtail_factories.StructBlockFactory): description = "Beispiel Dokument" @@ -101,9 +80,33 @@ class DocumentBlockFactory(wagtail_factories.StructBlockFactory): class Meta: model = DocumentBlock - -class KnowledgeBlockFactory(wagtail_factories.StructBlockFactory): - description = "Beispiel Wissen" +class ExerciseBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Übung" class Meta: - model = KnowledgeBlock + model = ExerciseBlock + +class OnlineTrainingBlockFactory(wagtail_factories.StructBlockFactory): + url = "/static/media/web_based_trainings/rise_cmi5_test_export/scormcontent/index.html" + description = "Beispiel Rise Modul" + + class Meta: + model = OnlineTrainingBlock + +class TestBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Test" + + class Meta: + model = TestBlock + +class ResourceBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Hilfsmittel" + + class Meta: + model = ResourceBlock + +class MediaLibraryBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Mediathekeninhalt" + + class Meta: + model = MediaLibraryBlock \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-info.svg b/server/vbv_lernwelt/static/icons/icon-info.svg index 364bba64..852336d0 100644 --- a/server/vbv_lernwelt/static/icons/icon-info.svg +++ b/server/vbv_lernwelt/static/icons/icon-info.svg @@ -1 +1,6 @@ - \ No newline at end of file + + + + + + diff --git a/server/vbv_lernwelt/static/icons/icon-lc-assignment.svg b/server/vbv_lernwelt/static/icons/icon-lc-assignment.svg new file mode 100644 index 00000000..ea120409 --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-assignment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-lc-book.svg b/server/vbv_lernwelt/static/icons/icon-lc-book.svg new file mode 100644 index 00000000..e4eb751e --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-lc-document.svg b/server/vbv_lernwelt/static/icons/icon-lc-document.svg new file mode 100644 index 00000000..6481ff61 --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-lc-exercise.svg b/server/vbv_lernwelt/static/icons/icon-lc-exercise.svg new file mode 100644 index 00000000..294ac41b --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-exercise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-lc-media-library.svg b/server/vbv_lernwelt/static/icons/icon-lc-media-library.svg new file mode 100644 index 00000000..685a3af1 --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-media-library.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-lc-online-training.svg b/server/vbv_lernwelt/static/icons/icon-lc-online-training.svg new file mode 100644 index 00000000..8a22b16e --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-online-training.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-lc-resource.svg b/server/vbv_lernwelt/static/icons/icon-lc-resource.svg new file mode 100644 index 00000000..1b1cb919 --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-resource.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-lc-test.svg b/server/vbv_lernwelt/static/icons/icon-lc-test.svg new file mode 100644 index 00000000..6f8fdd04 --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-test.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-lc-video.svg b/server/vbv_lernwelt/static/icons/icon-lc-video.svg new file mode 100644 index 00000000..c25131cf --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-lc-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-list.svg b/server/vbv_lernwelt/static/icons/icon-list.svg index 95aa0c74..79f13d70 100644 --- a/server/vbv_lernwelt/static/icons/icon-list.svg +++ b/server/vbv_lernwelt/static/icons/icon-list.svg @@ -1 +1,9 @@ - \ No newline at end of file + + + + + + + + + diff --git a/server/vbv_lernwelt/static/icons/icon-ls-apply.svg b/server/vbv_lernwelt/static/icons/icon-ls-apply.svg index 1c9506ad..1c39c9e4 100644 --- a/server/vbv_lernwelt/static/icons/icon-ls-apply.svg +++ b/server/vbv_lernwelt/static/icons/icon-ls-apply.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + +