From ff0ae094fed026435e03fd94cb6ef6346d99f7ed Mon Sep 17 00:00:00 2001 From: JohnPAfr Date: Thu, 26 Jun 2025 16:00:54 +0200 Subject: [PATCH 1/2] fix: give possibility to review when there's no criterion --- controllers/front/PostComment.php | 28 ++++++++++++++++------------ views/js/post-comment.js | 15 +++++++++------ 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/controllers/front/PostComment.php b/controllers/front/PostComment.php index 34d6e4be..c6748016 100644 --- a/controllers/front/PostComment.php +++ b/controllers/front/PostComment.php @@ -1,4 +1,5 @@ context->controller->getContainer()->get('product_comment_repository'); @@ -141,19 +143,22 @@ private function addCommentGrades(ProductComment $productComment, array $criteri $criterionRepository = $entityManager->getRepository(ProductCommentCriterion::class); $averageGrade = 0; - foreach ($criterions as $criterionId => $grade) { - $criterion = $criterionRepository->findOneBy(['id' => $criterionId]); - $criterionGrade = new ProductCommentGrade( - $productComment, - $criterion, - $grade - ); + if (!empty($criterions)) { + foreach ($criterions as $criterionId => $grade) { + $criterion = $criterionRepository->findOneBy(['id' => $criterionId]); + $criterionGrade = new ProductCommentGrade( + $productComment, + $criterion, + $grade + ); + + $entityManager->persist($criterionGrade); + $averageGrade += $grade; + } - $entityManager->persist($criterionGrade); - $averageGrade += $grade; + $averageGrade /= count($criterions); } - $averageGrade /= count($criterions); $productComment->setGrade($averageGrade); } @@ -199,7 +204,6 @@ private function validateCriterions(array $criterions) /** @var EntityManagerInterface $entityManager */ $entityManager = $this->container->get('doctrine.orm.entity_manager'); $criterionRepository = $entityManager->getRepository(ProductCommentCriterion::class); - foreach ($criterions as $criterionId => $grade) { // @todo manage validation for criterion restricted on categories or products $criterion = $criterionRepository->findOneBy(['id' => $criterionId]); diff --git a/views/js/post-comment.js b/views/js/post-comment.js index cf593b54..838f8385 100644 --- a/views/js/post-comment.js +++ b/views/js/post-comment.js @@ -128,12 +128,15 @@ jQuery(document).ready(function () { $(fieldSelector).removeClass('error'); $(fieldSelector).addClass('valid'); } - - if (!ratingChosen) { - criterionsInfo.show(); - isValid = false; - } else { - criterionsInfo.hide(); + const fieldCriterion = $('#criterions_list').length; + + if (fieldCriterion) { + if (!ratingChosen) { + criterionsInfo.show(); + isValid = false; + } else { + criterionsInfo.hide(); + } } }); From 442d41a0b13e0e476c46c3acc2dcb9c0e8f87ccf Mon Sep 17 00:00:00 2001 From: JohnPAfr Date: Mon, 30 Jun 2025 16:02:20 +0200 Subject: [PATCH 2/2] fix: remove space --- controllers/front/PostComment.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/front/PostComment.php b/controllers/front/PostComment.php index c6748016..bcf409ef 100644 --- a/controllers/front/PostComment.php +++ b/controllers/front/PostComment.php @@ -62,7 +62,7 @@ public function display() $comment_title = Tools::getValue('comment_title'); $comment_content = Tools::getValue('comment_content'); $customer_name = Tools::getValue('customer_name'); - $criterions = Tools::getValue('criterion', []); + $criterions = Tools::getValue('criterion', []); /** @var ProductCommentRepository $productCommentRepository */ $productCommentRepository = $this->context->controller->getContainer()->get('product_comment_repository');