diff --git a/CHANGELOG.md b/CHANGELOG.md index bb3cb45b..28799224 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +##### Februar 2024 +- Qualix enthält neu ein Namenslernspiel! Auf der TN-Liste hat es einen Link zum Spiel. + ##### Januar 2024 - Aus technischen und praktischen Gründen wurde die Anzahl relevante Anforderungen in einer Rückmeldung auf maximal 40 limitiert. Auslöser war, dass die Übersichtstabelle sonst technisch wie auch visuell nicht mehr sinnvoll angezeigt werden konnte. Auch fachlich gesehen ist das Konzept der Rückmeldungen in Qualix nicht darauf ausgelegt, sehr viele eingebettete Anforderungen zu enthalten, da Übersichtlichkeit, Fördergedanke, Überprüfbarkeit, zweite Chancen, Zweitausbildung etc. alle darunter leiden. Dies sehen wir in folgenden Textstellen der RQF-Broschüre bestätigt, welche klar machen dass mit jeder einzelnen Mindestanforderung der Zeitaufwand für das Kursteam wie auch für die TN markant ansteigt: > [Es] muss beachtet werden, dass zu jeder Mindestanforderung auch ein Beobachtungsmoment gehört, bei dem die TN zeigen können, was sie gelernt haben und das Kursteam ebendies wahrnehmen kann.[^1] diff --git a/app/Http/Controllers/ParticipantController.php b/app/Http/Controllers/ParticipantController.php index 8c41f0b3..b0f121da 100644 --- a/app/Http/Controllers/ParticipantController.php +++ b/app/Http/Controllers/ParticipantController.php @@ -64,7 +64,6 @@ public function upload(Request $request, Course $course) { $request->session()->now('alert-warning', trans('t.views.admin.participant_import.warning_existing_participants')); } - $MiDataParticipantListLink = (new HtmlString) ->s('') ->__('t.views.admin.participant_import.MiData.name') @@ -81,7 +80,6 @@ public function upload(Request $request, Course $course) { * @throws ValidationException if parsing the uploaded file fails */ public function import(ParticipantImportRequest $request, Course $course) { - $request->validated(); try { $imported = $request->getImporter()->import($request->file('file')->getRealPath(), $course); diff --git a/lang/de/t.php b/lang/de/t.php index 933f4b5f..266566af 100644 --- a/lang/de/t.php +++ b/lang/de/t.php @@ -555,6 +555,7 @@ "correct" => "Richtig!", "name_game" => "Name Game", "next" => "Weiter", + "no_image" => "kein Bild", "page_title" => "Name Game", "participants" => "TN", "play_again" => "Nochmals", diff --git a/resources/js/components/nameGame/NameGame.vue b/resources/js/components/nameGame/NameGame.vue index 7544f450..4d52e3b9 100644 --- a/resources/js/components/nameGame/NameGame.vue +++ b/resources/js/components/nameGame/NameGame.vue @@ -9,7 +9,7 @@ name="selectedParticipants" v-model="selectedParticipantIds" multiple - :options="participants" + :options="participantsWithImage" :display-field="anyDuplicateMembershipGroups ? 'name_and_group' : 'scout_name'" required :groups="{[$t('t.views.name_game.select_all')]: participants.map(p => p.id).join()}" @@ -44,12 +44,23 @@ export default { }, data() { return { - selectedParticipants: this.participants, + selectedParticipants: this.participants.filter(participant => participant.image_url), playing: false, gameMode: 'multipleChoice', } }, computed: { + participantsWithImage() { + return this.participants.map(participant => { + if (participant.image_url) { + return participant + } + return { + ...participant, + scout_name: participant.scout_name + ' (' + this.$tc('t.views.name_game.no_image') + ')' + } + }) + }, selectedParticipantIds: { get () { return this.selectedParticipants.map(participant => participant.id).join(',') diff --git a/resources/views/participants.blade.php b/resources/views/participants.blade.php index be4dd981..62d7f132 100644 --- a/resources/views/participants.blade.php +++ b/resources/views/participants.blade.php @@ -5,7 +5,12 @@ @section('content') - + @if (count($course->participants))