]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6251 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 7 Sep 2023 08:06:11 +0000 (10:06 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 7 Sep 2023 08:06:11 +0000 (10:06 +0200)
app/Models/Quiz.php
app/SubForms/Quiz/Answer.php
app/SubForms/Quiz/Proposition.php [new file with mode: 0644]
app/SubForms/Quiz/Question.php
app/SubForms/TitleAndText.php

index 644f8256ad1295d36a20d8e084976278dec456de..dc675528d193489e4efcad17638429eeb5578d0a 100644 (file)
@@ -164,8 +164,15 @@ class Quiz extends ToolboxModel
             'default' => true,
             'type' => 'Checkbox',
         ]);
-        $this->addField('instant_success_messages', Textarea::class, __('Petits messages accompagnant une bonne réponse'), ['placeholder' => __('Bonne réponse'), 'hint' => __('Une phrase par ligne, la phrase affichée sera sélectionnée aléatoirement dans cette liste.') . ' ' . __(' Par défaut "Bonne réponse" dans la langue du quiz')]);
-        $this->addField('instant_fail_messages', Textarea::class, __('Petits messages accompagnant une mauvaise réponse'), ['placeholder' => __('Mauvaise réponse'), 'hint' => __('Une phrase par ligne, la phrase affichée sera sélectionnée aléatoirement dans cette liste.') . ' ' . __(' Par défaut "Mauvaise réponse" dans la langue du quiz')]);
+        $this->addField('instant_success_messages', Textarea::class, __('Petits messages accompagnant une bonne réponse'),
+            [
+                'when' => ['instantReview' => ['1']],
+                'placeholder' => __('Bonne réponse'), 'hint' => __('Une phrase par ligne, la phrase affichée sera sélectionnée aléatoirement dans cette liste.') . ' ' . __(' Par défaut "Bonne réponse" dans la langue du quiz')
+            ]);
+        $this->addField('instant_fail_messages', Textarea::class, __('Petits messages accompagnant une mauvaise réponse'), [
+            'when' => ['instantReview' => ['1']],
+            'placeholder' => __('Mauvaise réponse'), 'hint' => __('Une phrase par ligne, la phrase affichée sera sélectionnée aléatoirement dans cette liste.') . ' ' . __(' Par défaut "Mauvaise réponse" dans la langue du quiz')
+        ]);
 
         $this->addField('section_theme', FormBigSection::class, __('Thème graphique'));
         $this->addField('theme', \App\Fields\FluidbookTheme::class, __('Thème'), ['non_default_tracking' => false, 'default' => 3]);
@@ -252,7 +259,8 @@ class Quiz extends ToolboxModel
                 'label' => $label,
                 'hint' => __('Code Javascript'),
                 'type' => Code::class,
-                'when' => ['type' => 'quiz', 'language' => 'js'],
+                'when' => ['type' => 'quiz'],
+                'language' => 'js',
             ]);
         }
 
@@ -264,10 +272,6 @@ class Quiz extends ToolboxModel
             'add_label' => __('Nouveau résultat'),
             'when' => ['type' => 'test'],
         ]);
-
-        $this->addField('section_legacy', FormBigSection::class, __('Paramètres à supprimer'));
-        $this->addField('css', Code::class, __('Code CSS supplémentaire'), ['language' => 'css']);
-
     }
 
     public function registerMediaConversions(Media $media = null): void
index a11d251b9745791a0a70ce6134280a9edcd38c59..9dbe95f3dff05e2830ebceb36f0f926ce5db74d2 100644 (file)
@@ -5,6 +5,7 @@ namespace App\SubForms\Quiz;
 
 use Cubist\Backpack\Magic\Fields\Integer;
 use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Cubist\Backpack\Magic\Fields\Text;
 use Cubist\Backpack\Magic\Fields\Textarea;
 use Cubist\Backpack\Magic\SubForm;
 
@@ -16,16 +17,22 @@ class Answer extends SubForm
         parent::init();
 
         $this->addField(['name' => 'answer',
-            'type' => 'Text',
-            'label' => __('Titre de la réponse')
+            'type' => Textarea::class,
+            'rows' => 1,
+            'label' => __('Réponse')
         ]);
 
         $this->addField(['name' => 'answer_text',
             'type' => Textarea::class,
             'label' => __('Texte de la réponse'),
+            'rows' => 3,
             'when' => ['type' => ['draganddrop']],
-        ],
-        );
+        ]);
+
+        $this->addField('proposition', Textarea::class, __('Proposition correspondante'), [
+            'rows' => 2,
+            'when' => ['type' => ['match']],
+        ]);
 
         $this->addField(['name' => 'drop_area',
             'type' => SelectFromArray::class,
@@ -48,6 +55,7 @@ class Answer extends SubForm
         $this->addField(['name' => 'score',
             'type' => Integer::class,
             'label' => __('Score'),
-            'default' => 1]);
+            'default' => 1,
+            'when' => ['type' => ['multiple']]]);
     }
 }
diff --git a/app/SubForms/Quiz/Proposition.php b/app/SubForms/Quiz/Proposition.php
new file mode 100644 (file)
index 0000000..c91062f
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+
+namespace App\SubForms\Quiz;
+
+use Cubist\Backpack\Magic\Fields\Textarea;
+use Cubist\Backpack\Magic\SubForm;
+
+class Proposition extends SubForm
+{
+    public function init()
+    {
+        parent::init();
+        $this->addField('content', Textarea::class, '', ['rows' => 2]);
+    }
+}
index 94e5ba5e57b50cbcb25b0196f949541fa063a6b3..29f27afc302b81c293fe20824e6d9000af43c450 100644 (file)
@@ -5,6 +5,7 @@ namespace App\SubForms\Quiz;
 
 use App\SubForms\TitleAndText;
 use Cubist\Backpack\Magic\Fields\BunchOfFields;
+use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple;
 use Cubist\Backpack\Magic\Fields\Checkbox;
 use Cubist\Backpack\Magic\Fields\FormSeparator;
 use Cubist\Backpack\Magic\Fields\Integer;
@@ -35,7 +36,7 @@ class Question extends SubForm
             'options' => [
                 'multiple' => __('Question à choix multiple'),
                 'draganddrop' => __('Classer les propositions'),
-                'draganddropmatch' => __('Faire correspondre des propositions'),
+                'match' => __('Faire correspondre des propositions'),
                 'text' => __('Texte'),
                 'textarea' => __('Texte long'),
                 'email' => __('E-mail'),
@@ -43,8 +44,6 @@ class Question extends SubForm
             ]
         ]);
 
-        $this->addField('area_1', BunchOfFields::class, __('Zone 1'), ['when' => ['type' => 'draganddrop'], 'bunch' => TitleAndText::class]);
-        $this->addField('area_2', BunchOfFields::class, __('Zone 2'), ['when' => ['type' => 'draganddrop'], 'bunch' => TitleAndText::class]);
 
         $this->addField(['name' => 'placeholder',
             'type' => 'Text',
@@ -61,6 +60,9 @@ class Question extends SubForm
 
         $this->addField('', FormSeparator::class);
 
+        $this->addField('area_1', BunchOfFields::class, __('Zone 1'), ['when' => ['type' => 'draganddrop'], 'bunch' => TitleAndText::class]);
+        $this->addField('area_2', BunchOfFields::class, __('Zone 2'), ['when' => ['type' => 'draganddrop'], 'bunch' => TitleAndText::class]);
+
         $this->addField(['name' => 'multiple',
             'type' => 'Checkbox',
             'label' => __('Plusieurs réponses possibles'),
@@ -82,8 +84,16 @@ class Question extends SubForm
             'bunch' => Answer::class,
             'add_label' => __('Nouvelle réponse'),
             'label' => __('Réponses'),
-            'when' => ['type' => ['multiple', 'draganddrop']]
+            'when' => ['type' => ['multiple', 'draganddrop', 'match']]
         ]);
+
+        $this->addField('additional_proposition', BunchOfFieldsMultiple::class, __('Propositions supplémentaires'),
+            [
+                'when' => ['type' => ['match']],
+                'bunch' => Proposition::class, 'add_label' => __('Nouvelle proposition'), 'hint' => __('Ces propositions ne correspondent à aucune réponse')
+            ]
+        );
+
         $this->addField('', FormSeparator::class);
         $this->addField('countdown_enable', Checkbox::class, __('Définir un temps de réponse limite'));
         $this->addField('countdown_time', Integer::class, __('Limite de durée de réponse'), ['suffix' => __('secondes'), 'default' => 60, 'when' => ['countdown_enable' => '1']]);
index db79f016a9c17901d3aa7c0abedcd7b24d6bef9a..6ff8a470a603fc7cc9840752b47e2644ec54a2aa 100644 (file)
@@ -12,7 +12,7 @@ class TitleAndText extends SubForm
     {
         parent::init();
         $this->addField('title', Text::class, '', ['placeholder' => __('Titre')]);
-        $this->addField('text', Textarea::class, '', ['placeholder' => __('Texte')]);
+        $this->addField('text', Textarea::class, '', ['rows' => 2, 'placeholder' => __('Texte')]);
     }
 }