From cd81f7386f5a5399665ca6fd40b15a0ff6c580c2 Mon Sep 17 00:00:00 2001 From: "M. Vondano" Date: Tue, 16 Nov 2021 15:40:00 +0100 Subject: [PATCH] fix rating type --- src/Entity/AnswerRating.php | 3 ++- src/Form/AnswerType/AnswerRatingType.php | 2 ++ src/Resources/views/Form/Rating.html.twig | 7 +++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Entity/AnswerRating.php b/src/Entity/AnswerRating.php index 72a4448..c6c9345 100644 --- a/src/Entity/AnswerRating.php +++ b/src/Entity/AnswerRating.php @@ -36,6 +36,7 @@ public function setRating(?int $rating): void public function exportData(DataContainer $container): void { - $container->setValue($this->getRating()); + // Use 1-based index + $container->setValue($this->getRating() + 1); } } diff --git a/src/Form/AnswerType/AnswerRatingType.php b/src/Form/AnswerType/AnswerRatingType.php index b4fb66c..4c97458 100644 --- a/src/Form/AnswerType/AnswerRatingType.php +++ b/src/Form/AnswerType/AnswerRatingType.php @@ -38,6 +38,8 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'expanded' => true, 'required' => $question->isMandatory(), 'constraints' => $question->isMandatory() ? [new NotBlank()] : [], + // Disable placeholder, so we're not getting additional options + 'placeholder' => null, ]); } diff --git a/src/Resources/views/Form/Rating.html.twig b/src/Resources/views/Form/Rating.html.twig index aa7a8aa..0b3407c 100644 --- a/src/Resources/views/Form/Rating.html.twig +++ b/src/Resources/views/Form/Rating.html.twig @@ -3,15 +3,14 @@ {% block form_row %}
{% set options = form.rating.children %} - {% set activeOption = form.rating.children|filter(c => c.vars.checked)|first|default(0) %} + {% set activeOption = options|filter(c => c.vars.checked)|first.vars.value|default(-1) %} {# Star rating, rendered as radio inputs where selecting option `n` marks options `1..n-1` as active #}
+ x-data="{value: {{ activeOption }}}"> {% for option in options %} - {% set value = option.vars.value|default(0) %} + {% set value = option.vars.value %} {% set label = option.vars.label %} -